Primitive — сырые значения (blue.600, 4px); semantic — роли в интерфейсе (color.bg.surface, color.text.danger), ссылающиеся на primitives. Семантика стабилизирует смысл при смене темы.
Разбор
- Компоненты должны использовать semantic, не сырой hex.
- Темы меняют binding primitive↔semantic.
- Alias-цепочки документируйте.
- Слишком много слоёв усложняет поддержку.
Итог
Semantic tokens задают смысл; primitives — палитру значений.