Внедрение и управление
Проекты без design-системы
Регламент не требует мгновенного рефакторинга всего UI, но запрещает ухудшать текущее состояние.
MUST
- Добавить минимальный централизованный слой:
- файл UI-констант или набор CSS-переменных
- базовый
Iconкомпонент
- Новый UI-код не содержит hard-code значений.
FORBIDDEN
- Добавлять новые "временные" hard-code значения.
- Оставлять UI-код без централизованных базовых значений.
Правило нового кода (MUST)
- Весь новый UI-код использует дизайн-токены.
- Используется единый
Iconкомпонент. - Новый hard-code запрещён.
Пример
// ✅ Хорошо
<Button variant="primary" />
// ❌ Плохо
<button style={{ background: '#1b1b1b', color: '#fff' }}>Submit</button>
Правило "по касанию" (MUST)
Если разработчик меняет компонент/стили/сценарий, он приводит затронутый участок к правилам design-системы без требования полного рефакторинга модуля.
✅ Хорошо
- заменили локальный цвет на токен
- перевели SVG на
Iconкомпонент
❌ Плохо
- добавили новый hard-code ради совместимости
Временные отклоне ния (MVP / small projects)
Допускается
- не выносить токены в отдельный пакет
- использовать ограниченный набор CSS-переменных
- локально определить базовые цвета и типографику
- простой
Iconкомпонент без генерации типов - отсутствие SVG pipeline
Обязательные ограничения
- Запрещено хаотичное использование "магических" значений.
- Значения централизованы в одном месте, а не размазаны по компонентам.
- Новые hard-code значения не добавляются "на время".
- Inline-стили и inline-SVG не используются без обоснования (например, анимация).
- Упрощения не ухудшают консистентн ость интерфейса.
Когда возвращаемся к основным правилам
- рост проекта или команды
- появляются требования к темам (light/dark)
- планируется ребрендинг
- UI используется в нескольких подпроектах
- увеличивается количество повторяющихся компонентов
Управление изменениями
MUST
- Изменения токенов и иконок согласуются с дизайном.
- Изменения поставляются как версия (semver) с changelog.
SHOULD
- Депрекейшены объявля ются заранее и имеют окно миграции.
- Критичные изменения проходят через экспериментальную стадию.
Процедуры контроля (Code Review)
Ревьюер должен убедиться, что:
- в новом UI-коде нет hard-code значений цветов/отступов/размеров
- используются дизайн-токены или допустимые локальные UI-константы
- новые значения не копируются из legacy-кода
- иконки используются через
Iconкомпонент - inline-SVG применяется только с обоснованием