Używanie Sass
O Sass
Sass jest akronimem dla "Syntactically Awesome Style Sheets". Jest to język, który możesz użyć do budowy swoich plików CSS. Pozostając kompatybilny z CSS3, Przynosi wiele funkcji, które ułatwiają tworzenie spójnych reguł CSS, z mniejszą ilością potrzebnej pracy,przede wszystkim mniej kopiowania - wklejania, zagnieżdżanie jednej rzecz w drugą, zmiennych, klas, dyrektyw kontrolnych, (jeśli, dla, dla każdego, podczas), etc. Żeby to osiągnąć, Sass wymaga użycia preprocesorów:Zmienia twoje pliki Sass na pliki CSS, tak że wszystkie przeglądarki potrafią je czytać.
Sass ma dwie składnie które można użyć:
SCSS składnia, albo "Sassy CSS":
Nowsz składnia, i PrestaShop używa.
Pliki używają rozszerzenia
.scss
.Można użyć średniko i nawiasów.
Rozszerzenie o CSS3.
SASS składnia, albo "wcięte składnie":
Starsza składnia, jest rzadziej używana.
Pliki używają rozszerzenia
.sass
.Opiera się na zakładce, wcięć podobnie jak Python..
Bez średników, bez nawiasów
Właściwości muszą się zaczynać od nowej lini
Mozesz zobaczyć różnice pomiędzy dwoma składniami tutaj:SCSS syntax
SASS syntax
Instalacja
Sass (i Compass na pierwszym miejscu, zobacz poniżej) wymaga instalacji języka Ruby na twoim urządzeniu.
Oto niektózy instalatorzy:
Windows: Pobierz http://rubyinstaller.org/ i uruchom.
Mac OS X: zainstaluj Homebrew (http://brew.sh/), następnie wpisz "
brew install ruby
".Linux systems: w wierszu polecenia wpisz "
sudo apt-get install ruby1.9.1
".
Jeśli Ruby jest zainstalowany na twoim urządzeniu, zainstaluj Comapass – co z kolei instaluje Sass. Przejdź do wiersza polecenia Ruby i wpisz "gem install compass
".
Rozpoczęcie projektowania projektu
Jesteś teraz gotowy do stworzenia swojego pierwszego projektu:
Przejdź do
/themes
na swoim lokalnym folderze instalacji PrestaShop.Otwórz w Ruby okno wiersza polecenia dla folderu i wpisz w "
compass create
". Compass automatycznie wykryje lub utworzy plik konfiguracyjnyconfig.rb
który jest niezbędny do konfiguracji pliku i skompilacji dla twojego projektu.
Aby mieć pewność, że plik .scss
będzie automatycznie skompilowany, możesz wpisać komendę w Ruby: "compass watch
".
Nie jesteś fanem wiersza poleceń?
Jeśli nie chcesz spędzić swojego czasu nad wierszem poleceń, Scout to aplikacja wielkoplatformowa dla Ciebie:To jest samowystarczalne środowisko Ruby, który daje łatwy dostęp do Compass i Sass.
Pobierz to tutaj: http://mhs.github.io/scout-app/
Po zainstalowaniu go należy:
Stwórz projekt w katologu głównym w folderze Twojego motywu..
Wskaż folder w plikach
.scss
(folder wejściowy).Wskaż folder dla plików CSS (folder wyjściowy).
Ścieżka Sass
Komentarze
Istnieją dwa sposoby,aby dodać komentarz do pliku Sass.
Pierwszy z nich pozwala na dodawanie komentarzy bez konieczności ich zastosowania w końcowym pliku CSS.
Drugi używa zwykłej składni CSS i umożliwia dodawanie komentarzy, które zostaną wykorzystane w ostatecznym pliku CSS:
Zagnieżdżanie
Powala Tobie na blokach gniazda, określenie zasad, które mają zastosowanie tylko w obrębie tego selektora:
Rezultat:
Selektor nadrzędny
Sass pozwala odwoływać się do selektora nadrzędnego w zagnieżdźonym bloku korzystając z &:
Rezultat:
Właściwości przestrzeni nazw.
CSS może użyć przestrzeni nazw podobnie jak czcionka family, rozmiar czcionki etc.
Można użyć do wskazania właściwości zagnieżdżania w ramach danej "nazwy":
Rezultat:
Formaty wyjściowe CSS
Sass pozwala na 4 róźne rodzaje generowania CSS.
Format zagnieźdźenia:
Rozszerzony format:
Kompaktowy format:
Format sprężony:
SassScript
Sass może skorzystać z języka skryptowego o nazwie SassScript. To sprawia, że możliwe jest użycie zmiennych obliczeń i dodatkowe funkcje. Może być stosowany do dowolnej wartości nieruchomości.
Zmienne
Zmienne muszą być określane przez prefiks $
:
You can change the value of a variable, or have it changed only if the variable does not exist yet or is empty by using !default
.
For instance:
Result:
SassScript supports 6 types of variables:
numbers (e.g.
1.2
,13
,10px
)strings of text, with and without quotes (e.g.
"foo"
,'bar'
,baz
)colors (e.g.
blue
,#04a3f9
,rgba(255, 0, 0, 0.5)
)booleans (e.g.
true
,false
)nulls (e.g.
null
)lists of values, separated by spaces or commas (e.g.
1.5em 1em 0 2em
,Helvetica, Arial, sans-serif
)maps from one value to another (e.g.
(key1: value1, key2: value2)
)
When using a string value, you can use #{}
to unquote quoted strings, making it easier to use in some cases, for instance as a mixin selector:
Result:
You can also use the quote()
and unquote()
functions:
Result:
Operators
Your SCSS files can directly use calculations and comparators:
+, -, *, /, % and the <, >, <=, => number comparators.
+
to concatenate two strings.and
,or,
andnot
for boolean variables.==
and!=
for all variable types.
Sass can use the / operator to separate two numerical values, but Sass can use it to divide numbers. For instance:
...is compiled into:
As usual, use parenthesis to handle priorities:
Result:
You can also use several numerical functions:
percentage($value)
- Converts a unitless number to a percentage.round($value)
- Rounds a number to the nearest whole number.ceil($value)
- Rounds a number up to the next whole number.floor($value)
- Rounds a number down to the previous whole number.abs($value)
- Returns the absolute value of a number.min($numbers...)
- Finds the minimum of several numbers.max($numbers...)
- Finds the maximum of several numbers.
Lists
Sass uses lists for values such as margin: 10px 15px 0 0
or font-face: Helvetica, Arial, sans-serif
.
Lists are a series of values, separated with space or commas.
A list can contain one or more lists. For instance, "1px, 2px, 5px 6px
" is made of three elements:
1px
2ps
5px 6px
The third element is itself a list of elements.
You have access to several list functions:
length($list)
- Returns the length of a list.nth($list, $n)
- Returns a specific item in a list.join($list1, $list2, [$separator])
- Joins together two lists into one.append($list1, $val, [$separator])
- Appends a single value onto the end of a list.zip($lists...)
- Combines several lists into a single multidimensional list.index($list, $value)
- Returns the position of a value within a list.
The @ directives
Sass supports all of CSS3's @ rules, and adds a few more features such as:
Control directives for the CSS compilation.
Use of mixins.
@import
You can create files that contain the Sass instructions that you can include in other files. These "imported" files must have an underscore ("_") at the beginning of their names so as to not be directly compiled into CSS.
For instance:_partial.scss
Importing _partial.scss
into global.scss
:
@import automatically searches files with a .scss or .sass extension.
You can import several files with a single call: @import "rounded-corners", "text-shadow".
You can import a file from a nested block:
@mixin
Mixins make it possible to group CSS properties that you can reuse as many times as necessary. They can even include other mixins.
SCSS example:
Mixins are then used with the @include directive:
Mixins can have paremeters:
Used in:
You can directly pass a style block to a mixin in order to place in the defined style, using @content.
SCSS example:
CSS result:
Note that variables are evaluated within the block where they are defined:
SCSS example:
CSS result:
@media
Sass allows the nesting of definition blocks from a @media directive.
@media directives can be nested, and they can use SassScript.
For instance, in SCSS:
CSS compilation result:
@extend
Inheritance makes it possible to import styles from one CSS selector to another.
SCSS examples:
CSS compilation result:
You can also chain inheritance:
SCSS example:
CSS compilation result:
To create a class that would only be available through inheritance, you can use % instead of @. %-using classes are not present in the generated CSS file.
SCSS example:
CSS compilation result:
By default, you cannot use @extend with a non-existing selector: it gives a compilation error. To use a selector that may not yet exist in certain conditions, you should use the !optional flag:
Likewise, you cannot use @extend in all situations, for instance when using CSS directives such as @media. You must declare your selectors ans use them within a single directive.
Example in SCSS:
Non-valid example in SCSS:
@warn and @debug
Two directives can help you debug your Sass files:
@debug displays the result of a SassScript expression.
@warn displays information messages during the CSS file compilation.
SCSS Example:
Displays:
Other SCSS example:
Control instructions: @if,@for, @each,@while
These instructions are mainly used in mixins of Sass libraries such as Compass.
SCSS example:
CSS compilation result:
@function
You can create your own functions and use it within your files. Just make sure that its name does not conflict with the evolution of Sass and Compass.
SCSS example:
CSS result:
Last updated