Appliquez la couleur de votre marque aux entrées de formulaire HTML intégrées avec une seule ligne de code.
Publié le 11 août 2021
Les éléments de formulaire HTML actuels sont difficiles à personnaliser. On a l'impression de devoir choisir entre peu ou pas de styles personnalisés, ou de réinitialiser les styles d'entrée et de les reconstruire à partir de zéro. La création à partir de zéro s'avère beaucoup plus laborieuse que prévu. Cela peut également entraîner l'oubli de styles pour les états des éléments (indéterminé, c'est à toi que je m'adresse) et la perte de fonctionnalités d'accessibilité intégrées. La recréation complète de ce que fournit le navigateur peut représenter plus de travail que vous ne le souhaitez.
accent-color: hotpink;
Le CSS accent-color de la spécification de l'UI CSS est là pour teinter les éléments avec une seule ligne de CSS, ce qui vous évite des efforts de personnalisation en vous permettant d'intégrer votre marque dans les éléments.
La propriété accent-color fonctionne également avec color-scheme, ce qui permet aux auteurs de teinter les éléments clairs et sombres.
Dans l'exemple suivant, l'utilisateur a activé un thème sombre, la page utilise color-scheme: light dark et le même accent-color: hotpink pour les commandes rose vif teintées du thème sombre.
Éléments acceptés
Actuellement, seules quatre éléments peuvent être teintés via la propriété accent-color : checkbox, radio, range et progress. Vous pouvez prévisualiser chacun d'eux sur https://accent-color.glitch.me dans les jeux de couleurs clairs et foncés.
Case à cocher
Radio
Plage
Progression
Garantir le contraste
Pour éviter l'existence d'éléments inaccessibles, les navigateurs avec accent-color doivent déterminer une couleur de contraste éligible à utiliser avec l'accentuation personnalisée. Vous trouverez ci-dessous une capture d'écran montrant les différences entre les algorithmes de Chrome 94 (à gauche) et de Firefox 92 Nightly (à droite) :

Le plus important à retenir, c'est de faire confiance au navigateur. Fournissez une couleur de marque et faites confiance à l'IA pour prendre les bonnes décisions à votre place.
Extra : plus de teinte
Vous vous demandez peut-être comment teinter plus de quatre éléments de formulaire. Voici un bac à sable minimal qui teinte :
- la bague de mise au point.
- les éléments mis en surbrillance lors de la sélection de texte ;
- Marqueurs de liste
- Indicateurs en forme de flèche (Webkit uniquement)
- Curseur de la barre de défilement (Firefox uniquement)
html {
--brand: hotpink;
scrollbar-color: hotpink Canvas;
}
:root { accent-color: var(--brand); }
:focus-visible { outline-color: var(--brand); }
::selection { background-color: var(--brand); }
::marker { color: var(--brand); }
:is(
::-webkit-calendar-picker-indicator,
::-webkit-clear-button,
::-webkit-inner-spin-button,
::-webkit-outer-spin-button
) {
color: var(--brand);
}
Avenir potentiel
La spécification ne limite pas l'application de accent-color aux quatre éléments présentés dans cet article. D'autres éléments pourront être ajoutés ultérieurement. Les éléments tels que le <option> sélectionné dans un <select> peuvent être mis en évidence avec accent-color.
Quels autres éléments Web souhaitez-vous teinter ? Tweetez @argyleink avec votre sélecteur. Il sera peut-être ajouté à cet article.