Color
Locked names and pairings; brand-tunable values. Status uses the solid pattern (bg-{status} text-{status}-foreground), never bg-{status}/10.
Always render status with bg-{status} text-{status}-foreground border-{status}-border. Never bg-{status}/10 — the pastel base loses contrast at low opacity.
<div className="bg-success text-success-foreground border border-success-border rounded-card p-4">
All systems operational
</div>Locked tokens
18 tokens--color-destructivealiases --destructivehue locked (red ≈ 27); L/C tunable
- Light
- oklch(0.92 0.05 27.325)
- Dark
- oklch(0.32 0.1 27.325)
oklch(0.92 0.05 27.325)oklch(0.32 0.1 27.325)--color-destructive-borderaliases --destructive-borderhue locked; L/C tunable
- Light
- oklch(0.82 0.13 27.325)
- Dark
- oklch(0.5 0.15 27.325)
oklch(0.82 0.13 27.325)oklch(0.5 0.15 27.325)--color-destructive-foregroundaliases --destructive-foregroundhue locked; L/C tunable
- Light
- oklch(0.5 0.2 27.325)
- Dark
- oklch(0.85 0.13 27.325)
oklch(0.5 0.2 27.325)oklch(0.85 0.13 27.325)--color-infoaliases --infohue locked (blue ≈ 240); L/C tunable
- Light
- oklch(0.94 0.04 240)
- Dark
- oklch(0.32 0.08 240)
oklch(0.94 0.04 240)oklch(0.32 0.08 240)--color-info-borderaliases --info-borderhue locked; L/C tunable
- Light
- oklch(0.83 0.1 240)
- Dark
- oklch(0.5 0.13 240)
oklch(0.83 0.1 240)oklch(0.5 0.13 240)--color-info-foregroundaliases --info-foregroundhue locked; L/C tunable
- Light
- oklch(0.45 0.17 240)
- Dark
- oklch(0.85 0.12 240)
oklch(0.45 0.17 240)oklch(0.85 0.12 240)--color-ring-invalidaliases --ring-color-invalidaria-invalid ring (status hue, saturated to match error text)
- Light
- oklch(0.5 0.2 27.325)
oklch(0.5 0.2 27.325)oklch(0.5 0.2 27.325)--color-state-activealiases --state-active12%
- Light
- color-mix(in oklch, var(--foreground) 12%, transparent)
color-mix(in oklch, var(--foreground) 12%, transparent)color-mix(in oklch, var(--foreground) 12%, transparent)--color-state-expandedaliases --state-expanded4% — large-area persistent states (accordion, collapsible)
- Light
- color-mix(in oklch, var(--foreground) 4%, transparent)
color-mix(in oklch, var(--foreground) 4%, transparent)color-mix(in oklch, var(--foreground) 4%, transparent)--color-state-focusaliases --state-focus8%
- Light
- color-mix(in oklch, var(--foreground) 8%, transparent)
color-mix(in oklch, var(--foreground) 8%, transparent)color-mix(in oklch, var(--foreground) 8%, transparent)--color-state-hoveraliases --state-hover6%
- Light
- color-mix(in oklch, var(--foreground) 6%, transparent)
color-mix(in oklch, var(--foreground) 6%, transparent)color-mix(in oklch, var(--foreground) 6%, transparent)--color-state-selectedaliases --state-selected16%
- Light
- color-mix(in oklch, var(--foreground) 16%, transparent)
color-mix(in oklch, var(--foreground) 16%, transparent)color-mix(in oklch, var(--foreground) 16%, transparent)--color-successaliases --successhue locked (green ≈ 145); L/C tunable
- Light
- oklch(0.93 0.06 145)
- Dark
- oklch(0.32 0.08 145)
oklch(0.93 0.06 145)oklch(0.32 0.08 145)--color-success-borderaliases --success-borderhue locked; L/C tunable
- Light
- oklch(0.82 0.12 145)
- Dark
- oklch(0.5 0.12 145)
oklch(0.82 0.12 145)oklch(0.5 0.12 145)--color-success-foregroundaliases --success-foregroundhue locked; L/C tunable
- Light
- oklch(0.45 0.15 145)
- Dark
- oklch(0.85 0.13 145)
oklch(0.45 0.15 145)oklch(0.85 0.13 145)--color-warningaliases --warninghue locked (yellow/orange ≈ 80); L/C tunable
- Light
- oklch(0.94 0.07 80)
- Dark
- oklch(0.32 0.08 80)
oklch(0.94 0.07 80)oklch(0.32 0.08 80)--color-warning-borderaliases --warning-borderhue locked; L/C tunable
- Light
- oklch(0.83 0.13 80)
- Dark
- oklch(0.5 0.12 80)
oklch(0.83 0.13 80)oklch(0.5 0.12 80)--color-warning-foregroundaliases --warning-foregroundhue locked; L/C tunable
- Light
- oklch(0.5 0.14 80)
- Dark
- oklch(0.88 0.14 80)
oklch(0.5 0.14 80)oklch(0.88 0.14 80)Brand tokens
49 tokens--color-accentaliases --accentselected/highlighted item surface
- Light
- oklch(0.97 0 0)
- Dark
- oklch(0.269 0 0)
oklch(0.97 0 0)oklch(0.269 0 0)--color-accent-foregroundaliases --accent-foregroundpairs with --accent
- Light
- oklch(0.205 0 0)
- Dark
- oklch(0.985 0 0)
oklch(0.205 0 0)oklch(0.985 0 0)--color-backgroundaliases --background- Light
- oklch(1 0 0)
- Dark
- oklch(0.145 0 0)
oklch(1 0 0)oklch(0.145 0 0)--color-borderaliases --borderdefault divider
- Light
- oklch(0.922 0 0)
- Dark
- oklch(1 0 0 / 10%)
oklch(0.922 0 0)oklch(1 0 0 / 10%)--color-border-focusaliases --border-focusalias of --ring
- Light
- oklch(0.708 0 0)
oklch(0.708 0 0)oklch(0.708 0 0)--color-border-inputaliases --border-inputinput edge
- Light
- oklch(0.85 0 0)
- Dark
- oklch(1 0 0 / 15%)
oklch(0.85 0 0)oklch(1 0 0 / 15%)--color-border-strongaliases --border-strongassertive dividers
- Light
- oklch(0.85 0 0)
- Dark
- oklch(1 0 0 / 18%)
oklch(0.85 0 0)oklch(1 0 0 / 18%)--color-border-subtlealiases --border-subtletable rows, dense lists
- Light
- oklch(0.94 0 0)
- Dark
- oklch(1 0 0 / 6%)
oklch(0.94 0 0)oklch(1 0 0 / 6%)--color-cardaliases --card- Light
- oklch(1 0 0)
- Dark
- oklch(0.205 0 0)
oklch(1 0 0)oklch(0.205 0 0)--color-card-foregroundaliases --card-foregroundpairs with --card
- Light
- oklch(0.145 0 0)
- Dark
- oklch(0.985 0 0)
oklch(0.145 0 0)oklch(0.985 0 0)--color-chart-1aliases --chart-1lavender (anchors to --secondary)
- Light
- oklch(0.65 0.13 290)
- Dark
- oklch(0.7 0.13 290)
oklch(0.65 0.13 290)oklch(0.7 0.13 290)--color-chart-10aliases --chart-10rust
- Light
- oklch(0.55 0.14 35)
- Dark
- oklch(0.6 0.14 35)
oklch(0.55 0.14 35)oklch(0.6 0.14 35)--color-chart-11aliases --chart-11sky
- Light
- oklch(0.7 0.1 220)
- Dark
- oklch(0.75 0.1 220)
oklch(0.7 0.1 220)oklch(0.75 0.1 220)--color-chart-12aliases --chart-12dusty rose
- Light
- oklch(0.65 0.09 5)
- Dark
- oklch(0.7 0.09 5)
oklch(0.65 0.09 5)oklch(0.7 0.09 5)--color-chart-2aliases --chart-2teal
- Light
- oklch(0.65 0.13 195)
- Dark
- oklch(0.7 0.13 195)
oklch(0.65 0.13 195)oklch(0.7 0.13 195)--color-chart-3aliases --chart-3warm orange
- Light
- oklch(0.7 0.15 50)
- Dark
- oklch(0.75 0.15 50)
oklch(0.7 0.15 50)oklch(0.75 0.15 50)--color-chart-4aliases --chart-4green
- Light
- oklch(0.65 0.13 140)
- Dark
- oklch(0.7 0.13 140)
oklch(0.65 0.13 140)oklch(0.7 0.13 140)--color-chart-5aliases --chart-5coral
- Light
- oklch(0.7 0.13 15)
- Dark
- oklch(0.75 0.13 15)
oklch(0.7 0.13 15)oklch(0.75 0.13 15)--color-chart-6aliases --chart-6blue
- Light
- oklch(0.6 0.16 250)
- Dark
- oklch(0.65 0.16 250)
oklch(0.6 0.16 250)oklch(0.65 0.16 250)--color-chart-7aliases --chart-7amber
- Light
- oklch(0.78 0.13 90)
- Dark
- oklch(0.82 0.13 90)
oklch(0.78 0.13 90)oklch(0.82 0.13 90)--color-chart-8aliases --chart-8magenta
- Light
- oklch(0.55 0.18 330)
- Dark
- oklch(0.6 0.18 330)
oklch(0.55 0.18 330)oklch(0.6 0.18 330)--color-chart-9aliases --chart-9forest
- Light
- oklch(0.5 0.13 155)
- Dark
- oklch(0.55 0.13 155)
oklch(0.5 0.13 155)oklch(0.55 0.13 155)--color-chart-axisaliases --chart-axis- Light
- oklch(0.85 0 0)
oklch(0.85 0 0)oklch(0.85 0 0)--color-chart-gridaliases --chart-grid- Light
- oklch(0.94 0 0)
oklch(0.94 0 0)oklch(0.94 0 0)--color-chart-tooltip-bgaliases --chart-tooltip-bg- Light
- oklch(1 0 0)
oklch(1 0 0)oklch(1 0 0)--color-chart-tooltip-fgaliases --chart-tooltip-fg- Light
- oklch(0.145 0 0)
oklch(0.145 0 0)oklch(0.145 0 0)--color-foregroundaliases --foregroundbody text
- Light
- oklch(0.145 0 0)
- Dark
- oklch(0.985 0 0)
oklch(0.145 0 0)oklch(0.985 0 0)--color-foreground-disabledaliases --foreground-disableddisabled controls
- Light
- oklch(0.65 0 0)
- Dark
- oklch(0.45 0 0)
oklch(0.65 0 0)oklch(0.45 0 0)--color-foreground-subtlealiases --foreground-subtlecaptions, secondary labels
- Light
- oklch(0.4 0 0)
- Dark
- oklch(0.65 0 0)
oklch(0.4 0 0)oklch(0.65 0 0)--color-inputaliases --inputinput fill
- Light
- oklch(0.922 0 0)
- Dark
- oklch(1 0 0 / 15%)
oklch(0.922 0 0)oklch(1 0 0 / 15%)--color-mutedaliases --muted- Light
- oklch(0.97 0 0)
- Dark
- oklch(0.269 0 0)
oklch(0.97 0 0)oklch(0.269 0 0)--color-popoveraliases --popover- Light
- oklch(1 0 0)
- Dark
- oklch(0.205 0 0)
oklch(1 0 0)oklch(0.205 0 0)--color-popover-foregroundaliases --popover-foregroundpairs with --popover
- Light
- oklch(0.145 0 0)
- Dark
- oklch(0.985 0 0)
oklch(0.145 0 0)oklch(0.985 0 0)--color-primaryaliases --primarynear-black (the K of Kaotypr)
- Light
- oklch(0.205 0 0)
- Dark
- oklch(0.922 0 0)
oklch(0.205 0 0)oklch(0.922 0 0)--color-primary-foregroundaliases --primary-foreground- Light
- oklch(0.985 0 0)
- Dark
- oklch(0.205 0 0)
oklch(0.985 0 0)oklch(0.205 0 0)--color-ringaliases --ringfocus ring color (often follows --primary hue)
- Light
- oklch(0.708 0 0)
- Dark
- oklch(0.556 0 0)
oklch(0.708 0 0)oklch(0.556 0 0)--color-secondaryaliases --secondarylavender; anchors to logo accent
- Light
- oklch(0.86 0.07 292.88)
- Dark
- oklch(0.43 0.07 290.31)
oklch(0.86 0.07 292.88)oklch(0.43 0.07 290.31)--color-secondary-foregroundaliases --secondary-foreground- Light
- oklch(0.205 0 0)
- Dark
- oklch(0.985 0 0)
oklch(0.205 0 0)oklch(0.985 0 0)--gradient-brand- Light
- linear-gradient(135deg, var(--primary), var(--secondary))
linear-gradient(135deg, var(--primary), var(--secondary))linear-gradient(135deg, var(--primary), var(--secondary))--slider-rangedefaults to brand primary
- Light
- oklch(0.205 0 0)
oklch(0.205 0 0)oklch(0.205 0 0)--switch-track-ondefaults to brand primary
- Light
- oklch(0.205 0 0)
oklch(0.205 0 0)oklch(0.205 0 0)Tunable tokens
23 tokens--code-bg- Light
- oklch(0.97 0 0)
oklch(0.97 0 0)oklch(0.97 0 0)--code-fg- Light
- oklch(0.145 0 0)
oklch(0.145 0 0)oklch(0.145 0 0)--color-muted-foregroundaliases --muted-foregroundshadcn-canonical mid-grey; sits between -subtle and -disabled
- Light
- oklch(0.556 0 0)
- Dark
- oklch(0.708 0 0)
oklch(0.556 0 0)oklch(0.708 0 0)--color-overlayaliases --overlay- Light
- color-mix(in oklch, oklch(0 0 0) 30%, transparent)
color-mix(in oklch, oklch(0 0 0) 30%, transparent)color-mix(in oklch, oklch(0 0 0) 30%, transparent)--kbd-bg- Light
- oklch(0.97 0 0)
oklch(0.97 0 0)oklch(0.97 0 0)--kbd-border- Light
- oklch(0.85 0 0)
oklch(0.85 0 0)oklch(0.85 0 0)--kbd-fg- Light
- oklch(0.145 0 0)
oklch(0.145 0 0)oklch(0.145 0 0)--label-color- Light
- oklch(0.145 0 0)
oklch(0.145 0 0)oklch(0.145 0 0)--link- Light
- oklch(0.205 0 0)
- Dark
- oklch(0.922 0 0)
oklch(0.205 0 0)oklch(0.922 0 0)--link-hover- Light
- oklch(0 0 0)
- Dark
- oklch(1 0 0)
oklch(0 0 0)oklch(1 0 0)--link-visited- Light
- oklch(0.4 0 0)
- Dark
- oklch(0.65 0 0)
oklch(0.4 0 0)oklch(0.65 0 0)--placeholder-color- Light
- oklch(0.65 0 0)
oklch(0.65 0 0)oklch(0.65 0 0)--required-indicator-colorasterisk color in <FieldLabel>
- Light
- oklch(0.5 0.2 27.325)
oklch(0.5 0.2 27.325)oklch(0.5 0.2 27.325)--scrollbar-thumb- Light
- color-mix(in oklch, var(--foreground) 20%, transparent)
- Dark
- color-mix(in oklch, var(--foreground) 30%, transparent)
color-mix(in oklch, var(--foreground) 20%, transparent)color-mix(in oklch, var(--foreground) 30%, transparent)--scrollbar-track- Light
- transparent
transparenttransparent--selection-bg- Light
- oklch(0.86 0.07 292.88)
oklch(0.86 0.07 292.88)oklch(0.86 0.07 292.88)--selection-fg- Light
- oklch(0.205 0 0)
oklch(0.205 0 0)oklch(0.205 0 0)--skeleton-bgsecondary-tinted
- Light
- color-mix(in oklch, var(--secondary) 35%, var(--muted))
color-mix(in oklch, var(--secondary) 35%, var(--muted))color-mix(in oklch, var(--secondary) 35%, var(--muted))--skeleton-shimmersecondary-tinted shimmer band
- Light
- color-mix(in oklch, var(--secondary) 60%, transparent)
color-mix(in oklch, var(--secondary) 60%, transparent)color-mix(in oklch, var(--secondary) 60%, transparent)--slider-thumb- Light
- oklch(0.99 0 0)
oklch(0.99 0 0)oklch(0.99 0 0)--slider-track- Light
- oklch(0.85 0 0)
- Dark
- oklch(1 0 0 / 0.2)
oklch(0.85 0 0)oklch(1 0 0 / 0.2)--switch-thumb- Light
- oklch(0.99 0 0)
oklch(0.99 0 0)oklch(0.99 0 0)--switch-track-off- Light
- oklch(0.85 0 0)
- Dark
- oklch(1 0 0 / 0.2)
oklch(0.85 0 0)oklch(1 0 0 / 0.2)