Le CSS en soi peut être amusant, mais les feuilles de style deviennent de plus en plus volumineuses, complexes et difficiles à maintenir. C'est là qu'un préprocesseur peut aider. SASS a des fonctionnalités n'existant pas encore dans CSS comme l'imbrication, les mixins, l'héritage et d'autres avantages astucieux qui vous aident à écrire un CSS robuste et maintenable.
Une fois que vous avez commencé à bricoler avec SASS, il prendra votre fichier SASS prétraité et l'enregistrera en tant que fichier CSS normal que vous pourrez utiliser sur votre site Web.
Le moyen le plus direct d'y parvenir est dans votre terminal. Une fois SASS installé, vous pouvez compiler votre SASS en CSS à l'aide de la commande SASS. Vous devrez indiquer à SASS à partir de quel fichier créer et où générer le CSS. Par exemple, exécuter SASS input.scss output.css à partir de votre terminal prendrait un seul fichier SASS, input.scss, et compilerait ce fichier en output.css.
Vous pouvez également surveiller des fichiers ou des répertoires individuels avec le drapeau --watch. Le drapeau de surveillance indique à SASS de surveiller vos fichiers source pour les modifications et de recompiler le CSS chaque fois que vous enregistrez votre SASS. Si vous vouliez surveiller (au lieu de créer manuellement) votre fichier input.scss, vous ajouteriez simplement le drapeau de surveillance à votre commande, comme suit :
sass --watch input.scss output.css |
Vous pouvez regarder et sortir dans des répertoires en utilisant des chemins de dossier comme entrée et sortie, et en les séparant par deux-points. Dans cet exemple :
sass --watch app/sass:public/stylesheets |
Sass surveillerait tous les fichiers du dossier app/sass pour les modifications et compilerait le CSS dans le dossier public/stylesheets.
- SASS a deux syntaxes : La syntaxe SCSS (.scss) est la plus utilisée. C'est un sur-ensemble de CSS, ce qui signifie que tous les CSS valides sont également des SCSS valides. La syntaxe indentée (.sass) est plus inhabituelle : elle utilise l'indentation plutôt que des accolades pour imbriquer les instructions, et des retours à la ligne plutôt que des points-virgules pour les séparer.
Variables
Considérez les variables comme un moyen d'entreposer des informations que vous souhaitez réutiliser dans votre feuille de style. Vous pouvez entreposer des éléments tels que des couleurs, des piles de polices de caractères ou toute valeur CSS que vous pensez vouloir réutiliser. SASS utilise le symbole $ pour faire de quelque chose une variable. Voici un exemple :
SCSS | SASS | CSS |
---|---|---|
|
|
|
Lorsque le SASS est traité, il prend les variables que nous définissons pour $font-stack et $primary-color et génère un CSS normal avec nos valeurs de variables placées dans le CSS. Cela peut être extrêmement puissant lorsque vous travaillez avec des couleurs de marque et en les gardant cohérentes sur tout le site.
Nidification
Lors de l'écriture de HTML, vous avez probablement remarqué qu'il a une hiérarchie imbriquée et visuelle claire. CSS, en revanche, ne le fait pas.
SASS vous permettra d'imbriquer vos sélecteurs CSS d'une manière suivant la même hiérarchie visuelle de votre HTML. Sachez que des règles trop imbriquées entraîneront un CSS surqualifié qui pourrait s'avérer difficile à maintenir et qui est généralement considéré comme une mauvaise pratique.
Dans cet esprit, voici un exemple de styles typiques pour la navigation d'un site :
SCSS | SASS | CSS |
---|---|---|
|
|
|
Vous remarquerez que les sélecteurs ul, li et a sont imbriqués dans le sélecteur nav. C'est un excellent moyen d'organiser votre CSS et de le rendre plus lisible.
Partiels
Vous pouvez créer des fichiers SASS partiels contenant de petits extraits de CSS que vous pouvez inclure dans d'autres fichiers SASS. C'est un excellent moyen de modulariser votre CSS et de faciliter la maintenance. Un partiel est un fichier SASS nommé avec un trait de soulignement au début. Vous pourriez le nommer quelque chose comme _partial.scss. Le trait de soulignement permet à SASS de savoir que le fichier n'est qu'un fichier partiel et qu'il ne doit pas être généré dans un fichier CSS. Les partiels SASS sont utilisés avec la règle @use.
Modules
Vous n'êtes pas obligé d'écrire tous vos SASS dans un seul fichier. Vous pouvez le diviser comme vous le souhaitez avec la règle @use. Cette règle charge un autre fichier SASS en tant que module, ce qui signifie que vous pouvez faire référence à ses variables, mixins et fonctions dans votre fichier SASS avec un espace de noms basé sur le nom du fichier. L'utilisation d'un fichier inclura également le CSS qu'il génère dans votre sortie compilée !
SCSS | SASS | CSS |
---|---|---|
|
|
|
Remarquez que nous utilisons @use 'base'; dans le fichier styles.scss. Lorsque vous utilisez un fichier, vous n'avez pas besoin d'inclure l'extension de fichier. Sass est intelligent et le découvrira pour vous.
Mixins
Certaines choses en CSS sont un peu fastidieuses à écrire, en particulier avec CSS3 et les nombreux préfixes de fournisseurs existant. Un mixin vous permet de créer des groupes de déclarations CSS que vous souhaitez réutiliser sur l'ensemble de votre site. Cela aide à garder votre SASS très propre. Vous pouvez même transmettre des valeurs pour rendre votre mixin plus flexible. Voici un exemple de thème.
SCSS | SASS | CSS |
---|---|---|
|
|
|
Pour créer un mixin, utilisez la directive @mixin et donnez-lui un nom. Nous avons nommé notre thème mixin. Nous utilisons également la variable $theme entre parenthèses afin de pouvoir passer un thème de ce que nous voulons. Après avoir créé votre mixin, vous pouvez l'utiliser comme déclaration CSS commençant par @include suivi du nom du mixin.
Extension/Héritage
L'utilisation de @extend vous permet de partager un ensemble de propriétés CSS d'un sélecteur à un autre. Dans notre exemple, nous allons créer une simple série de messages pour les erreurs, les avertissements et les réussites en utilisant une autre fonctionnalité allant de pair avec les classes d'espace réservé étendues. Une classe d'espace réservé est un type spécial de classe ne s'affichant que lorsqu'elle est étendue et peut aider à garder votre CSS compilé propre.
SCSS | SASS | CSS |
---|---|---|
|
|
|
Le code ci-dessus indique à .message, .success, .error et .warning de se comporter comme %message-shared. Cela signifie que partout où %message-shared apparaît, .message, .success, .error et .warning le seront aussi. La magie opère dans le CSS généré, où chacune de ces classes obtiendra les mêmes propriétés CSS que %message-shared. Cela vous évite d'avoir à écrire plusieurs noms de classe sur les éléments HTML.
Vous pouvez étendre la plupart des sélecteurs CSS simples en plus des classes d'espace réservé dans SASS, mais l'utilisation d'espaces réservés est le moyen le plus simple de vous assurer que vous n'étendez pas une classe imbriquée ailleurs dans vos styles, ce qui peut entraîner des sélecteurs involontaires dans votre CSS.
Notez que le CSS dans %equal-heights n'est pas généré, car %equal-heights n'est jamais étendu.
Les opérateurs
Faire des mathématiques dans votre CSS est très utile. SASS a une poignée d'opérateurs mathématiques standard comme +, -, *, math.div() et %. Dans notre exemple, nous allons faire quelques calculs simples pour calculer les largeurs d'un article et de côté :
SCSS | SASS | CSS |
---|---|---|
|
|
|
Nous avons créé une grille fluide très simple, basée sur 960px. Les opérations dans SASS nous permettent de faire quelque chose comme prendre des valeurs de pixels et les convertir en pourcentages sans trop de tracas.