The hybrid naming architecture used by mature design systems
Figma's and GitHub's mature color systems use a three-tier hierarchy: (1) Primitive tokens — numeric or descriptive names that map to specific color values (Blue-500, Gray-100). These are never used directly in component design; they exist as the raw material for the semantic layer. (2) Semantic tokens — functional or role-based names (Text-Primary, Surface-Raised, Border-Subtle) that reference primitives. These are what designers and developers use directly. (3) Component tokens — component-specific overrides (Button-Background-Default, Input-Border-Focus) that reference semantic tokens or primitives directly. The key insight: each tier can evolve independently. Primitives can be recalibrated without changing semantic names; semantic tokens can be remapped to different primitives without changing component implementations.
