Назад

Особливості SASS

html code

Джерело фото: https://goo.su/R6Xan

SASS — це метамова на основі CSS, призначена для збільшення рівня абстракції CSS коду та спрощення файлів каскадних таблиць стилю.

SASS надає більше можливостей і свободи при написанні CSS для створення сайтів. Це як програмна мова всередині CSS. Ви можете використовувати щось подібне до функцій зі змінними, логічно структурувати ваш код (структурованість стилів і класів).

SASS має два синтаксиса. Новий основний синтаксис відомий як "SCSS" (SassyCSS), розширений синтаксис CSS3. Це означає, що кожен чинний стиль CSS3 валідний в SCSS також. SCSS файли мають розширення ".scss"

Другий, більш старий синтаксис відомий як SASS. Натхненний стислістю HAML, він призначений для тих, хто віддає перевагу лаконічності CSS. Замість фігурних дужок і крапок з комою, використовуються відступи. SASS синтаксис вже не є основним на даний момент, але він надалі буде підтримуватися. Файли з SASS синтаксисом використовують розширення ".sass".

SASS vs SCSS

//SASS
.content
    border: 1px solid red
    color: black

.border
    padding: 10px
    margin: 10px

//SCSS
.content {
    border: 1px solid red;
    color: black;
}

.border {
    padding: 10px;
    margin: 10px; }

Особисто я рекомендую використовувати SCSS синтаксис, бо він більш читабельний і зрозумілий. Як видно, синтаксис SCSS нічим не відрізняється від синтаксису CSS. Але при цьому він має масу корисних можливостей, які можуть полегшити життя верстальщика.

Можливості SASS

  • 🡲 Variables (Змінні)
  • 🡲 Nesting (Вкладеність)
  • 🡲 Mixins (Міксини)
  • 🡲 Selector Inheritance (Наслідування правил селекторів)

Variables (Змінні)

Скрізь використовуєте один колір? Вам необхідно зробити деякі розрахунки висоти, ширини або розміру тексту? SASS підтримує змінні, а також основні математичні операції і безліч корисних функцій.

$color = #000;
$spacing = 10px;
.content {
    border: 1px solid red;
    color: $color;
}

.border {
    padding: $spacing;
    margin: $spacing;
}

Nesting (Вкладеність)

SASS може уникнути повторення селекторів шляхом вкладення їх один в одного. Так само працює з властивостями.

.content {
    margin: 2em 0;
p {
    text-align: right;
    font-size: 14px;
    }
}

body{
    color: $color
    font: {
        family: serif;
        weight: bold;
        size: 1.2em;
    }
}

Mixins(Міксини)

Міксини дозволяють повторно використовувати цілі шматки CSS, їх селектори і властивості, ще більш корисно, аніж змінні. Ви навіть можете задати аргументи. Грубо кажучи, міксини - це CSS "функції".

@mixin table {
    th {
        text-align: center;
        font-weight: bold;
    }
        td, th {padding: 2px}
}

@mixin left($dist) {
    float: left;
    margin-left: $dist;
}

#data {
    @include left(10px);
    @include table;
}

Selector Inheritance (Наслідування правил селекторів)

Sass може успадковувати стилі примінені до певного селектору без дублювання CSS властивостей.

.error {
    border: 1px #f00;
    background: #fdd;
}

.warning {
    font-size: 1.3em;
    font-weight: bold;
}

.badError {
    @extend .error;
    border-width: 3px;
}

Компіляція SASS в CSS

Якщо у вас є файли (SCSS або SASS), в яких ви пишете на Sass. Браузери не розуміють такий синтаксис. Браузери розуміють тільки CSS, отже, нам потрібно передати наші стилі в форматі CSS. Для цього наші sass/scss потрібно скомпілювати. Найпростіший спосіб це розширення вашого редактора яке вміє компілювати код.

Бажаємо успіхів!