SCSS. Организация файлов
Павел Радкевич
Повестка дня
Препроцессоры CSS
Программы, которые позволяют генерировать CSS из кода, написанного в специальном синтаксисе.
Сокращают время на написание стилей, упрощают поддержку, позволяют применять специальные подходы.
Самые популярные препроцессоры — Sass, LESS, PostCSS, Stylus.
Важно: препроцессоры не расширяют возможности CSS, а только позволяют писать тот же код более удобным образом.
Что дают препроцессоры CSS
Установка Sass
Самый универсальный способ работать с Sass — использовать утилиту (компилятор) в командной строке.
Один из самых популярных методов установки этой утилиты — с помощью NodeJS / npm.
Порядок:
Node.js
Серверная реализация Javascript
Огромное количество инструментов
Основной — NPM (Node package manager)
NPM
Менеджер пакетов для node.js (де-факто — для любой разработки на Javascript).
Пакет — модульный компонент программного обеспечения, поставляемый отдельно с целью переиспользования.
Пакетные менеджеры используются для установки/обновления/удаления пакетов из удалённых репозиториев.
Sass — пакет npm
Команда установки:
npm install --global sass
Можно сократить:
npm i -g sass
--global — флаг глобальной установки (одна копия компилятора на всю систему)
Запуск Sass из командной строки
Разовый запуск:
sass input.scss output.css
Запуск с мониторингом (пересобирает CSS всякий раз, когда сохраняется SCSS):
sass --watch <folder-with-scss>:<folder-with-css>
sass и scss
Препроцессор Sass поддерживает два синтаксиса: sass и scss.
Оригинальный синтаксис sass основан на системе отступов.
Появившийся позже синтаксис scss выглядит практически как «чистый» css. Кроме того, он полностью совместим с css: любой код на css можно вставить в файл scss, и он будет работать.
В примерах используется синтаксис scss.
Синтаксис scss: вложенность
Sass позволяет вкладывать селекторы и сложные свойства:
Синтаксис scss: селектор родителя
Вместо имени родительского селектора можно использовать знак & (в том числе в качестве суффикса в названии класса).
Пример
Переменные
Любому значению CSS можно дать понятное читаемое имя, а потом использовать его во всём коде. Синтаксис:
$somevar: value;
Плейсхолдеры
Кусочки кода, которые без изменений используются много раз в разных селекторах.
Примеси (миксины)
Кусочки кода, которые используются много раз с небольшими изменениями. Могут принимать параметры.
Импорт
@use “filename.css“;
включает файл стилей filename.css в текущий файл
Компонентный подход
Как правило, интерфейс проектов делится на компоненты (кнопки, вкладки, статьи и т.д.), которые можно использовать много раз, вкладывать друг в друга, модифицировать. Практически любая методология CSS тоже использует этот подход (и сложные фреймворки тоже).
Исходный код удобно делить на несколько файлов (по имени компонента), а в случае сложных проектов — на папки, в каждой из которых лежит всё, что касается компонента.
Проекты с использованием sass позволяют легко организовать подобную файловую структуру и собирать все файлы scss в единственный css.
Структура каталогов и имена файлов
Пример структуры каталогов / файлов
Шаблон 7-1
Один из самых популярных подходов к структурированию больших проектов — шаблон 7-1: семь папок + один корневой файл.
Внеклассное чтение
Практика
https://github.com/AdukarIT/_Tasks_/blob/master/HTML-bases.md#%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-1-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81-%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%D0%B0-%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BE%D0%B2 - Сервис ремонта мобильных телефонов