Definicja #
SASS (Syntactically Awesome Style Sheets) to preprocesor języka CSS stworzony przez Hampton Catlin (2006). Kompiluje się do zwykłego CSS, dodając funkcje programistyczne nieobecne w natywnym CSS. Jest jednym z najpopularniejszych narzędzi front-endowych, wbudowanym m.in. w Angular CLI i Create React App.
SASS dostępny jest w dwóch składniach:
- .scss (Sassy CSS) — składnia zbliżona do CSS; każdy poprawny CSS jest poprawnym SCSS. Najczęściej stosowana.
- .sass — oryginalna składnia oparta na wcięciach (bez nawiasów klamrowych i średników); zwięźlejsza, rzadziej używana
Kluczowe funkcje SASS:
- Zmienne —
$primary-color: #333;— przechowywanie wartości kolorów, fontów, rozmiarów - Zagnieżdżanie — selektory CSS zagnieżdżone według hierarchii HTML; selektor
&dla pseudoklas - Mixiny —
@mixinwielokrotnie używane fragmenty CSS z parametrami;@includedo wstawiania - Dziedziczenie —
@extenddo współdzielenia zestawów właściwości między selektorami - Funkcje i operatory — wbudowane funkcje dla kolorów (
darken(),lighten()), matematyka, stringi - Partiale i @import / @use — podział stylów na pliki cząstkowe (
_variables.scss); nowoczesny@usei@forwardzastępują przestarzały@import - @each, @for, @while — pętle do generowania klas (np. utility classes)
Nowoczesne CSS (Custom Properties, calc(), nesting) przejmuje część funkcji SASS, ale SASS nadal jest szeroko stosowany w dużych projektach.
Zastosowania #
SASS stosuje się do:
- Organizacji stylów w dużych projektach front-endowych — podział na partiale, moduły, unikanie duplikacji kodu CSS
- Tworzenia design systemów i bibliotek komponentów — zmienne i mixiny zapewniają spójność kolorów, typografii, spacingów
- Projektów Angular — Angular CLI obsługuje SCSS natywnie; komponenty Angular używają plików
.scss - Generowania utility classes — pętle
@each/@fordo tworzenia klas marginesów, kolorów, rozmiarów - Theming aplikacji — zmienne SASS dla trybu jasnego/ciemnego, brandingu klienta
Ścieżka nauki #
SASS/SCSS jest standardem front-endowym — wbudowany w Angular CLI i większość bundlerów.
Zacznij od:
- Instalacja:
npm install -g sasslub przez bundler projektu (Angular CLI, Vite, webpack) - Zmienne SCSS:
$color-primary,$spacing-base,$font-size-lg - Zagnieżdżanie selektorów i operator
&dla pseudoklas (&:hover,&.active) - Partiale: podział stylów na pliki
_variables.scss,_mixins.scss,_components.scss - Podstawy
@mixini@include— parametryzowane fragmenty CSS
Następnie pogłębiaj:
- Nowoczesny system modułów SASS:
@usei@forwardzamiast@import - Funkcje kolorów i matematyczne:
darken(),lighten(),color.adjust() - Mapy SASS (
$map: (key: value)) do przechowywania zestawów wartości (np. palety kolorów) - Porównaj z CSS Custom Properties (
--variable) — kiedy SASS, kiedy natywne zmienne CSS - Alternatywy: Less, Stylus, PostCSS
FAQ #
- Czym różni się SCSS od SASS?
- SASS i SCSS to dwie składnie tego samego preprocesora. SCSS (.scss) używa nawiasów klamrowych i średników jak CSS — każdy poprawny CSS jest poprawnym SCSS. SASS (.sass) używa wcięć zamiast nawiasów. SCSS jest zdecydowanie popularniejsza i to ją mają na myśli deweloperzy mówiąc 'SASS'.
- Czy SASS jest nadal potrzebny skoro CSS ma zmienne?
- CSS Custom Properties (--variable) rozwiązują część problemów SASS, ale SASS nadal oferuje unikalne funkcje: mixiny z parametrami, pętle @each/@for, funkcje kolorów, system modułów @use/@forward i lepszą organizację kodu przez partiale. W dużych projektach SASS pozostaje wartościowym narzędziem.
- Jak używać SASS w Angularze?
- Angular CLI obsługuje SCSS natywnie. Przy tworzeniu projektu wybierz SCSS jako styl (--style=scss) lub skonfiguruj w angular.json. Nowe komponenty generowane przez CLI tworzą pliki .component.scss. Globalne style aplikacji umieszczasz w src/styles.scss.
- Ile zarabia Frontend Developer znający SASS?
- SCSS/SASS to standardowa umiejętność front-endowa — oczekiwana w większości projektów Angular i React. Frontend Developer zarabia w Polsce od 8 000 do 18 000 zł brutto (mid), senior od 18 000 do 28 000 zł. SASS sam w sobie nie jest wyróżnikiem, ale jego brak jest mankamentem.