Les variables CSS
On peut maintenant utiliser des variables nativement en css, aussi appelé css custom properties.
Déclaration et utilisation
On va déclarer la variable comme on le fait avec n'importe quel propriété en css en utilisant deux tirets (--) suivie du nom de la variable.
ensuite on utiliser la fonction var() pour utiliser la valeur de la variable.
Dans cet exemple la variable --couleur-texte
contient une valeur de couleur. On utilise ensuite la variable pour modifier la couleur du texte des balises h1.
Note
:root représente l'élément "racine" de notre page, le plus haut niveau de visibilité pour notre variable. En effet l'endroit où est déclaré la variable importe sur ça visibilité. C'est les même règles qui s'appliquant pour la priorité des propriétés css.
Dans cet exemple, je veux utiliser la variable --couleur-texte comme couleur de texte à tous les éléments de body, mais la variable est déclaré pour les balises h1, elle ne sera utilisable que dans les balises h1 (et ses enfants s'il y en a).
On peut avec la fonction var() utiliser une valeur par défaut pour résoudre le problème rencontré ici, sinon la couleur du texte restera celle par défaut.
Thème de couleur
Les variables CSS sont souvent utilisé pour créer facilement des thèmes de couleur. Dans cet exemple, on défini un style de base pour un bouton en utilisant des variables avec valeur par défaut. Ensuite on crée des classes pour facilement ajuster le style du bouton au besoin
See the Pen Untitled by Mathieu Fréchette (@frechettemathieu) on CodePen.
Dans une animation
On peut utiliser aussi utiliser les variables dans les animations et les media queries
See the Pen CSS Vars : Animations by Hamza Iqbal (@hamzaiqbal) on CodePen.
Source : https://codepen.io/hamzaiqbal/pen/jzPRRL
Ce qu'on ne peut pas faire
Inscrire en texte le chemin d'accès à un fichier
Quand on veut mettre le chemin vers un fichier dans une variable, on doit utiliser la fonction url() avec en paramètre la destination comme valeur.
Unité numérique
On ne peut pas définir un nombre comme unité et ensuite lui accolé le type d'unité
h1 {
/* Invalide */
--taille-police: 2;
font-size: var(--taille-police)em;
}
h1 {
/* Valide */
--taille-police: 2em;
font-size: var(--taille-police);
}
On pourrait contourner le problème avec la fonction calc() qui nous permet d'effectuer un calcul et d'utiliser le résultat en valeur :
Comme nom de sélecteur ou un nom de propriété
On ne peut pas mettre le nom d'un sélecteur ou d'une propriété dans une variable et ensuite l'utiliser
Dans les critères d'une media queries
On ne peut pas utiliser une variable dans la requête d'une media query.
Ne pas assigner de valeur
Quand on initialise une variable, on doit absolument lui assigner une valeur.