- Именование классов по БЭМ, стилизация 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).
Ставьте звезду в верхнем правом углу