Design Nomenclature / Systems & Spec

Semantic token

Also called alias token, decision token, primitive token, base token

A token named for its role rather than its value — `color.text.subtle`, not `gray.600` — pointing at a primitive token beneath it. The primitive layer holds the palette; the semantic layer holds the decisions. Only the semantic layer should ever appear inside a component.

A two-column comparison of the two token layers. Left, a primitive token: gray.600 holding the hex value #767676 — the palette, naming a value and nothing more, and never to be referenced inside a component. Right, a semantic token: color.text.subtle pointing at gray.600 — the decision, which can be re-pointed for dark mode without touching a single component. Skipping the right column is what forces a rewrite later.

In practice

The layer teams skip and then rebuild when dark mode lands: `gray.600` used directly can't be re-pointed, so every component changes instead of one alias.

Not to be confused with

How this term connects

Design systemDesign tokenModular scaleSpacing scaleVariableSemantic token
Related Confused with