Процедуры контроля и автоматизация
Для поддержания качества кода и консистентности стилей используются автоматизированные проверки и ручное ревью.
Code Review
Обязательные проверки
- ✅ Повторяющиеся
sx-стили вынесены (3+ повторения) - ✅ Адаптив реализован mobile-first
- ✅ Цвета через семантические токены
- ✅
styleprop только для динамических значений - ✅ Нет избыточной специфичности/вложенности (max 3 уровня)
- ✅ Логические свойства (если RTL проект)
- ✅ Нет
!importantбез комментария
Автоматизация
# Неиспользуемые стили
npx knip --include files
Stylelint / ESLint:
{
"rules": {
"max-nesting-depth": [
3,
{ "ignore": ["pseudo-classes", "pseudo-elements"] }
],
"declaration-no-important": [true, { "severity": "warning" }],
"react/forbid-component-props": ["error", { "forbid": ["style"] }]
}
}
Prettier: prettier-plugin-tailwindcss
ESLint Tailwind: eslint-plugin-tailwindcss
Чеклист разработчика
Перед коммитом
- Все значения из дизайн-токенов
- Mobile-first подход
- Максимум 3 уровня вложенности
-
sxне для высокочастотных значений - Повторяющиеся стили вынесены (3+)
- Анимации с
prefers-reduced-motion -
font-display: swapдля всех @font-face - Нет layout shift (CLS) из-за динамических стилей
- Dark mode работает без FOUC (flash of unstyled content)
- Семантические токены для цветов
- Логические свойства (если RTL)
- Нет селекторов по тегам
Перед ревью
- Линтеры проходят
- Неиспользуемые стили удалены
- Классы отсортированы (Tailwind)
- Нет
!importantбез обоснования