Sass : imbrications, variables et mixins
- Les notions
Imbrications
Opérateur &
Variables
Mixins
Proposition d'organisation de fichiers
L'imbrication (ou nesting) en SASS
Une des forces de SASS à sa création était de proposer une organisation du CSS imbriquée (ou dit nested en anglais), depuis cette fonctionnalité est également disponible nativement en CSS depuis 2023.
Exemple sans imbrication
Le même code avec imbrication
L'opérateur & en SASS
L'imbrication pose cependant un problème lorsque l'on veut, par exemple définir deux styles différents sur un même élément en fonction d'une pseudo-class (:hover par exemple), d'un pseudo-sélecteur (:nth-of-type par exemple) ou même sur un pseudo-élément (::before, ::after).
Pour éviter ce souci, on va utiliser l'opérateur & qui désigne l'élément courant des accolades en cours.
Exemple sans opérateur
Exemple avec opérateur
Exercices sur l'imbrication
Les variables en SASS
SASS permet également l'utilisation de variables, un peu plus simplement que le CSS. Une utilisation assez classique des variables en SASS est de déterminer une palette de couleurs pour votre site :
Exercices sur les variables
Les mixins en SASS
SASS vous permet d'utiliser un principe très utile : les mixins. Une mixin c'est un bloc de code CSS réutilisable avec des toutes petites variations. Un peu comme une petite fonction avec des variables. Une façon simple et utile de les utiliser c'est pour charger des polices.
Exemple sans mixins
Exemple avec mixin
Comme vous le voyez sur cet exemple une mixin peut avoir des valeurs par défaut.
Ensuite pour utiliser une mixin :
Exercices sur les mixins
Proposition d'organisation de fichiers
Je vous mets ici la façon donc j'organise mes fichiers SASS. Il n'existe pas de bonne pratique officielle puisqu'il existe de nombreuses méthodologies d'organisation du code (BEM par exemple).
Dans le dossier
componentsje mets les composants qui peuvent être utilisés sur plusieurs pages.Dans le dossier
layoutsle code concernant des templates (pages complètes)Dans le dossier
partialsles éléments présents sur toutes les pagesDans le dossier
librairies, les bibliothèques utilisées pour le projetDans le dossier
varsles différentes variables et mixins communes sur tout le projet