Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

contrast-color()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Expérimental: Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La fonction de type <color> CSS contrast-color() prend une valeur couleur et retourne une couleur contrastée garantie (angl.).

contrast-color() permet, par exemple, de définir une couleur de texte et de générer automatiquement une couleur d'arrière‑plan contrastée, ou l'inverse. Il évite le besoin de maintenir des paires de couleurs fond/texte.

Syntaxe

css
contrast-color(red)
contrast-color(var(--backgroundColor))

Paramètres

color

Toute valeur <color> valide.

Valeur de retour

Une couleur nommée (<named-color>) : white ou black.

Description

La fonction contrast-color() retourne la valeur white ou black, selon celle qui offre le plus grand contraste avec la couleur d'entrée. Si white et black ont le même contraste avec la couleur d'entrée, white est retournée.

Attention : Il n'y a aucune garantie que les valeurs retournées par la fonction contrast-color() produisent un résultat accessible. Les couleurs de fond moyennes n'offrent généralement pas un contraste suffisant. Il est donc recommandé d'utiliser des couleurs claires ou foncées avec la fonction contrast-color().

Exemples

Exemple : texte contrasté pour un bouton

Dans l'exemple suivant, le navigateur applique automatiquement une couleur contrastée au texte de l'élément <button> de soumission lorsque vous changez sa couleur d'arrière‑plan.

css
:root {
  --button-color: lightblue;
}

button {
  background-color: var(--button-color);

  /* Définir automatiquement une couleur de texte contrastée */
  color: contrast-color(var(--button-color));
}

Exemple : mode clair et sombre

Dans l'exemple suivant, la requête média prefers-color-scheme est utilisée pour définir une couleur d'arrière‑plan selon les préférences du système d'exploitation ou du navigateur. La fonction contrast-color() est utilisée pour définir automatiquement la couleur du texte.

Essayez de changer le mode sombre ou clair du navigateur ou du système pour voir l'effet.

css
:root {
  --background-color: navy;
}

@media (prefers-color-scheme: light) {
  :root {
    --background-color: wheat;
  }
}

body,
a {
  background-color: var(--background-color);
  color: contrast-color(var(--background-color));
}

Spécifications

Specification
CSS Color Module Level 5
# contrast-color

Compatibilité des navigateurs

Voir aussi