createGlobalTheme
Creates a theme attached to a global selector, but with locally scoped variable names.
🎨 New to theming in vanilla-extract? Make sure you’ve read the theming overview first.
theme.css.ts
import { createGlobalTheme } from '@vanilla-extract/css';
export const vars = createGlobalTheme(':root', {
color: {
brand: 'blue'
},
font: {
body: 'arial'
}
});
CSS
:root {
--color-brand__z05zdf0: blue;
--font-body__z05zdf1: arial;
}
All theme values must be provided or it’s a type error.
Importing this stylesheet as a side effect to include the styles in your CSS bundle.
app.tsimport './theme.css.ts';
Implementing a Theme Contract
An existing theme contract can be implemented by passing it as the second argument.
theme.css.ts
import {
createThemeContract,
createGlobalTheme
} from '@vanilla-extract/css';
export const vars = createThemeContract({
color: {
brand: null
},
font: {
body: null
}
});
createGlobalTheme(':root', vars, {
color: {
brand: 'blue'
},
font: {
body: 'arial'
}
});
CSS
:root {
--color-brand__z05zdf0: blue;
--font-body__z05zdf1: arial;
}