02
3 min
Primitives
Hex codes and pixel values scattered across the codebase have no meaning and no owner.
A primitive is a raw value with a name. blue-600 is #2563eb. That's a fact, not a decision. You define them once and rarely touch them again.
Nothing in the UI should reference a primitive directly. A primitive sits in the palette until a semantic token points at it. Until then, it does no work.
Rename a token. Change a value. The button below is hard-coded. It will not move.
The button is still a hard-coded hex. Rename and revalue the palette. Nothing on screen that matters will move.
You edited facts. Nothing consumed them. That gap is the next two layers.