Cet exercice consiste à modifier un thème fourni afin de pouvoir gérer une version sombre et une version claire à l’aide de variables CSS.
Créez un dossier racine intitulé exo-css40.
Téléchargez les fichiers de travail en cliquant sur le bouton ci-dessous et placez-les dans votre dossier racine.
– Pour télécharger un fichier, faites un clic droit sur le fichier désiré et choisissez l’option Télécharger.
– Pour télécharger plusieurs fichiers, sélectionnez les fichiers désirés puis cliquez sur Télécharger les sélectionnés. Les fichiers seront téléchargés sous la forme d’une archive .zip. Veillez à bien extraire le contenu de l’archive avant de commencer à travailler.
Listez les couleurs utilisées et remplacez-les par des variables CSS équivalentes.
:root { --color-background: #fff; --color-text: #333; --color-primary: #2ca84d; --color-secondary: #0c6624; --color-grey: #ccc; } body { font-family: Roboto, sans-serif; background-color: var(--color-background); color: var(--color-text); }
Déclarez un thème sombre au corps de la page en lui ajoutant une classe ou un attribut de donnée. Cela n’a pour le moment aucun effet visible.
<body data-theme="dark"> ou <body class="theme-dark">
Créez une copie des variables et associez-les au thème sombre via la classe ou l’attribut de donnée que vous lui avez appliqué.
:root, [data-theme="light"] { --color-background: #fff; --color-text: #333; --color-primary: #2ca84d; --color-secondary: #0c6624; --color-grey: #ccc; } [data-theme="dark"] { --color-background: #fff; --color-text: #333; --color-primary: #2ca84d; --color-secondary: #0c6624; --color-grey: #ccc; }
Modifiez les variables du thème sombre pour obtenir un résultat correspondant à l’illustration suivante :
[data-theme="dark"] { --color-background: #333; --color-text: #eee; --color-primary: #bd2130; --color-secondary: #660811; --color-grey: #111; }
Essayez d’appliquer votre thème sombre sur le premier article plutôt que sur la page complète. Si cela ne fonctionne pas correctement, corrigez votre code CSS pour que cela marche.
<article data-theme="dark">
Solution CSS :
article { display: flex; gap: 2rem; max-width: 1200px; padding: 2rem; margin: 4rem auto; background-color: var(--color-background); color: var(--color-text); }