Skip to content

Token Naming

General rules

  • kebab-case in code: color-action-primary, button-primary-bg
  • dot notation in source JSON: color.action-primary, button.primary.bg
  • slash-separated in Figma: semantic/color/action/primary

Three layers

LayerPrefixExample (code)Example (Figma)
Primitive--color-green-600var(--color-green-600)primitive/color/green/600
Semantic--color-action-primaryvar(--color-action-primary)semantic/color/action/primary
Component--button-primary-bgvar(--button-primary-bg)component/button/primary/bg

Figma path mapping

Kebab segments in code are split into separate Figma path parts:

Code nameFigma path
color-action-primarysemantic/color/action/primary
button-primary-bg-hovercomponent/button/primary/bg/hover
color-green-50primitive/color/green/50

Color tokens

Semantic color token naming follows a {domain}-{variant} pattern:

DomainVariants
surface(default), alt, muted
textprimary, muted, subtle, inverse
actionprimary, primary-hover, secondary
borderdefault, subtle, strong
statussuccess, error, warning, info + -soft, -strong
link(default), hover

Spacing

Numeric scale: spacing.0 through spacing.24, plus half-steps (0.5, 1.5, 2.5, 3.5).

Z-index

Named layers instead of magic numbers:

TokenValue
z.base0
z.dropdown100
z.sticky200
z.modal300
z.toast400
z.tooltip500