Нанобиблиотека SCSS
Цель: изучение основ использования препроцессора, синтаксиса и возможностей SCSS; приобретение навыков применения SCSS и его возможностей, компиляции кода в CSS.
Содержание и порядок выполнения лабораторной работы:
-
Изучить теорию:
- Объявление переменных и их использование;
- Вложенные правила (в том числе комбинаторы + >, родительский селектор &);
- Миксины (@mixin и @include);
- Partials;
- Директивы:
- @use / @forward;
- @extend;
- Числовые операторы;
- Встроенные модули:
- color;
- map.
-
Принять задание по ссылке https://classroom.github.com/a/N4TkYD4c. Клонировать репозиторий и приступить к работе по заданию. Разработка по этой лабораторной работе должна вестись в отдельной ветке.
-
Создать проект “нанобиблиотеки” для стилизации html элементов используя scss.
-
Сформировать частичный файл для цветовой палитры. Цвета можно взять здесь - https://coolors.co/palettes/trending. Цвета организуйте в map, чтобы в других файлах их переиспользовать и напишите функцию, которая бы сразу по ключу возвращала значение из map. Также к цветах создайте примесь (mixin) gradient, который в качестве параметров принимает два цвета и создает линейный градиент. Этот миксин используйте для кнопок далее.
-
Сформировать частичный файл для типографики. Шрифты можете взять любые с https://fonts.google.com/. Возьмите один шрифт с засечками, второй - без. Для шрифтов создайте примесь (mixin)
font-face
, который в качестве параметров принимает$family, $weight, $style, $file-path
и упрощает работу с 3-м пунктом из https://gwfh.mranftl.com/fonts/roboto. -
Сформировать частичный файл для grid-разметки. Должен быть класс для контейнера на 12 колонок и 12 классов, которые позволяют указать сколько полос займет элемент с этим классом (
.col-1
-.col-12
) эти классы должны быть созданы через циклы. -
Сформировать частичный файл для группирующих элементов header, main, section, footer, nav чтобы для них скорректировать margin и padding.
-
Сформировать частичный файл для оставшихся элементов h1, h2, h3, h4, p, a, img, button, ol, ul, li. Заголовки и основной текст должны иметь разные шрифты (одни с засечками, тогда другие без или наоборот). Размеры заголовков должны быть пропорциональны (h1 самый крупный, остальные меньше по убывающей). Изображение имеет max-width: 100%. Ссылки и кнопки стилизованы во всех своих состояниях за счет изменения цвета с помощью модуля color и c использованием вложенности в scss.
-
Сформировать частичный файл для вспомогательных классов из прошлого семестра:
.visually-hidden
и.wrapper
. -
Добавить все частичные файлы в style.scss.
-
Скомпилировать один файл style.css и поместите его в корень репозитория.
-
Заполнить readme.md кратким описанием.
-
Создать демо страницу из стилизованных тегов и продемонстрируйте работы grig-сетки.
Примеры
- https://github.com/oxalorg/sakura
- https://github.com/yegor256/tacit
- https://github.com/igoradamenko/awsm.css
- https://github.com/oxalorg/sakura
Результаты выполнения лабораторной работы:
Результаты работы проверены наставником.
Статическая веб-страница на хостинге проверенная, со структурой и оформлением, которая соответствует требованиям и сохранена в системе контроля версий.
Источники
- https://sass-lang.com/
- https://sass-scss.ru/
- https://sass-guidelin.es/ru/
- Препроцессор Sass. Полное руководство и зачем он нужен
- Примеры структуры проекта eng
Вопросы для защиты
- Что такое SCSS и чем он отличается от обычного CSS?
- Каково назначение миксина в SCSS, как его определить и использовать?
- Что такое методология BEM и как она работает в SCSS?
- Что такое функция в SCSS, как ее определить и использовать?
- В чем разница между @extend и @include в SCSS, и когда вы будете использовать каждый из них?
- Как использовать циклы в SCSS, и какие примеры можно привести, когда их можно использовать?
- Как можно вложить стили в SCSS?
- Как объявить и использовать переменную в SCSS?
- Назовите встроенные модули в SCSS и примеры использования?
- Как можно протестировать код SCSS, чтобы убедиться, что он работает правильно?