system / colors

Colors

The palette is monochrome: a neutral oklch ramp, no brand hue. Only destructive carries chroma. Colors are authored in oklch (perceptually uniform) to mirror the base-sera tokens; each swatch shows light then dark.

Surface — UI roles
backgroundPage base
foregroundBody text on background
cardRaised surface
popoverOverlay surface
primarySolid action (button)
secondaryQuiet fill
mutedSubtle fill
muted-foregroundCaption / label text
accentHover fill
borderEvery Rule & hairline
inputField border
ringFocus ring
destructiveThe one hue — danger
Series — the grayscale ramp (light → dark by rank)

The chart ramp is theme-independent — the same five grays in light and dark — so a graph reads identically either way. Rank, not palette, encodes importance.

chart-1Series rank 1 (lightest)
chart-2Series rank 2
chart-3Series rank 3
chart-4Series rank 4
chart-5Series rank 5 (darkest)
Usage

Reach for a role, not a value: bg-primary, text-muted-foreground, border-border. Never hardcode an oklch — if a shade you need isn't a token, it doesn't belong yet.