В этом руководстве по стилю рекомендуются лучшие практики для SCSS, чтобы сделать стили удобными для чтения, обслуживания и повышения производительности для конечного пользователя.
Структура (для малых и средних проектов)
scss
components - все части UI
_base.scss - свой сброс стилей
_functions.scss - функции
_includes.scss - все подключения (шрифты, либы и т.п.)
_mixins.scss - все миксины
_vars.scss - все переменные
app.scss - подключаем всё, файл для компиляции
Селекторы
В качестве селекторов мы используем только БЭМ классы. Все классы (блоки и продолжения элементов) именуем только в стиле kebab-case.
// плохо#my-element{padding:0;}// всё ешё плохо.myElement{padding:0;}// хорошо.my-element{padding:0;}// тоже хорошо.navbar__item-link{padding:0;}
Теги мы используем только для глобального переопределения стилей.
Запрещено использовать в качестве селекторов идентификаторы (id). Исключением являются случаи, когда мы, например, кастомизируем какой-либо плагин, у которого нет классов, а есть только #megatimerCounter-478457, например так [id*="#megatimerCounter"] {}.
Селекторы с js-префикcом
Не используйте селектор с префиксом js-в целях стилизации. Эти селекторы предназначены для использования только с JavaScript, чтобы их можно было удалять или переименовывать без нарушения стиля.
Переменные
Прежде чем добавлять новую переменную для цвета или размера, убедитесь, что:
Нет существующего
Нет аналогичного, который мы могли бы использовать вместо него