При разработке крупных проектов часто требуется создать библиотеку блоков. Это позволяет сделать ваш проект более модульным и контролируемым. Такую библиотеку можно создать с помощью sc5 styleguide. В данном уроке используется sass в качестве препроцессора стилей и gulp для автоматизации. SC5 отлично работает и с другими технологиями, о чем можно прочитать в документации. Если вы не знакомы с gulp - у нас на блоге есть вводная статья.
Установка
Устанавливаем sc5 с помощью npm в папке проекта:
Для пользователей Windows может потребоваться установка от имени администратора.
Далее в gulpfile.js прописываем зависимость:
Написание gulp-тасков
Сначала зададим переменные в gulpfile
Обратите внимание, что вам нужно создать описание стайлгайда формате markdown и определить переменную для него(которую мы в последующем вставим в таск).
Первый таск - генерация стайлгайда:
Здесь мы берем все стилевые файлы и на их основе генерируем стайлгайд. Обратите внимание на параметр extraHead - в него передается массив, который потом вставляется в тег <head> стайлгайда. В данном случае вставлен код с размерами шрифтов, чтобы использовать rem. На данном этапе сгенерируется пустой стайлгайд, так как мы еще ничего не описали в стилях.
Следующий таск - применение стилей внутри стайлгайда:
Переменная scssRoot была определена до этого.
Если вы хотите использовать какие-либо файлы проекта внутри стайлгайда - можно их перенести. Для того, чтобы не делать это каждый раз вручную я написал таск:
Далее собираем gulp-таски в один и отправляем его в default и watcher:
Документируем код стилей
Чтобы стайлгайд “ожил” необходимо в стилях прописать комментарии с помощью kss. Синтаксис kss подробно расписан на их сайте.
Выглядит это так:
Давайте напишем тестовую страничку для кнопок стайлгайда. Создаем отдельный файл _buttons.scss и внутри него описываем кнопки. Для описания кнопок используется @extend(более подробно система с кнопками изложена в статье на нашем блоге)
_buttons.scss:
Обратите внимание, что мы можем описать модификаторы блока(например .big_mod), а затем поставить параметр {$modifiers}. Стайлгайд сгенерирует для нас все виды кнопок.
Если вы хотите создать еще раздел с блоками - просто делайте новый scss-файл(для лучшей наглядности) и опичвайте в нем новые блоки, указывая соответствующие номера для них.
Если вы хотите вставить некоторые блоки вместе - можно не переписывать разметку, а вставить их по номерам через специальный тег <sg-insert>.
Если стайлгайд не генерируется
Иногда случается, что sc5 не выдавая никакой ошибки просто не генерирует стайлгайд. В этом случае попробуйте обернуть специфичные препроцессорные стили в специальные комментарии:
Заключение
Разработка через стайлгайд помогает взаимодействию между дизайнером и верстальщиком. Вы получаете страницу с независимыми блоками, а подключив регрессивные тесты - можно быстро отлавливать ошибки верстки. Ваш сайт(или приложение) теперь гораздо легче масштабируется, а наработки из одного проекта легко переносятся в другие.