Утро (3-4 часа): Внедрение методологии и организация структуры.
Первый и самый важный шаг — выбор и настройка методологии именования. Забудьте о произвольных именах классов. Эксперты в этот день внедряют БЭМ (Block, Element, Modifier) или, как минимум, его строгие принципы. БЭМ создаёт плоский, предсказуемый пространство имён, исключающее конфликты. Вы не тратите время на придумывание уникальных имён, а следуете шаблону: `.block__element--modifier`. Это сразу решает проблему специфичности (specificity) CSS, так как стили становятся максимально плоскими и не требуют `!important`.
Параллельно вы реорганизуете структуру папок SCSS. Создаётся модульная архитектура. Примерная структура за один день:
- `abstracts/` (или `utils/`): Переменные (`_variables.scss`), миксины (`_mixins.scss`), функции (`_functions.scss`), плэйсхолдеры (`_placeholders.scss`). Это основа дизайн-системы.
- `base/`: Сброс стилей (`_reset.scss`), типографика (`_typography.scss`), глобальные стили (`_global.scss`).
- `components/`: Папка для независимых, переиспользуемых компонентов UI (кнопки, карточки, инпуты). Каждый компонент в своём файле (`_button.scss`, `_card.scss`). Стили внутри пишутся строго по БЭМ.
- `layout/`: Стили для крупных layout-компонентов (шапка, подвал, сетка, сайдбар).
- `pages/`: Стили, специфичные для отдельных страниц (если это необходимо, но старайтесь избегать, используя комбинации компонентов).
- `themes/`: Темы оформления.
- `vendors/`: Стили сторонних библиотек.
День (4-5 часов): Автоматизация, контроль качества и дизайн-токены.
После обеда наступает время автоматизации. Вручную следить за соблюдением БЭМ и структурой невозможно. Эксперты за один день настраивают линтер для SCSS. Инструмент выбора — Stylelint. Вы создаёте конфигурационный файл `.stylelintrc.json` с правилами, которые будут «защищать» ваш код:
- Запрет на глобальные селекторы по тегам (`div`, `span`) вне `base/`.
- Запрет на использование `id` в качестве селекторов.
- Правила для согласованного форматирования (порядок свойств, отступы).
- Плагин `stylelint-selector-bem-pattern` для принудительного соблюдения БЭМ.
Следующий этап — формализация дизайн-системы через токены. В файле `_variables.scss` вы определяете не разрозненные цвета и размеры, а систему дизайн-токенов с осмысленными именами:
`$color-primary: #007bff;`
`$color-surface: #ffffff;`
`$spacing-unit: 8px;`
`$spacing-md: $spacing-unit * 2; // 16px`
`$border-radius-base: 4px;`
`$font-family-base: 'Inter', sans-serif;`
Это превращает SCSS из набора стилей в конфигурацию дизайн-системы. Изменение темы или масштаба теперь требует правки в одном месте.
Вечер (2-3 часа): Документация и создание системы предпросмотра.
Последний рывок дня — создание живой документации. Эксперты используют инструменты вроде Storybook или его более легковесные альтернативы. За оставшееся время можно настроить базовую среду Storybook и создать несколько «стори» для ключевых компонентов (кнопка, инпут, карточка), импортируя SCSS-модули. Это служит двум целям: 1) Документация для дизайнеров и разработчиков. 2) Визуальный регрессионный тест. Любое изменение стилей компонента будет сразу видно в Storybook.
Параллельно вы пишете краткий `README.md` или добавляете раздел в документацию проекта, описывающий:
- Принятую методологию (БЭМ).
- Структуру папок SCSS.
- Как добавлять новые переменные/компоненты.
- Как запустить линтер и Storybook.
К концу дня вы получаете не просто «защищённый» SCSS, а профессиональную, масштабируемую систему стилей. Она защищена от конфликтов (БЭМ), от хаотичного роста (модульная структура), от человеческих ошибок (линтер), от дрейфа дизайна (дизайн-токены) и от непонимания (документация и Storybook). Этот один день инвестиций окупится многократно на протяжении всего жизненного цикла проекта, сделав работу со стилями предсказуемой и эффективной.
Комментарии (14)