logo Czechitas HTML a CSS 2

Úvod do SASSu

SASS je obohacené CSS. Jedná se o takzvaný preprocesor. Kód napsaný v SASSu je potřeba nejdříve převést do CSS, aby kódu rozuměly i prohlížeče. Oficiální dokumentace je sass-lang.com.

Ukázka

Velkou výhodou jazyka SASS je podpora zanořování. Ušetří opakování kódu. To, co bychom v CSS napsali třeba takto:

styly.css

.tlacitko {
color: blue;
}
.tlacitko--vystrazne {
color: red;
}

by v SASSu bylo takto:

styly.scss

.tlacitko {
color: blue;

&--vystrazne {
color: red;
}
}

Všimni si, že jsme ušetřili jeden výskyt slova tlacitko, a zároveň se vše ohledně tlačítka zabalilo do jednoho bloku. Kód je tak přehlednější a do budoucna udržitelnější. Například přejmenovat tlacitko na anglické button je teď změna jen jednoho řádku.

Převod na CSS

Protože prohlížeče SASSu nerozumí, je potřeba náš kód sestavit, převést. K tomu nám pomůže balíček sass, který do projektu doinstalujeme spuštěním příkazu npm install sass. (Pro rychlé experimenty se také může hodit online nástroj sassmeister.com.)

Protože příkaz budeme pouštět často, bude se nám hodit v package.json zkratka:

	"scripts": {
"build": "sass styly.scss styly.css"
},

Zkratku pustím přes npm run build. Odstartuje se převod, který vezme soubor styly.scss a výsledek uloží do styly.css. V HTML se pak odkazujeme na výsledný soubor přes klasické <link rel="stylesheet" href="styly.css">.

Přípony .scss a .sass

SASS podporuje dva formáty, které rozlišuje podle přípony souboru. Oba jsou si velmi podobné, v souborech končících na .sass ale nepíšeme složené závorky a středníky. Druhý formát je úspornější, ale méně se podobá CSS a pro ně někoho je tak méně čitelný.

styly.scss

.tlacitko {
color: blue;

&--vystrazne {
color: red;
}
}

styly.sass

.tlacitko
color: blue

&--vystrazne
color: red

Proměnné a funkce

Pojmenováváme je se znakem dolaru na začátku. Můžeme do nich uložit například barvu, velikost nebo jiné hodnoty.

$hlavni-barva: magenta;

.tlacitko {
color: $hlavni-barva;
}

Hlavní výhoda proměnných je podobná jako u custom properties. Často opakované hodnoty můžeme zadefinovat na jednom místě.

V případě barev můžeme zapojit zabudované funkce SASSu pro manipulaci barev. Pokud bychom chtěli třeba pro červenou barvu zjistit její doplňkovou, napíšeme color: adjust-hue(red, 180deg). CSS výsledek by byl v tomto případě color: aqua.

Úkol na teď

Postupuj podle zadání na github.com/…/Cviceni-SASS-prevody.