- Именование классов по БЭМ, стилизация Sass. См. как работать с CSS-препроцессорами и БЭМ
- Каждый БЭМ-блок со стилевым файлом в своей папке внутри
source/scss/components
. - Диспетчер подключения стилей
source/scss/style.scss
генерируется автоматически, содержит импорты стилевых файлов использованных в разметке блоков и импорты доп. файлов. - Входная точка обработки js (
source/js/script.js
) содержитimport
компонентов и доп. файлов. - Используется относительно жёсткий кодгайд.
npm start # запуск сервера разработки
npm start deploy # отправка содержимого папки сборки на gh-pages (нужен репозиторий на github.com)
npm run build # сборка для production без запуска сервера разработки
npm run test # проверка всех scss- и js-файлов на соответствие правилам (см. .stylelintrc и eslintrc соответственно)
npm run test:style # проверить только scss-файлы
npm run test:js # проверить только js-файлы
build/ # Папка сборки
source/ # Исходники
blocks/ # Блоки
fonts/ # Шрифты
img/ # Доп. изображения
pages/ # Страницы проекта
template-parts/ # html блоки для сайтовой шапки и футера
scss/ # Служебные стилевые файлы
scss/components # SCSS файлы БЭМ-блоков
scss/components/shared # SCSS файлы атомарных БЭМ-блоков
При npm start
запускается дефолтная задача gulp:
- Очищается папка сборки (
build/
). - В index.html подключаються части шаблонов из (
source/template-parts/**/*
). - Генерируются спрайты (если используются), в папку сборки
- Записывается диспетчер подключения стилей
source/scss/style.scss
, в котором:- Импорты файлов переменных и примесей.
- Импорты файлов БЭМ-блоков.
- Записывается диспетчер подключений скриптов
source/js/script.js
, в котором:import
компонентов, использующихся в разметке.
- Компилируются и обрабатываются PostCSS-ом стили (
source/scss/style.scss
). - Javascript (
source/js/script.js
) собирается webpack-ом. - Запускается локальный сервер и слежение за файлами для пересборки.
Каждый блок со стилевым файлом лежит в source/scss/components
.
Используемый постпроцессинг:
Автопроверка с stylelint и плагинами. См. .stylelintrc
.
- БЭМ-именование:
__
— разделитель элемента,--
— разделитель модификатора. - Один Блок = один стилевой файл.
- Очередность селекторов:
- Инклуды примесей
- Стилевые правила сущности
- Медиаусловия
- Псевдоселекторы и псевдоэлементы
- Сторонние вложенные селекторы
- Элементы блока
- Модификаторы блока
Точка входа обрабатывается webpack-ом (с babel-loader).
Ставьте звезду в верхнем правом углу