Primary ramp
Open full cardBrand hue. A theme replaces this ramp in place.
Seven OKLCH ramps, six surface levels, and the pairing rule.
The raw hues, eleven steps each. Nothing in a component names one.
11 steps, OKLCH. The white-label default.
Brand hue. A theme replaces this ramp in place.
The second brand hue: secondary fills, the duotone sweep, the second chart colour.
Danger.
Warning. Note the dark foreground — amber needs it.
Success.
Info.
A spare hue for illustration and charts. The secondary ramp ships with its values.
What a component actually reads. Each one resolves to a step of a ramp above.
Six levels, not two. Dense UI needs the hierarchy.
Four weights of emphasis, plus link and inverse.
Three weights of separation.
Every background role ships with its foreground. Use them as a set.
Four variants × resting, hover, active, disabled.
Subtle backgrounds with matched border and text.
The same semantic names, re-pointed. No component changes.
Full-bleed roles for a section, not a control: a solid or gradient fill, a muted tint, and a pattern built from two gradients rather than an image.
Full-bleed brand colour, a muted tint, and a dot or grid pattern, all built from tokens.
Six fixed hues round the wheel, for decoration that means nothing: not brand, not status. No theme or brand colour changes them.
Six fixed hues round the wheel, for decoration that means nothing: not brand, not status. No theme changes them.