Colors

Every color in Grade DS comes from the active theme's three-hue OKLCH generator. Switch themes in the top nav to see these update live.

Studio
Cream parchment surface, near-black text and buttons. · intensity: muted

Ramps

Three 11-stop OKLCH ramps are generated from the theme's hues. Every component color resolves back to one of these stops.

Neutral

hue 85°

Backgrounds, borders, text. Subtly tinted toward the neutral hue for warmth or coolness.

50
100
200
300
400
500
600
700
800
900
950

Primary

hue 85°

Brand color. Used for primary actions, links, focus rings, and the default button.

50
100
200
300
400
500
600
700
800
900
950

Accent

hue 85°

Secondary brand color. Used for accents, highlights, and a second visual thread.

50
100
200
300
400
500
600
700
800
900
950

Semantic tokens

Purpose-based tokens derived from the ramps above. These swap values per brightness mode automatically.

TokenUsageSwatchHex
--backgroundPage background
--foregroundPrimary text
--cardElevated surface background
--card-foregroundText on card
--primaryPrimary actions, links
--primary-foregroundText on primary
--secondarySecondary surfaces
--secondary-foregroundText on secondary
--mutedMuted backgrounds
--muted-foregroundSubtle text
--accentHover states, highlights
--accent-foregroundText on accent
--borderDefault borders
--inputForm input borders
--ringFocus ring

Fixed semantic colors

Status colors are deliberately not hue-derived — they stay consistent across themes so users always read green as success, red as destructive, etc. Accessibility wins over brand cohesion here.

TokenUsageSwatchHex
--destructiveDestructive actions, errors
--successSuccess states
--warningWarning states
--infoInformational states
--highlightEmphasis, new features

Chart palette

A 5-stop categorical palette derived from the theme's hues. Primary leads, then two well-separated hue rotations, neutral as a quiet step, and accent closes — each adjacent slot is visibly distinct. Use via var(--chart-1)var(--chart-5) or Tailwind utilities bg-chart-1.

chart-1
chart-2
chart-3
chart-4
chart-5

Usage

{/* Semantic tokens — adapt to active theme + mode */}
<div className="bg-background text-foreground" />
<div className="bg-primary text-primary-foreground" />
<div className="bg-card text-card-foreground" />

{/* With opacity (Tailwind shortcut, works with any color) */}
<div className="bg-primary/50 hover:bg-primary/80" />
<div className="border-border/40" />

{/* Fixed semantic status colors */}
<div className="bg-success text-success-foreground" />
<div className="bg-destructive" />
<div className="text-warning" />

{/* Chart palette (generator-derived) */}
<Bar dataKey="x" fill="var(--chart-1)" />
<Bar dataKey="y" fill="var(--chart-2)" />