Themes · Studio
Theme Studio
A preset reassigns four tokens and inherits everything else. Pick a primary, decide how it looks pressed and in dark mode, and see whether text can be read on it — checked with the same conversion that gates CI, so a colour this page passes is one the build will pass too.
Applied as data-theme="brand".
oklch(0.54 0.196 275)
Every pair passes WCAG AA.
Text on this colour reaches 4.5:1 in both modes, hovered and pressed.
Light
Create project
Projects group your deployments.
Dark
Create project
Projects group your deployments.
Export
The same file format as the presets that ship. Save it into your project’s stylesheet, or into packages/themes/src/presets/ in a fork, and it is covered by the same audit as everything else.
/* Theme preset: brand.
* Apply with data-theme="brand" on the <html> element. Only the brand-carrying
* tokens are reassigned; every neutral, radius and motion token is inherited. */
[data-theme="brand"] {
--primary: oklch(0.54 0.196 275);
--primary-hover: oklch(0.495 0.196 275);
--primary-active: oklch(0.457 0.196 275);
--primary-foreground: oklch(0.985 0.002 265);
}
.dark[data-theme="brand"] {
--primary: oklch(0.655 0.181 275);
--primary-hover: oklch(0.7 0.181 275);
--primary-active: oklch(0.61 0.181 275);
--primary-foreground: oklch(0.155 0.03 275);
}
For Figma
The same theme as W3C design tokens — every colour in both modes as sRGB hex, the radius ladder at the scale above, the type scale — which Tokens Studio for Figma imports as three sets: core, light and dark. Generated from the CSS, so it cannot disagree with it.