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
16 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-warning-borderaliases --warning-borderhue locked at 60; L/C tunable
- Light
- oklch(0.82 0.12 60)
- Dark
- oklch(0.5 0.12 60)
oklch(0.82 0.12 60)oklch(0.5 0.12 60)Brand tokens
56 tokens--color-accentaliases --accentbright yellow #FFF162, the single brand highlight
- Light
- oklch(0.945 0.18 100)
- Dark
- oklch(0.85 0.16 100)
oklch(0.945 0.18 100)oklch(0.85 0.16 100)--color-accent-foregroundaliases --accent-foregroundwarm dark ink readable on bright yellow (#1A1505)
- Light
- oklch(0.18 0.025 90)
- Dark
- oklch(0.18 0.025 90)
oklch(0.18 0.025 90)oklch(0.18 0.025 90)--color-backgroundaliases --backgroundpure white canvas (#FFFFFF), the marketing inner page card
- Light
- oklch(1 0 0)
- Dark
- oklch(0.17 0.006 50)
oklch(1 0 0)oklch(0.17 0.006 50)--color-borderaliases --borderdefault divider on cool canvas
- Light
- oklch(0.88 0.005 95)
- Dark
- oklch(1 0 0 / 10%)
oklch(0.88 0.005 95)oklch(1 0 0 / 10%)--color-border-focusaliases --border-focusalias of --ring
- Light
- oklch(0.17 0.006 50)
oklch(0.17 0.006 50)oklch(0.17 0.006 50)--color-border-inputaliases --border-inputinput edge, sits between default and strong so empty fields read clearly
- Light
- oklch(0.84 0.006 95)
- Dark
- oklch(1 0 0 / 13%)
oklch(0.84 0.006 95)oklch(1 0 0 / 13%)--color-border-strongaliases --border-strongassertive dividers
- Light
- oklch(0.78 0.006 95)
- Dark
- oklch(1 0 0 / 18%)
oklch(0.78 0.006 95)oklch(1 0 0 / 18%)--color-border-subtlealiases --border-subtletable rows, dense lists
- Light
- oklch(0.94 0.004 95)
- Dark
- oklch(1 0 0 / 6%)
oklch(0.94 0.004 95)oklch(1 0 0 / 6%)--color-cardaliases --cardnear-white with subtle warm tint, sits flush with the white canvas
- Light
- oklch(0.99 0.002 95)
- Dark
- oklch(0.21 0.007 50)
oklch(0.99 0.002 95)oklch(0.21 0.007 50)--color-card-foregroundaliases --card-foregroundpairs with --card
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.17 0.006 50)oklch(0.99 0.002 95)--color-chart-1aliases --chart-1yellow (anchors to brand accent)
- Light
- oklch(0.85 0.18 100)
- Dark
- oklch(0.92 0.18 100)
oklch(0.85 0.18 100)oklch(0.92 0.18 100)--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-3orange
- 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-7lavender
- 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-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.78 0.006 95)
oklch(0.78 0.006 95)oklch(0.78 0.006 95)--color-chart-gridaliases --chart-grid- Light
- oklch(0.94 0.004 95)
oklch(0.94 0.004 95)oklch(0.94 0.004 95)--color-chart-tooltip-bgaliases --chart-tooltip-bg- Light
- oklch(0.99 0.002 95)
oklch(0.99 0.002 95)oklch(0.99 0.002 95)--color-chart-tooltip-fgaliases --chart-tooltip-fg- Light
- oklch(0.17 0.006 50)
oklch(0.17 0.006 50)oklch(0.17 0.006 50)--color-foregroundaliases --foregroundwarm near-black body text (#110F0D)
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.17 0.006 50)oklch(0.99 0.002 95)--color-foreground-disabledaliases --foreground-disableddisabled controls (warm mid-grey, low-chroma yellow tint)
- Light
- oklch(0.63 0.01 100.08)
- Dark
- oklch(0.5 0.008 50)
oklch(0.63 0.01 100.08)oklch(0.5 0.008 50)--color-foreground-subtlealiases --foreground-subtlecaptions, secondary labels (warm grey, low-chroma yellow tint)
- Light
- oklch(0.35 0.01 100.33)
- Dark
- oklch(0.7 0.008 50)
oklch(0.35 0.01 100.33)oklch(0.7 0.008 50)--color-inputaliases --inputinput fill
- Light
- oklch(0.97 0.004 95)
- Dark
- oklch(1 0 0 / 8%)
oklch(0.97 0.004 95)oklch(1 0 0 / 8%)--color-mutedaliases --muteddepressed surface (alt sections)
- Light
- oklch(0.96 0.004 95)
- Dark
- oklch(0.25 0.007 50)
oklch(0.96 0.004 95)oklch(0.25 0.007 50)--color-popoveraliases --popoverpairs with --card
- Light
- oklch(0.99 0.002 95)
- Dark
- oklch(0.21 0.007 50)
oklch(0.99 0.002 95)oklch(0.21 0.007 50)--color-popover-foregroundaliases --popover-foregroundpairs with --popover
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.17 0.006 50)oklch(0.99 0.002 95)--color-primaryaliases --primarywarm near-black, the marketing CTA color
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.17 0.006 50)oklch(0.99 0.002 95)--color-primary-foregroundaliases --primary-foregroundnear-white on near-black
- Light
- oklch(0.99 0.002 95)
- Dark
- oklch(0.17 0.006 50)
oklch(0.99 0.002 95)oklch(0.17 0.006 50)--color-ringaliases --ringfocus ring color (uses --primary hue for crisp visibility)
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.85 0.16 100)
oklch(0.17 0.006 50)oklch(0.85 0.16 100)--color-secondaryaliases --secondaryquiet neutral for secondary buttons / soft badges
- Light
- oklch(0.97 0.004 95)
- Dark
- oklch(0.3 0.007 50)
oklch(0.97 0.004 95)oklch(0.3 0.007 50)--color-secondary-foregroundaliases --secondary-foreground- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.17 0.006 50)oklch(0.99 0.002 95)--color-tier-exclusivealiases --tier-exclusivewarm near-black card
- Light
- oklch(0.19 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.19 0.006 50)oklch(0.99 0.002 95)--color-tier-exclusive-foregroundaliases --tier-exclusive-foregroundnear-white text
- Light
- oklch(0.99 0.002 95)
- Dark
- oklch(0.17 0.006 50)
oklch(0.99 0.002 95)oklch(0.17 0.006 50)--color-tier-freealiases --tier-freenear-white card
- Light
- oklch(0.99 0.002 95)
- Dark
- oklch(0.21 0.007 50)
oklch(0.99 0.002 95)oklch(0.21 0.007 50)--color-tier-free-foregroundaliases --tier-free-foregroundwarm near-black
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.17 0.006 50)oklch(0.99 0.002 95)--color-warningaliases --warningshifted from 80→60 to clear the brand yellow (hue 100); L/C tunable
- Light
- oklch(0.93 0.06 60)
- Dark
- oklch(0.32 0.08 60)
oklch(0.93 0.06 60)oklch(0.32 0.08 60)--gradient-brandblack → yellow, the marketing signature
- Light
- linear-gradient(135deg, var(--primary), var(--accent))
linear-gradient(135deg, var(--primary), var(--accent))linear-gradient(135deg, var(--primary), var(--accent))--slider-rangedefaults to brand primary
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.85 0.16 100)
oklch(0.17 0.006 50)oklch(0.85 0.16 100)--switch-track-ondefaults to brand primary
- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.85 0.16 100)
oklch(0.17 0.006 50)oklch(0.85 0.16 100)Tunable tokens
24 tokens--code-bg- Light
- oklch(0.96 0.004 95)
oklch(0.96 0.004 95)oklch(0.96 0.004 95)--code-fg- Light
- oklch(0.17 0.006 50)
oklch(0.17 0.006 50)oklch(0.17 0.006 50)--color-muted-foregroundaliases --muted-foregroundsits between -subtle and -disabled
- Light
- oklch(0.51 0.01 95.31)
- Dark
- oklch(0.62 0.008 50)
oklch(0.51 0.01 95.31)oklch(0.62 0.008 50)--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)--color-warning-foregroundaliases --warning-foregroundhue ~55 = deeper orange tone; L/C tunable
- Light
- oklch(0.5 0.14 55)
- Dark
- oklch(0.88 0.14 55)
oklch(0.5 0.14 55)oklch(0.88 0.14 55)--kbd-bg- Light
- oklch(0.96 0.004 95)
oklch(0.96 0.004 95)oklch(0.96 0.004 95)--kbd-border- Light
- oklch(0.78 0.006 95)
oklch(0.78 0.006 95)oklch(0.78 0.006 95)--kbd-fg- Light
- oklch(0.17 0.006 50)
oklch(0.17 0.006 50)oklch(0.17 0.006 50)--label-color- Light
- oklch(0.17 0.006 50)
oklch(0.17 0.006 50)oklch(0.17 0.006 50)--link- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.85 0.16 100)
oklch(0.17 0.006 50)oklch(0.85 0.16 100)--link-hover- Light
- oklch(0.17 0.006 50)
- Dark
- oklch(0.99 0.002 95)
oklch(0.17 0.006 50)oklch(0.99 0.002 95)--link-visited- Light
- oklch(0.34 0.008 50)
- Dark
- oklch(0.7 0.008 50)
oklch(0.34 0.008 50)oklch(0.7 0.008 50)--placeholder-color- Light
- oklch(0.63 0.01 100.08)
oklch(0.63 0.01 100.08)oklch(0.63 0.01 100.08)--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-bgyellow selection mirrors marketing ::selection
- Light
- oklch(0.945 0.18 100)
- Dark
- oklch(0.85 0.16 100)
oklch(0.945 0.18 100)oklch(0.85 0.16 100)--selection-fg- Light
- oklch(0.18 0.025 90)
- Dark
- oklch(0.18 0.025 90)
oklch(0.18 0.025 90)oklch(0.18 0.025 90)--skeleton-bgcool-neutral base
- Light
- color-mix(in oklch, var(--muted) 80%, var(--background))
color-mix(in oklch, var(--muted) 80%, var(--background))color-mix(in oklch, var(--muted) 80%, var(--background))--skeleton-shimmerforeground-tinted shimmer band
- 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)--slider-thumb- Light
- oklch(0.99 0.002 95)
- Dark
- oklch(0.99 0.002 95)
oklch(0.99 0.002 95)oklch(0.99 0.002 95)--slider-track- Light
- oklch(0.88 0.005 95)
- Dark
- oklch(1 0 0 / 0.18)
oklch(0.88 0.005 95)oklch(1 0 0 / 0.18)--switch-thumb- Light
- oklch(0.99 0.002 95)
- Dark
- oklch(0.21 0.007 50)
oklch(0.99 0.002 95)oklch(0.21 0.007 50)--switch-track-off- Light
- oklch(0.88 0.005 95)
- Dark
- oklch(1 0 0 / 0.18)
oklch(0.88 0.005 95)oklch(1 0 0 / 0.18)