Colors
Semantic neutrals, the ink overlay ramp, and the brand and state color families.
Neutrals follow {role}(-{purpose})(-{intensity}) where the role is foreground, layer, line, or fill. The intensity ladder is strictly ordered: strong > default (bare) > muted.
layer tokens name places on the elevation ladder; fill tokens are the opaque neutral interaction fills (resting/hover/active/disabled surfaces) — the opaque counterpart of the translucent ink washes.
Color families — primary, accent, secondary, info, success, warning, and danger — share the same intensity ladder as neutrals: -strong (deep shade for readable text and rings) > the bare solid fill > -muted (strong wash) > -soft (soft wash), plus -foreground for text on the solid. The solid interaction pair -hover/-active is opt-in: primary, accent, info, warning, and danger define it; success and secondary do not.
The ink ramp ink-2 … ink-40 is a neutral overlay scale for hairlines, washes, and hover/pressed fills on transparent surfaces — the suffix is the alpha percentage.
Escape hatch: one-off precision values stay as inline oklch() literals. Promote a value to a token only when it repeats across components (rule of three).
Brutal
Intensity
- Brutal --foreground-strong: --foreground-strong
- Brutal --foreground: --foreground
- Brutal --foreground-muted: --foreground-muted
Purpose
- Brutal --foreground-hint: --foreground-hint
- Brutal --foreground-icon: --foreground-icon
- Brutal --foreground-placeholder: --foreground-placeholder
- Brutal --foreground-disabled: --foreground-disabled
- Brutal --foreground-inverse: --foreground-inverse
- Brutal --foreground-active: --foreground-active
- Brutal --foreground-hover: --foreground-hover
Elegant light
Intensity
- Elegant light --foreground-strong: --foreground-strong
- Elegant light --foreground: --foreground
- Elegant light --foreground-muted: --foreground-muted
Purpose
- Elegant light --foreground-hint: --foreground-hint
- Elegant light --foreground-icon: --foreground-icon
- Elegant light --foreground-placeholder: --foreground-placeholder
- Elegant light --foreground-disabled: --foreground-disabled
- Elegant light --foreground-inverse: --foreground-inverse
- Elegant light --foreground-active: --foreground-active
- Elegant light --foreground-hover: --foreground-hover
Elegant dark
Intensity
- Elegant dark --foreground-strong: --foreground-strong
- Elegant dark --foreground: --foreground
- Elegant dark --foreground-muted: --foreground-muted
Purpose
- Elegant dark --foreground-hint: --foreground-hint
- Elegant dark --foreground-icon: --foreground-icon
- Elegant dark --foreground-placeholder: --foreground-placeholder
- Elegant dark --foreground-disabled: --foreground-disabled
- Elegant dark --foreground-inverse: --foreground-inverse
- Elegant dark --foreground-active: --foreground-active
- Elegant dark --foreground-hover: --foreground-hover
Brutal
Surface
- Brutal --layer-canvas: --layer-canvas
- Brutal --layer-canvas-muted: --layer-canvas-muted
- Brutal --layer-panel: --layer-panel
- Brutal --layer-popover: --layer-popover
- Brutal --layer-inset: --layer-inset
- Brutal --layer-card: --layer-card
- Brutal --layer-hud: --layer-hud
- Brutal --layer-hud-foreground: --layer-hud-foreground
Overlay
- Brutal --layer-backdrop: --layer-backdrop
Elegant light
Surface
- Elegant light --layer-canvas: --layer-canvas
- Elegant light --layer-canvas-muted: --layer-canvas-muted
- Elegant light --layer-panel: --layer-panel
- Elegant light --layer-popover: --layer-popover
- Elegant light --layer-inset: --layer-inset
- Elegant light --layer-card: --layer-card
- Elegant light --layer-hud: --layer-hud
- Elegant light --layer-hud-foreground: --layer-hud-foreground
Overlay
- Elegant light --layer-backdrop: --layer-backdrop
Elegant dark
Surface
- Elegant dark --layer-canvas: --layer-canvas
- Elegant dark --layer-canvas-muted: --layer-canvas-muted
- Elegant dark --layer-panel: --layer-panel
- Elegant dark --layer-popover: --layer-popover
- Elegant dark --layer-inset: --layer-inset
- Elegant dark --layer-card: --layer-card
- Elegant dark --layer-hud: --layer-hud
- Elegant dark --layer-hud-foreground: --layer-hud-foreground
Overlay
- Elegant dark --layer-backdrop: --layer-backdrop
Brutal
Interaction fills
- Brutal --fill-muted: --fill-muted
- Brutal --fill-strong: --fill-strong
Elegant light
Interaction fills
- Elegant light --fill-muted: --fill-muted
- Elegant light --fill-strong: --fill-strong
Elegant dark
Interaction fills
- Elegant dark --fill-muted: --fill-muted
- Elegant dark --fill-strong: --fill-strong
Brutal
Ladder
- Brutal --line-strong: --line-strong
- Brutal --line: --line
- Brutal --line-muted: --line-muted
Purpose
- Brutal --line-hairline: --line-hairline
- Brutal --line-field: --line-field
- Brutal --line-field-hover: --line-field-hover
Elegant light
Ladder
- Elegant light --line-strong: --line-strong
- Elegant light --line: --line
- Elegant light --line-muted: --line-muted
Purpose
- Elegant light --line-hairline: --line-hairline
- Elegant light --line-field: --line-field
- Elegant light --line-field-hover: --line-field-hover
Elegant dark
Ladder
- Elegant dark --line-strong: --line-strong
- Elegant dark --line: --line
- Elegant dark --line-muted: --line-muted
Purpose
- Elegant dark --line-hairline: --line-hairline
- Elegant dark --line-field: --line-field
- Elegant dark --line-field-hover: --line-field-hover
Brutal
Ramp
- Brutal --ink: --ink
- Brutal --ink-2: --ink-2
- Brutal --ink-4: --ink-4
- Brutal --ink-6: --ink-6
- Brutal --ink-8: --ink-8
- Brutal --ink-10: --ink-10
- Brutal --ink-16: --ink-16
- Brutal --ink-20: --ink-20
- Brutal --ink-30: --ink-30
- Brutal --ink-40: --ink-40
Elegant light
Ramp
- Elegant light --ink: --ink
- Elegant light --ink-2: --ink-2
- Elegant light --ink-4: --ink-4
- Elegant light --ink-6: --ink-6
- Elegant light --ink-8: --ink-8
- Elegant light --ink-10: --ink-10
- Elegant light --ink-16: --ink-16
- Elegant light --ink-20: --ink-20
- Elegant light --ink-30: --ink-30
- Elegant light --ink-40: --ink-40
Elegant dark
Ramp
- Elegant dark --ink: --ink
- Elegant dark --ink-2: --ink-2
- Elegant dark --ink-4: --ink-4
- Elegant dark --ink-6: --ink-6
- Elegant dark --ink-8: --ink-8
- Elegant dark --ink-10: --ink-10
- Elegant dark --ink-16: --ink-16
- Elegant dark --ink-20: --ink-20
- Elegant dark --ink-30: --ink-30
- Elegant dark --ink-40: --ink-40
Brutal
Primary slots
- Brutal --color-primary: --color-primary
- Brutal --primary-strong: --primary-strong
- Brutal --primary-soft: --primary-soft
- Brutal --primary-edge: --primary-edge
- Brutal --primary-hover: --primary-hover
- Brutal --primary-active: --primary-active
Accent slots
- Brutal --color-accent: --color-accent
- Brutal --accent-strong: --accent-strong
- Brutal --accent-soft: --accent-soft
- Brutal --accent-hover: --accent-hover
- Brutal --accent-active: --accent-active
Primary ramp
- Brutal --primary-50: --primary-50
- Brutal --primary-100: --primary-100
- Brutal --primary-200: --primary-200
- Brutal --primary-300: --primary-300
- Brutal --primary-400: --primary-400
- Brutal --primary-500: --primary-500
- Brutal --primary-600: --primary-600
- Brutal --primary-700: --primary-700
- Brutal --primary-800: --primary-800
- Brutal --primary-900: --primary-900
- Brutal --primary-950: --primary-950
Accent ramp
- Brutal --accent-50: --accent-50
- Brutal --accent-100: --accent-100
- Brutal --accent-200: --accent-200
- Brutal --accent-300: --accent-300
- Brutal --accent-400: --accent-400
- Brutal --accent-500: --accent-500
- Brutal --accent-600: --accent-600
- Brutal --accent-700: --accent-700
- Brutal --accent-800: --accent-800
- Brutal --accent-900: --accent-900
- Brutal --accent-950: --accent-950
Secondary ramp
- Brutal --color-secondary: --color-secondary
- Brutal --secondary-50: --secondary-50
- Brutal --secondary-100: --secondary-100
- Brutal --secondary-200: --secondary-200
- Brutal --secondary-300: --secondary-300
- Brutal --secondary-400: --secondary-400
- Brutal --secondary-500: --secondary-500
- Brutal --secondary-600: --secondary-600
- Brutal --secondary-700: --secondary-700
- Brutal --secondary-800: --secondary-800
- Brutal --secondary-900: --secondary-900
- Brutal --secondary-950: --secondary-950
Elegant light
Primary slots
- Elegant light --color-primary: --color-primary
- Elegant light --primary-strong: --primary-strong
- Elegant light --primary-soft: --primary-soft
- Elegant light --primary-edge: --primary-edge
- Elegant light --primary-hover: --primary-hover
- Elegant light --primary-active: --primary-active
Accent slots
- Elegant light --color-accent: --color-accent
- Elegant light --accent-strong: --accent-strong
- Elegant light --accent-soft: --accent-soft
- Elegant light --accent-hover: --accent-hover
- Elegant light --accent-active: --accent-active
Primary ramp
- Elegant light --primary-50: --primary-50
- Elegant light --primary-100: --primary-100
- Elegant light --primary-200: --primary-200
- Elegant light --primary-300: --primary-300
- Elegant light --primary-400: --primary-400
- Elegant light --primary-500: --primary-500
- Elegant light --primary-600: --primary-600
- Elegant light --primary-700: --primary-700
- Elegant light --primary-800: --primary-800
- Elegant light --primary-900: --primary-900
- Elegant light --primary-950: --primary-950
Accent ramp
- Elegant light --accent-50: --accent-50
- Elegant light --accent-100: --accent-100
- Elegant light --accent-200: --accent-200
- Elegant light --accent-300: --accent-300
- Elegant light --accent-400: --accent-400
- Elegant light --accent-500: --accent-500
- Elegant light --accent-600: --accent-600
- Elegant light --accent-700: --accent-700
- Elegant light --accent-800: --accent-800
- Elegant light --accent-900: --accent-900
- Elegant light --accent-950: --accent-950
Secondary ramp
- Elegant light --color-secondary: --color-secondary
- Elegant light --secondary-50: --secondary-50
- Elegant light --secondary-100: --secondary-100
- Elegant light --secondary-200: --secondary-200
- Elegant light --secondary-300: --secondary-300
- Elegant light --secondary-400: --secondary-400
- Elegant light --secondary-500: --secondary-500
- Elegant light --secondary-600: --secondary-600
- Elegant light --secondary-700: --secondary-700
- Elegant light --secondary-800: --secondary-800
- Elegant light --secondary-900: --secondary-900
- Elegant light --secondary-950: --secondary-950
Elegant dark
Primary slots
- Elegant dark --color-primary: --color-primary
- Elegant dark --primary-strong: --primary-strong
- Elegant dark --primary-soft: --primary-soft
- Elegant dark --primary-edge: --primary-edge
- Elegant dark --primary-hover: --primary-hover
- Elegant dark --primary-active: --primary-active
Accent slots
- Elegant dark --color-accent: --color-accent
- Elegant dark --accent-strong: --accent-strong
- Elegant dark --accent-soft: --accent-soft
- Elegant dark --accent-hover: --accent-hover
- Elegant dark --accent-active: --accent-active
Primary ramp
- Elegant dark --primary-50: --primary-50
- Elegant dark --primary-100: --primary-100
- Elegant dark --primary-200: --primary-200
- Elegant dark --primary-300: --primary-300
- Elegant dark --primary-400: --primary-400
- Elegant dark --primary-500: --primary-500
- Elegant dark --primary-600: --primary-600
- Elegant dark --primary-700: --primary-700
- Elegant dark --primary-800: --primary-800
- Elegant dark --primary-900: --primary-900
- Elegant dark --primary-950: --primary-950
Accent ramp
- Elegant dark --accent-50: --accent-50
- Elegant dark --accent-100: --accent-100
- Elegant dark --accent-200: --accent-200
- Elegant dark --accent-300: --accent-300
- Elegant dark --accent-400: --accent-400
- Elegant dark --accent-500: --accent-500
- Elegant dark --accent-600: --accent-600
- Elegant dark --accent-700: --accent-700
- Elegant dark --accent-800: --accent-800
- Elegant dark --accent-900: --accent-900
- Elegant dark --accent-950: --accent-950
Secondary ramp
- Elegant dark --color-secondary: --color-secondary
- Elegant dark --secondary-50: --secondary-50
- Elegant dark --secondary-100: --secondary-100
- Elegant dark --secondary-200: --secondary-200
- Elegant dark --secondary-300: --secondary-300
- Elegant dark --secondary-400: --secondary-400
- Elegant dark --secondary-500: --secondary-500
- Elegant dark --secondary-600: --secondary-600
- Elegant dark --secondary-700: --secondary-700
- Elegant dark --secondary-800: --secondary-800
- Elegant dark --secondary-900: --secondary-900
- Elegant dark --secondary-950: --secondary-950
Brutal
inactive
- Brutal --color-inactive: --color-inactive
- Brutal --color-inactive-foreground: --color-inactive-foreground
info
- Brutal --color-info: --color-info
- Brutal --color-info-strong: --color-info-strong
- Brutal --color-info-muted: --color-info-muted
- Brutal --color-info-soft: --color-info-soft
- Brutal --color-info-hover: --color-info-hover
- Brutal --color-info-active: --color-info-active
success
- Brutal --color-success: --color-success
- Brutal --color-success-foreground: --color-success-foreground
- Brutal --color-success-strong: --color-success-strong
- Brutal --color-success-muted: --color-success-muted
- Brutal --color-success-soft: --color-success-soft
warning
- Brutal --color-warning: --color-warning
- Brutal --color-warning-foreground: --color-warning-foreground
- Brutal --color-warning-strong: --color-warning-strong
- Brutal --color-warning-muted: --color-warning-muted
- Brutal --color-warning-soft: --color-warning-soft
- Brutal --color-warning-hover: --color-warning-hover
- Brutal --color-warning-active: --color-warning-active
danger
- Brutal --color-danger: --color-danger
- Brutal --color-danger-foreground: --color-danger-foreground
- Brutal --color-danger-strong: --color-danger-strong
- Brutal --color-danger-muted: --color-danger-muted
- Brutal --color-danger-soft: --color-danger-soft
- Brutal --color-danger-hover: --color-danger-hover
- Brutal --color-danger-active: --color-danger-active
Elegant light
inactive
- Elegant light --color-inactive: --color-inactive
- Elegant light --color-inactive-foreground: --color-inactive-foreground
info
- Elegant light --color-info: --color-info
- Elegant light --color-info-strong: --color-info-strong
- Elegant light --color-info-muted: --color-info-muted
- Elegant light --color-info-soft: --color-info-soft
- Elegant light --color-info-hover: --color-info-hover
- Elegant light --color-info-active: --color-info-active
success
- Elegant light --color-success: --color-success
- Elegant light --color-success-foreground: --color-success-foreground
- Elegant light --color-success-strong: --color-success-strong
- Elegant light --color-success-muted: --color-success-muted
- Elegant light --color-success-soft: --color-success-soft
warning
- Elegant light --color-warning: --color-warning
- Elegant light --color-warning-foreground: --color-warning-foreground
- Elegant light --color-warning-strong: --color-warning-strong
- Elegant light --color-warning-muted: --color-warning-muted
- Elegant light --color-warning-soft: --color-warning-soft
- Elegant light --color-warning-hover: --color-warning-hover
- Elegant light --color-warning-active: --color-warning-active
danger
- Elegant light --color-danger: --color-danger
- Elegant light --color-danger-foreground: --color-danger-foreground
- Elegant light --color-danger-strong: --color-danger-strong
- Elegant light --color-danger-muted: --color-danger-muted
- Elegant light --color-danger-soft: --color-danger-soft
- Elegant light --color-danger-hover: --color-danger-hover
- Elegant light --color-danger-active: --color-danger-active
Elegant dark
inactive
- Elegant dark --color-inactive: --color-inactive
- Elegant dark --color-inactive-foreground: --color-inactive-foreground
info
- Elegant dark --color-info: --color-info
- Elegant dark --color-info-strong: --color-info-strong
- Elegant dark --color-info-muted: --color-info-muted
- Elegant dark --color-info-soft: --color-info-soft
- Elegant dark --color-info-hover: --color-info-hover
- Elegant dark --color-info-active: --color-info-active
success
- Elegant dark --color-success: --color-success
- Elegant dark --color-success-foreground: --color-success-foreground
- Elegant dark --color-success-strong: --color-success-strong
- Elegant dark --color-success-muted: --color-success-muted
- Elegant dark --color-success-soft: --color-success-soft
warning
- Elegant dark --color-warning: --color-warning
- Elegant dark --color-warning-foreground: --color-warning-foreground
- Elegant dark --color-warning-strong: --color-warning-strong
- Elegant dark --color-warning-muted: --color-warning-muted
- Elegant dark --color-warning-soft: --color-warning-soft
- Elegant dark --color-warning-hover: --color-warning-hover
- Elegant dark --color-warning-active: --color-warning-active
danger
- Elegant dark --color-danger: --color-danger
- Elegant dark --color-danger-foreground: --color-danger-foreground
- Elegant dark --color-danger-strong: --color-danger-strong
- Elegant dark --color-danger-muted: --color-danger-muted
- Elegant dark --color-danger-soft: --color-danger-soft
- Elegant dark --color-danger-hover: --color-danger-hover
- Elegant dark --color-danger-active: --color-danger-active