Aller au contenu principal
ShadowAcademy

Les langages CSS Variables et thèmes

Les variables CSS

Une charte graphique utilise la même couleur à vingt endroits. Plutôt que de la recopier, on la range dans une variable :

:root {
    --accent: #1d8fbf;
    --fond: #ffffff;
    --texte: #1a1a1a;
}

a {
    color: var(--accent);
}

Une variable commence par deux tirets. :root désigne la racine de la page : une variable posée là est disponible partout, car les variables s'héritent. var(--nom, valeur) accepte une valeur de repli, utilisée si la variable n'existe pas.

Un thème par section

Redéfinir les variables sur un élément change leur valeur pour lui et ses descendants :

.theme {
    background-color: var(--fond);
    color: var(--texte);
}

.sombre {
    --fond: #121212;
    --texte: #eeeeee;
}

Le piège

var() est remplacée là où la propriété est déclarée. Si seul body déclare color: var(--texte), la couleur est calculée sur body, puis cette couleur calculée descend vers les enfants. Redéfinir --texte sur une section ne change alors rien : personne dans la section ne relit la variable. C'est pourquoi la règle qui utilise les variables (.theme) vise aussi la section, qui porte les deux classes : class="theme sombre".

1 exercice pour cette lecon

Les exercices demandent un compte : il faut bien enregistrer votre progression quelque part. La lecture, elle, reste libre. Creer un compte

  • Un thème sombre difficile lecon a valider