SCSS
В этом руководстве по стилю рекомендуются лучшие практики для SCSS, чтобы сделать стили удобными для чтения, обслуживания и повышения производительности для конечного пользователя.
Структура (для малых и средних проектов)
scss
components - все части UI
_base.scss - свой сброс стилей
_functions.scss - функции
_includes.scss - все подключения (шрифты, либы и т.п.)
_mixins.scss - все миксины
_vars.scss - все переменные
app.scss - подключаем всё, файл для компиляции
Селекторы
В качестве селекторов мы используем только БЭМ классы. Все классы (блоки и продолжения элементов) именуем только в стиле kebab-case.
Теги мы используем только для глобального переопределения стилей.
Запрещено использовать в качестве селекторов идентификаторы (id). Исключением являются случаи, когда мы, например, кастомизируем какой-либо плагин, у которого нет классов, а есть только #megatimerCounter-478457
, например так [id*="#megatimerCounter"] {}
.
Селекторы с js-
префикcом
js-
префикcомНе используйте селектор с префиксом js-
в целях стилизации. Эти селекторы предназначены для использования только с JavaScript, чтобы их можно было удалять или переименовывать без нарушения стиля.
Переменные
Прежде чем добавлять новую переменную для цвета или размера, убедитесь, что:
Нет существующего
Нет аналогичного, который мы могли бы использовать вместо него
Использование extend
-правил
extend
-правилЕдиницы измерения
px
Пиксели используем для ширины и высоты элементов (преимущественно блоков), а также для отступов
rem
rem используем для размера шрифтов (кроме body {}
). Чтобы каждый раз не рассчитывать значение rem, используйте вспомогательную функцию rem(24px)
em
Мы не используем эту единицу измерения
%
Проценты используем для line-height
, а также для адаптации элементов (ширина и высота элементов)
vh, wv
Используются для адаптации элементов под все разрешения экранов, когда адаптация должна складываться исходя из ширины или высоты экрана браузера
Linting
Раздел в разработке...
Last updated