Couleurs
Leçon 1 sur 3.
Un composant, ici, n'écrit jamais une couleur. Il demande un jetonUne variable CSS nommée --dp-quelque-chose, définie une fois et lue par chaque composant., et le thème répond — c'est pourquoi une ligne change tout le site, y compris les parties que vous n'avez pas encore écrites.
À vous
Ouvrez docpensieve.config.mjs et donnez à l'accent une couleur à vous :
theme: {
framework: 'tailwind',
tokens: {
'--dp-accent': '#7c5cff',
'--dp-radius': '0.75rem',
},
},
Regénérez, puis regardez un lien, une jauge, l'entrée courante du menu, la bordure d'une carte que vous n'avez jamais touchée. Tout a bougé.
Le schéma sombre
La palette sombre est un second jeu de valeurs pour les mêmes jetons. Elle se
redéfinit dans le dossier theme/, à la racine du projet — chaque fichier
.css qui s'y trouve est lu dans l'ordre des noms et ajouté en dernier, ce
qui en fait le dernier mot du projet :
mon-cours
- docpensieve.config.mjs
theme
- 10-sombre.css — le vôtre
- 99-docpensieve.css — écrit par init, sous le thème custom
- docs
Créez theme/10-sombre.css. Le sombre arrive de deux façons — le système du
lecteur, et la classe que pose une configuration — donc les deux s'écrivent :
@media (prefers-color-scheme: dark) {
:root:not(.light) {
--dp-accent: #a78bfa;
--dp-bg: #0b0b14;
}
}
:root.dark {
--dp-accent: #a78bfa;
--dp-bg: #0b0b14;
}
L'en-tête porte un bouton qui bascule entre les deux et retient le choix. C'est
le seul script que charge une page de contenu, et theme.toggle: false le
retire.
Ce que vous devriez voir
Votre accent sur les liens, les jauges, l'entrée courante du menu et l'anneau de focus.
Le même, aux valeurs de votre fichier theme/ — et le reste de la palette aussi.
Ce qui suit l'accent tout seul
Une icône posée dans la page prend la couleur du texte qui l'entoure : elle suit donc votre palette sans qu'on le lui dise.
sur l'accent, sur le texte discret.
<LogoIcon src="./icons/star.svg" size="1.5rem" style={{ color: 'var(--dp-accent)' }} />
La seule chose qui ne suit pas d'elle-même, c'est une classe que vous écrivez, et sa forme dépend du thème choisi à la première leçon du cours :
Sous le thème tailwind, une couleur ponctuelle est un utilitaire, écrit là où
il sert :
<div className="text-indigo-500">Une ligne à vous</div>
Cette page vous montre la variante du thème que ce site emploie — c'est
ForTheme, et c'est ainsi que toute la documentation reste juste sous les deux.
Vérifiez par vous-même
Vous avez posé --dp-accent dans la configuration et rien n'a changé. Pourquoi ?
Soit le site est tenu sombre — darkMode: 'dark' — et c'est la palette sombre
qui répond, soit le jeton a été écrit hors de l'objet tokens. La génération
n'aurait rien dit dans les deux cas : la feuille se compile de toute façon.
Où poser une classe à vous, employée dans une page avec className ?
Dans un fichier .css du dossier theme/. Il est ajouté après les règles des
composants, donc il l'emporte — et sous le thème custom, c'est le seul
endroit où ces classes existent.
Le tableau complet : les créneaux, l'ordre des couches, et pourquoi la feuille est compilée en dernier.
DocPensieve