Before evaluating naming and reuse, it is important to clarify structural layering.
A mature design token system separates color into three layers:
Primitive Layer
Raw color ramps such as red-500, blue-700, neutral-600.
Semantic Layer
Role-based meanings such as primary, warning, success, brand-primary.
Component Layer
Contextual assignments such as button-background, alert-border, card-surface.
This layered approach is explicitly described in Thunderbird’s recent design token work, where they distinguish primitive, semantic, and component tokens as separate architectural layers. See: https://youtu.be/rAJrAmu-lqw?si=cofi5ZeUtOYdlNAi&t=537
In that model:
The current Decidim color system appears strong at the primitive level and partially documented at the semantic level, but it does not formally define these as layered token tiers.
This architectural distinction is central to the rest of the audit.
Color families are structured as: