You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
La notation fonctionnelle **`color-contrast()`** prend une couleur et la compare à une liste d'autres couleurs (voir [`<color>`](/fr/docs/Web/CSS/color_value) pour les valeurs possibles) afin de sélectionner la valeur de la liste qui offre le contraste le plus important avec la première couleur.
11
+
La [fonction de type `<color>`](/fr/docs/Web/CSS/CSS_Values_and_Units/CSS_Value_Functions#les_fonctions_de_couleur)[CSS](/fr/docs/Web/CSS)**`contrast-color()`** prend une valeur {{cssxref("color_value","couleur")}} et retourne une couleur contrastée [garantie <sup>(angl.)</sup>](https://w3c.github.io/wcag/guidelines/22/#contrast-minimum).
12
+
13
+
`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.
12
14
13
15
## Syntaxe
14
16
15
17
```css
16
-
color-contrast(wheat vs tan, sienna, #d2691e)
17
-
color-contrast(#008080 vs olive, var(--myColor), #d2691e)
18
+
contrast-color(red)
19
+
contrast-color(var(--backgroundColor))
20
+
```
21
+
22
+
### Paramètres
23
+
24
+
-`color`
25
+
- : Toute valeur {{cssxref("<color>")}} valide.
26
+
27
+
### Valeur de retour
28
+
29
+
Une couleur nommée ({{cssxref("named-color")}}) : `white` ou `black`.
30
+
31
+
## Description
32
+
33
+
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.
34
+
35
+
> [!WARNING]
36
+
> 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()`.
37
+
38
+
## Exemples
39
+
40
+
### Exemple : texte contrasté pour un bouton
41
+
42
+
Dans l'exemple suivant, le navigateur applique automatiquement une couleur contrastée au texte de l'élément {{htmlelement("button")}} de soumission lorsque vous changez sa couleur d'arrière‑plan.
43
+
44
+
```html hidden
45
+
<label>
46
+
Sélectionnez la couleur d'arrière‑plan du bouton :
Dans l'exemple suivant, la [requête média](/fr/docs/Web/CSS/CSS_media_queries/Using_media_queries)[`prefers-color-scheme`](/fr/docs/Web/CSS/@media/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.
111
+
112
+
Essayez de changer le mode sombre ou clair du navigateur ou du système pour voir l'effet.
113
+
114
+
```html hidden
115
+
<pre>
116
+
Q : Comment CSS transforme‑t‑il la lumière en énergie ?
117
+
R : Avec <ahref="/fr/docs/Web/CSS/font-synthesis">font-synthesis</a>.
118
+
</pre>
119
+
```
120
+
121
+
```css
122
+
:root {
123
+
--background-color: navy;
124
+
}
125
+
126
+
@media (prefers-color-scheme: light) {
127
+
:root {
128
+
--background-color: wheat;
129
+
}
130
+
}
131
+
132
+
body,
133
+
a {
134
+
background-color: var(--background-color);
135
+
color: contrast-color(var(--background-color));
136
+
}
18
137
```
19
138
20
-
### Valeurs
139
+
```css hidden
140
+
body {
141
+
padding: 2rem;
142
+
font-size: 1.2rem;
143
+
}
144
+
145
+
pre {
146
+
margin-top: 3rem;
147
+
}
21
148
22
-
-`color-contrast( <couleur> vs <couleur>#{2,} )`
23
-
- : `<couleur>` est une valeur de type [`<color>`](/fr/docs/Web/CSS/color_value).
149
+
@supportsnot (color: contrast-color(red)) {
150
+
body::before {
151
+
content: "Votre navigateur ne prend pas en charge la fonction contrast-color().";
152
+
background-color: wheat;
153
+
display: block;
154
+
width: 100%;
155
+
text-align: center;
156
+
}
24
157
25
-
`<couleur>#{2,}` est une liste de couleurs (type [`<color>`](/fr/docs/Web/CSS/color_value)) séparées par des virgules, à comparer à la première.
@@ -31,3 +174,13 @@ color-contrast(#008080 vs olive, var(--myColor), #d2691e)
31
174
## Compatibilité des navigateurs
32
175
33
176
{{Compat}}
177
+
178
+
## Voir aussi
179
+
180
+
- La fonction CSS {{CSSXref("filter-function/contrast", "contrast()")}}
181
+
- Le module des [couleurs CSS](/fr/docs/Web/CSS/CSS_colors)
182
+
-[Propriétés personnalisées CSS](/fr/docs/Web/CSS/--*) et {{cssxref("var")}}
183
+
- Les fonctionnalités {{cssxref("@media")}} [`prefers-contrast`](/fr/docs/Web/CSS/@media/prefers-contrast) et [`prefers-color-scheme`](/fr/docs/Web/CSS/@media/prefers-color-scheme)
184
+
-[WCAG : contraste des couleurs](/fr/docs/Web/Accessibility/Guides/Understanding_WCAG/Perceivable/Color_contrast)
185
+
-[Comment laisser le navigateur choisir une couleur contrastée en CSS <sup>(angl.)</sup>](https://webkit.org/blog/16929/contrast-color/) sur webkit.org (2025)
186
+
-[WebAIM Contrast Checker <sup>(angl.)</sup>](https://webaim.org/resources/contrastchecker/) sur webaim.org (2025)
0 commit comments