Sass - wbudowane moduły i ich metody
Opublikowano ndz 31 maja 2020 w saas • 4 min read
Sass oferuje następujące wbudowane moduły color, list, map, math, meta, selector, string
Używanie modułu odbywa się poprzez jego zaimportowanie na początku poprzez odowłanie się do słowa kluczowego @use
nazwy modułu oraz użycia gwiazdki lub bez użycia gwiazdki - wówczas każda metoda musi być poprzedzona nazwą modułu
@use 'sass:math';
$half: math.percentage(1/2);
@use 'sass:math' as *;
$half: percentage(1/2);
Obecnie jedynie Dart Sass wspiera nazewnictwo bez odwołania się do modułów w sposób globalny
Indeks w SAAS zaczyna się od 1 !! a nie 0
Color
https://sass-lang.com/documentation/modules/color
Wybrane
metoda | funkcja |
---|---|
adjust($color, $red: null, $green: null, $blue: null, $hue: null, $saturation: null, $lightness: null, $alpha: null)/adjust-color(...) | zmniejsza lub zwiększa jedną lub więcej właściwości koloru |
change($color, $red: null, $green: null, $blue: null, $hue: null, $saturation: null, $lightness: null, $alpha: null)/change-color(...) | zmienia jedną lub więcej właściwości koloru |
alpha($color)/opacity($color) | pozwala na zmianę kanału alpha (0-1) |
color.blue($color)/color.red($color)/color.green($color) | zwraca niebieskie/czerwony/zielony kanał |
darken($color, $amount) | przyciemnia kolor, przyjmuje kolor i wartość przyciemnienia (0-100%) |
scale($color,$red: null, $green: null, $blue: null, $saturation: null, $lightness: null, $alpha: null)/scale() | skalowanie koloru wobec poprzedniej jego wartości wykorzystując jedną lub więcej jego właściwości |
desaturate($color, $amount) | pozwala zmienić nasycenie koloru |
grayscale($color) | zwraca szary kolor przyjmujący balans bieli od koloru wprowadzonego |
hue($color) | zwraca odcień koloru w skali 0-360 stopni |
invert($color, $weight: 100%) | zwraca inwersję kolorystyczną podanej barwy |
lighten($color, $amount) | rozjaśnia |
saturate($color, $amount) | zmienia nasilenie barwy koloru |
transparentize($color, $amount) | wpływa na przezroczystość koloru |
A visual guide to Sass & Compass Color Functions
List
Wybrane
metoda | funkcja |
---|---|
append($list, $val, $separator: auto)/quote() | zwraca kopię listy z dodanym elementem |
index($list, $value) | zwraca indeks wybranej wartości w liście/null jeśli nie istnieje |
is-bracketed($list) | zwraca wartość logiczną - czy jest w kwadratowych nawiasach |
join($list1, $list2, $separator: auto, $bracketed: auto) | łączenie list |
append($list, $val, $separator: auto) | dołączenie wartości do listy |
length($list) | zwraca długość listy |
separator($list) | zwraca nazwę separatora |
nth($list, $n)/nth($list, $n) | zwraca element listy na n-tym miejscu indeksu |
set-nth($list, $n, $value) | zwraca kopię listy z podmienionym elementem |
@debug append((blue, red), green); // blue, red, green
@debug append(10px 20px, 30px 40px); // 10px 20px (30px 40px)
@debug index((map-values($font-sizes)), 50px) //
Map
Wybrane
metoda | funkcja |
---|---|
get($map, $key) | zwraca element mapy wg. podanego klucza |
has-key($map, $key) | sprawdza czy mapa posiada podany klucz |
keys($map) | zwraca klucze mapy w postaci listy |
merge($map1, $map2) | łączy mapy |
remove($map, $keys...) | zwraca kopię mapy bez wartości połączonych z podanymi kluczami |
values($map) | zwraca listę wszystkich wartości mapy |
Math
metoda | funkcja |
---|---|
$pi | zwraca wartość PI |
round($number) | zwraca zaokrągloną liczbę |
ceil($number) | zwraca zaokrągloną liczbę w górę do najbliższej pełnej |
clamp($min, $number, $max) | ograniczę liczbę do podanego zakresu min-max |
floor($number) | zwraca zaokrągloną liczbę w dół do najbliższej pełnej |
clamp($min, $number, $max) | zwraca string w cudzysłowie |
max($number...) | zwraca najwyższą z podanych wartości |
min($number...) | zwraca najniższą z podanych wartości |
max($number...) | zwraca najwyższą z podanych liczb |
sqrt($number) | zwraca pierwiastek kwadratowy |
abs($number) | zwraca wartość absolutną podanej liczby |
percentage($number) | konwertuje liczbę w procent |
random($limit: null) | zwraca liczbę przypadkową pomiędzy 0 a 1, jeśli limit powyżej 1 to wówczas jest od 1 do limitowej liczby |
@debug math.abs(-10px); // 10px
Meta
metoda | funkcja |
---|---|
load-css($url, $with: null) | --- Mixins |
call($function, $args...) | --- Functions |
content-exists() | --- Functions |
feature-exists($feature)/feature-exists($feature) | --- Functions |
get-function($name, $css: false, $module: null)/get-function($name, $css: false, $module: null) | --- Functions |
global-variable-exists($name, $module: null) | --- Functions |
inspect($value) | zwraca podaną wartość jako string |
keywords($args) | zwraca słowa kluczowe podane w mixie lub funkcje, które przyjmują słowa kluczowe |
mixin-exists($name, $module: null) | sprawdza czy mixin o podanej nazwie istnieje |
module-functions($module) | --- Functions |
module-variables($module) | zwraca zmienne zadeklarowane w module |
type-of($value) | zwraca typo podanej zmiennej/wartości |
variable-exists($name) | sprawdza czy podana zmienna znajduje się w obecnym za |
--- |
Selector
https://sass-lang.com/documentation/modules/selector
metoda | funkcja |
---|---|
is-superselector($super, $sub) | sprawdza czy selektor $super pokrywa się z selektorem $sub |
append($selectors...) | łączy selektory |
extend($selector, $extendee, $extender)/ | rozszerza selektor o podaną regułę |
nest($selectors...) | łączy selektory w taki sposób jak by były zagnieżdżone |
parse($selector) | rozdziela selektory w formacie selektora wartości |
replace($selector, $original, $replacement) | podmienia selektor / przyjmuje org. selektor, element do podmiany oraz ten, który go zastąpi |
unify($selector1, $selector2) | łączy selektory - zwraca selektor będący połączeniem wprowadzonych selektorów |
simple-selectors($selector) | zwraca listę selektorów zawartych w selektorze |
unquote(".main") | pozbywa wprowadzony string cudzysłów |
@debug (unquote(".main") unquote("aside:hover"))// .main aside:hover|
@debug is-superselector("a", "a.disabled"); // true
@debug append("a", ".disabled"); // a.disabled
@debug extend("a.disabled", "a", ".link"); // a.disabled, .link.disabled
#{$extender} {
@extend #{$extendee};
}
@debug parse(".main aside:hover, .sidebar p");
// ((unquote(".main") unquote("aside:hover")),
// (unquote(".sidebar") unquote(
@debug replace("a.disabled", "a", ".link"); // .link.disabled
@debug simple-selectors("a.disabled"); // a, .disabled
String
https://sass-lang.com/documentation/modules/string
metoda | funkcja |
---|---|
quote($string) | zwraca string w cudzysłowie |
index($string, $substring) | Zwraca pierwszy indeks fragmentu stringu znajdującego się w stringu lub null |
insert($string, $insert, $index) | zwraca kopię zmodyfikowanego string - przyjmuje string do wstawienia i indeks (miejsce) |
length($string) | zwraca liczbę reprezentującą długość łańcucha znaków |
index("") | zwraca indeks podanego ciągu znaków lub 0 |
slice($string, $start-at, $end-at: -1) | zwraca fragment stringu zależnego od podanych parametrów (początkowej i końcowej wartości/indeks/łącznie) |
to-upper-case($string) | wszystkie litery zmienia na wielkie |
to-lower-case($string) | zmienia litery na małe |
unique-id() | zwraca randomowo generowany ciąg znaków i unikatowy w ramach obecnej kompilacji Sass |
unquote($string) | zwraca ciąg znaków niezamknięty w cudzysłów |
Przykłady zastosowania:
@debug insert("Roboto", " Bold", 100); // "Roboto Bold" - wstawia na końcu
@debug insert("Bold", "Roboto ", -100); // "Roboto Bold" - wstawia na sam początek
Źródła:
https://sass-lang.com/
https://sass-lang.com/documentation
https://css-tricks.com/introducing-sass-modules/