Дизайн-токены
Определение
Дизайн-токены - атомарные переменные, которые хранят значения:
- цветов
- типографики
- отступов
- радиусов
- теней
- других UI-параметров
Токены живут отдельно от компонентов и применяются везде, где нужна визуальная консистентность.
Уровни токенов
MUST
- UI-код использует семантические или компонентные токены.
- Базовые (core) токены используются только внутри слоя токенов.
Структура
- Core tokens — "сырьевые" значения.
- Semantic tokens — значения с бизнес-смыслом (text, bg, border, etc).
- Component tokens — локальные токены для компонента (опционально).
Пример
// tokens/base.json
{
"color": {
"base": {
"neutral": {
"900": { "value": "#1b1b1b" }
}
}
}
}
// tokens/semantic.json
{
"color": {
"text": {
"primary": { "value": "{color.base.neutral.900}" }
}
}
}
// tokens/components.json
{
"button": {
"primary": {
"bg": { "value": "{color.bg.brand}" },
"text": { "value": "{color.text.inverse}" }
}
}
}
Правила использования
MUST
- Все значения UI берутся из токенов.
- Новые компоненты не добавляют hard-code значений.
SHOULD
- Семантика важнее цвета:
color.text.primary, а неcolor.blue.500. - Компонентные токены вводятся только если компонент реально уникален.
FORBIDDEN
- Использовать core токены напрямую в UI.
- Создавать токены "на один э кран".
Нейминг и структура
MUST
- Имена должны отражать смысл использования, а не конкретный цвет.
- Иерархия должна быть предсказуемой и единообразной.
Пример нейминга
color.text.primary
color.bg.surface
space.m
radius.s
shadow.level.1
❌ Плохо
color.blue.500
space.cardPadding