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

h1 {color: #000; background: #fff}

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:

  1. Przejdź do /themes na swoim lokalnym folderze instalacji PrestaShop.

  2. Otwórz w Ruby okno wiersza polecenia dla folderu i wpisz w "compass create". Compass automatycznie wykryje lub utworzy plik konfiguracyjny config.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:

  1. Stwórz projekt w katologu głównym w folderze Twojego motywu..

  2. Wskaż folder w plikach.scss (folder wejściowy).

  3. 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

Was this helpful?