Themes
Use the themes package to customize your product while maintaining consistency.
Get started
To install @carbon/themes
in your project, you will need to run the following
command using npm:
npm install -S @carbon/themes
If you prefer Yarn, use the following command instead:
yarn add @carbon/themes
Usage
There are three ways to utilize Carbon Themes. First, and maybe the simplest way
is to bring in our
<Theme>
component and pass your desired theme as a prop. Second, if you need more
granular control of where themes are applied or access to specific theming
tokens when and you’re using @carbon/styles
or @carbon/react
you already
have access to sass theming with no need for an extra package. Lastly, you can
use @carbon/themes
in JavaScript or Sass by including this package in your
project.
By default, @carbon/themes
provides a set of color tokens that are pre-defined
for a specific theme. Currently, we offer the following color themes: white,
gray 10, gray 90, gray 100 .
You can preview all of the token values for this on the color guidelines page.
Sass
If your project is using Sass, you can include this package and the corresponding default theme by writing the following in your Sass file:
@use '@carbon/themes/scss/themes';
By default, the white theme will be initialized. If you would like to include another theme, you can do so by calling our mixin. For example:
@use '@carbon/themes/scss/themes';// Use the gray 10 theme@include theme($theme--g10);// Use the gray 90 theme@include theme($theme--g90);// Use the gray 100 theme
Alternatively, you can set the global theme variable then call the mixin without passing in a theme name.
@use '@carbon/themes/scss/themes';$theme: $theme--g10;// Use the gray 10 theme@include theme();
Inline theming can be done by using the mixin. For example:
@use '@carbon/themes/scss/themes';// Use the default white theme here.my-dark-theme {@include theme($theme--g90) {// Use the dark theme here}}
Themes can be configured by accessing the tokens in the import statement. For example:
@use '@carbon/react/scss/themes';@use '@carbon/react/scss/theme' with ($theme: themes.$g100);
JavaScript
If you’re looking to use these themes in JavaScript, we export a variety of bindings for you to use, including:
import {// An object of all themesthemes,// Direct theme valueswhite,g10,g90,g100,