Colors
Complete color system — base primitives, semantic tokens, and status colors. All values support light and dark modes.
Base / Brand
White
#FFFFFF
Dark
#02050D
Black
#000000
Neutral
Grayscale palette for surfaces, text, borders, and UI chrome.
Neutral-0
#FFFFFF
Neutral-10
#FAFAFA
Neutral-20
#F5F5F5
Neutral-30
#EBEBEC
Neutral-40
#DEDEDE
Neutral-50
#BFBFBF
Neutral-60
#B0B0B0
Neutral-70
#A3A3A3
Neutral-80
#949494
Neutral-90
#858585
Neutral-100
#757575
Neutral-200
#666666
Neutral-300
#575757
Neutral-400
#4A4A4A
Neutral-500
#3B3B3B
Neutral-600
#2E2E2E
Neutral-700
#1C1C1C
Neutral-800
#0D0D0D
Neutral-900
#000000
Peggy Blue
Brand color for interactive elements, links, and secondary actions.
Blue-50
#E8EAF9
Blue-100
#B8BDEC
Blue-200
#959DE3
Blue-300
#6571D6
Blue-400
#4755CE
Blue-500
#192BC2
Blue-600
#1727B1
Blue-700
#121F8A
Blue-800
#0E186B
Blue-900
#0B1251
Critical
Error states, destructive actions, and validation failures.
Critical-25
#FFF5F6
Critical-50
#FDE6E9
Critical-100
#F9B0BB
Critical-200
#F78A9B
Critical-300
#F3546D
Critical-400
#F13351
Critical-500
#ED0025
Critical-600
#D80022
Critical-700
#A8001A
Critical-800
#820014
Critical-900
#640010
Warning
Cautionary states, alerts, and non-blocking issues.
Warning-50
#FFFBE7
Warning-100
#FFF2B3
Warning-200
#FFEC8E
Warning-300
#FFE45B
Warning-400
#FFDE3B
Warning-500
#FFD60A
Warning-600
#E8C309
Warning-700
#B59807
Warning-800
#8C7606
Warning-900
#6B5A04
Success
Positive states, confirmations, and completion indicators.
Success-50
#E6F4EC
Success-100
#B0DCC3
Success-200
#8ACBA5
Success-400
#33A463
Success-500
#008D3C
Success-600
#008037
Success-700
#00642B
Success-800
#004E21
Success-900
#003B19
Semantic Tokens
Semantic tokens map primitive colors to meaningful UI contexts. They automatically adapt between light and dark modes.
Background
| Token | Light | Dark |
|---|---|---|
| --color-bg-canvas | Neutral-20 | Neutral-900 |
| --color-bg-default | Neutral-0 | Neutral-800 |
| --color-bg-subtle | Neutral-10 | Neutral-700 |
| --color-bg-muted | Neutral-30 | Neutral-600 |
| --color-bg-emphasis | Neutral-900 | Neutral-0 |
| --color-bg-inverse | Neutral-900 | Neutral-0 |
Surface
| Token | Light | Dark |
|---|---|---|
| --color-surface-default | Neutral-0 | Neutral-700 |
| --color-surface-raised | Neutral-0 | Neutral-600 |
| --color-surface-overlay | Neutral-0 | Neutral-600 |
| --color-surface-sunken | Neutral-10 | Neutral-800 |
| --color-surface-sunken2 | Neutral-20 | Neutral-900 |
Text
| Token | Light | Dark |
|---|---|---|
| --color-text-primary | Neutral-900 | Neutral-0 |
| --color-text-secondary | Neutral-400 | Neutral-60 |
| --color-text-tertiary | Neutral-200 | Neutral-90 |
| --color-text-placeholder | Neutral-90 | Neutral-200 |
| --color-text-placeholder-subtle | Neutral-30 | Neutral-600 |
| --color-text-disabled | Neutral-60 | Neutral-400 |
| --color-text-inverse | Neutral-0 | Neutral-900 |
| --color-text-link | Blue-500 | Blue-300 |
| --color-text-link-hover | Blue-600 | Blue-200 |
Brand
| Token | Light | Dark |
|---|---|---|
| --color-brand-primary | Neutral-900 | Neutral-0 |
| --color-brand-primary-hover | Neutral-700 | Neutral-10 |
| --color-brand-primary-active | Neutral-600 | Neutral-30 |
| --color-brand-on-primary | Neutral-0 | Neutral-900 |
| --color-brand-secondary | Blue-500 | Blue-400 |
| --color-brand-secondary-hover | Blue-600 | Blue-300 |
| --color-brand-secondary-active | Blue-700 | Blue-200 |
| --color-brand-on-secondary | Neutral-0 | Neutral-0 |
| --color-brand-tertiary | Neutral-400 | Neutral-60 |
| --color-brand-tertiary-hover | Neutral-900 | Neutral-0 |
| --color-brand-tertiary-active | Neutral-700 | Neutral-10 |
Interactive
| Token | Light | Dark |
|---|---|---|
| --color-interactive-primary | Neutral-900 | Neutral-0 |
| --color-interactive-primary-hover | Neutral-700 | Neutral-10 |
| --color-interactive-primary-active | Neutral-600 | Neutral-30 |
| --color-interactive-primary-disabled | Neutral-50 | Neutral-500 |
| --color-interactive-secondary | Neutral-0 | Neutral-700 |
| --color-interactive-secondary-hover | Neutral-10 | Neutral-600 |
| --color-interactive-ghost-hover | Neutral-20 | Neutral-600 |
Border
| Token | Light | Dark |
|---|---|---|
| --color-border-on-canvas | Neutral-30 | Neutral-800 |
| --color-border-subtle | Neutral-30 | Neutral-700 |
| --color-border-medium | Neutral-40 | Neutral-600 |
| --color-border-default | Neutral-50 | Neutral-500 |
| --color-border-strong | Neutral-700 | Neutral-90 |
| --color-border-focus | Blue-500 | Blue-400 |
Status Colors
Status colors provide consistent visual feedback for success, warning, and critical states.
Success
| Token | Light | Dark |
|---|---|---|
| --color-success-bg | Success-100 | Success-800 |
| --color-success-bg-subtle | Success-50 | Success-900 |
| --color-success-border | Success-200 | Success-700 |
| --color-success-text | Success-700 | Success-200 |
| --color-success-icon | Success-500 | Success-400 |
| --color-success-action | Success-500 | Success-400 |
| --color-success-action-hover | Success-600 | Success-600 |
Warning
| Token | Light | Dark |
|---|---|---|
| --color-warning-bg | Warning-100 | Warning-800 |
| --color-warning-bg-subtle | Warning-50 | Warning-900 |
| --color-warning-border | Warning-300 | Warning-700 |
| --color-warning-text | Warning-800 | Warning-200 |
| --color-warning-icon | Warning-600 | Warning-400 |
| --color-warning-action | Warning-500 | Warning-400 |
| --color-warning-action-hover | Warning-600 | Warning-300 |
Critical
| Token | Light | Dark |
|---|---|---|
| --color-critical-bg | Critical-50 | Critical-800 |
| --color-critical-bg-subtle | Critical-25 | Critical-900 |
| --color-critical-border | Critical-200 | Critical-700 |
| --color-critical-text | Critical-700 | Critical-200 |
| --color-critical-icon | Critical-500 | Critical-400 |
| --color-critical-action | Critical-500 | Critical-400 |
| --color-critical-action-hover | Critical-600 | Critical-300 |
| --color-critical-disabled | Critical-100 | Critical-700 |
Usage Examples
Practical examples of semantic tokens in action.
Canvas background
background: var(--color-bg-canvas);
Surface with border
background: var(--color-surface-default);
border: 1px solid var(--color-border-default);
border: 1px solid var(--color-border-default);
Secondary text
color: var(--color-text-secondary);
Link text
color: var(--color-text-link);
Success
background: var(--color-success-bg);
color: var(--color-success-text);
color: var(--color-success-text);
Warning
background: var(--color-warning-bg);
color: var(--color-warning-text);
color: var(--color-warning-text);
Critical
background: var(--color-critical-bg);
color: var(--color-critical-text);
color: var(--color-critical-text);
Primary Brand
background: var(--color-brand-primary);
color: var(--color-brand-on-primary);
color: var(--color-brand-on-primary);