Themable Weave components within a ThemeContext.Provider
will have access to the provided theme.
yarn add @weave-design/theme-context @weave-design/theme-data
import WeaveDarkBlueTheme from '@weave-design/theme-data/build/esm/darkBlueMediumDensityTheme';
import ThemeContext from '@weave-design/theme-context';
function MyApp() {
<ThemeContext.Provider value={WeaveDarkBlueTheme}>
<TheRestOfMyApp />
</ThemeContext.Provider>
}
For information on customizing a theme or importing theme data in different formats, see the theme-data README.
import ThemeContext from '@weave-design/theme-context';
function MyThemedComponent() {
<ThemeContext.Consumer>{({ resolvedRoles, metadata }) => (
<div style={{
backgroundColor: resolvedRoles["colorScheme.surface.level200"],
borderRadius: resolvedRoles["basics.borderRadii.small"],
color: resolvedRoles["colorScheme.text.default"],
padding: resolvedRoles["density.spacings.medium"],
}}>
The current theme is "${metadata.name}".
</div>
)}</ThemeContext.Consumer>
}