У світі веб-розробки, CSS є найпоширенішим інструментом для стилізації веб-сторінок. Проте, CSS може бути складним у використанні, особливо коли мова йде про налагодження.
Ознайомлення з Stylus CSS відкриває альтернативний підхід, пропонуючи один з популярних CSS препроцесорів.
Що таке препроцесор CSS?
Препроцесори CSS – це інструменти, які спрощують процес написання CSS. Зазвичай, вони компілюють код із власного унікального синтаксису в формат .css, який розуміють браузери.
Препроцесори CSS, такі як Sass, надають спеціальні можливості, зокрема цикли, міксини, вкладені селектори та умовні оператори if/else. Ці функції полегшують підтримку CSS коду, особливо у великих командах розробників.
Для застосування препроцесора CSS необхідно встановити компілятор у вашому локальному середовищі або на робочому сервері. Деякі інструменти для збірки інтерфейсу, наприклад Vite, дають можливість інтегрувати CSS препроцесори, такі як LessCSS, у ваші проєкти.
Як працює Stylus CSS
Щоб встановити Stylus у вашому локальному середовищі, переконайтеся, що Node.js та Node Package Manager (NPM) або Yarn вже інстальовані. Виконайте наступну команду в терміналі:
npm install stylus
або:
yarn add stylus
Кожен CSS файл Stylus має розширення .styl. Після написання коду Stylus, його можна скомпілювати за допомогою команди:
stylus .
Ця команда скомпілює всі .styl файли і створить відповідні .css файли в поточній директорії. Компілятор Stylus також дозволяє перетворювати .css файли в .styl, використовуючи опцію –css. Для конвертації файлу .css у формат .styl, застосуйте наступну команду:
stylus --css style.css style.styl
Синтаксис і батьківські селектори в Stylus CSS
У стандартному CSS визначення стильового блоку відбувається за допомогою фігурних дужок. Їх відсутність призведе до неправильної роботи стилів. В Stylus CSS використання фігурних дужок є необов’язковим.
Stylus підтримує синтаксис, схожий на Python, що означає, що блоки коду можна визначати за допомогою відступів, наприклад:
.container margin: 10px
Цей фрагмент коду буде скомпільовано у наступний CSS:
.container { margin: 10px; }
Як і в інших CSS препроцесорах, таких як Less, можна звертатися до батьківського селектора, використовуючи символ &:
button color: white; &:hover color: yellow;
Що при компіляції дасть:
button { color: #fff; } button:hover { color: #ff0; }
Як використовувати змінні в Stylus CSS
У CSS препроцесорах, таких як Less CSS, змінні позначаються символом @, в той час як у стандартному CSS для цього використовується “–”.
Stylus пропонує інший підхід: для визначення змінної не потрібен спеціальний символ. Замість цього, просто призначте змінну, використовуючи знак рівності (=), щоб надати їй значення:
bg-color = black
Тепер, цю змінну можна використовувати у файлі .styl:
div background-color: bg-color
Наведені блоки коду будуть скомпільовані у наступний CSS:
div { background-color: #000; }
Можна визначити пусту змінну, використовуючи круглі дужки, наприклад:
empty-variable = ()
Посилання на інші значення властивостей здійснюється за допомогою символу @. Наприклад, якщо висота елемента div повинна бути половиною його ширини, можна використати наступний код:
element-width = 563px div width: element-width height : (element-width / 2)
Це працює, але можна не створювати окрему змінну, а звернутися до значення властивості width:
div width: 563px height: (@width / 2)
В даному прикладі символ @ дозволяє отримати значення фактичної ширини елемента div. Незалежно від обраного методу, в результаті компіляції .styl файлу має вийти наступний CSS:
div { width: 563px; height: 281.5px; }
Функції в Stylus CSS
В Stylus CSS можна створювати функції, що повертають значення. Наприклад, потрібно встановити властивість вирівнювання тексту div на “center”, якщо його ширина більша за 400 пікселів, або “left”, якщо менша. Для обробки цієї логіки можна створити відповідну функцію.
alignCenter(n) if (n > 400) 'center' else if (n < 200) 'left' div { width: 563px text-align: alignCenter(@width) height: (@width / 2) }
Цей код викликає функцію alignCenter, передаючи значення властивості width, посилаючись на нього за допомогою символу @. Функція alignCenter перевіряє, чи параметр n більший за 400, і повертає “center”, якщо так. Якщо n менше 200, функція повертає “left”.
Після запуску компілятора, має бути виведений наступний CSS:
div { width: 563px; text-align: 'center'; height: 281.5px; }
У більшості мов програмування, порядок передачі параметрів функції є важливим. Це може призвести до помилок, особливо якщо потрібно передати багато параметрів.
Stylus пропонує рішення: іменовані параметри. Замість послідовної передачі параметрів, можна використовувати їхні імена, наприклад:
subtract(b:30px, a:10px)
Коли використовувати препроцесор CSS
Препроцесори CSS є потужними інструментами для оптимізації робочого процесу. Правильний вибір інструменту для проєкту може підвищити продуктивність. Якщо проєкт потребує лише невеликої кількості CSS, використання препроцесора може бути надмірним.
Якщо ви розробляєте великий проєкт, можливо, у складі команди, який потребує значної кількості CSS, розгляньте можливість використання препроцесора. Вони надають можливості, такі як функції, цикли та міксини, які спрощують роботу над складними проєктами.