contrast-color()
Baseline 2026 recién disponible en abril de 2026 (Chrome 147, Firefox 146, Safari 26).
Chrome 147
Edge 147
Safari 26
Firefox 146
Devuelve negro o blanco, el que más contraste con el color dado. El texto sobre fondos elegidos por el usuario o calculados (etiquetas, avatares, selectores de tema) sigue siendo legible sin tabla de consulta.
YellowNavyOrange
CSS
.fx-032 span {
display: inline-block;
padding: 6px 12px;
border-radius: 999px;
margin: 4px;
font: 600 13px system-ui;
background: var(--bg);
color: contrast-color(var(--bg))
}
HTML
<div class="fx-032">
<span style="--bg:#fde047">Yellow</span><span style="--bg:#1e3a8a">Navy</span><span style="--bg:#f97316">Orange</span>
</div>Fallback: Define un `color` por defecto antes de la línea con contrast-color(); los navegadores antiguos se quedan con él. Protégelo con `@supports (color: contrast-color(red))`.
Prompt
Siempre que haya texto sobre un color de fondo dinámico (etiquetas, insignias, muestras de color, temas de usuario), pon `color: contrast-color(var(--bg))` después de un color estático de respaldo. No calcules la luminancia en JS. Ten en cuenta que la función solo devuelve negro o blanco; para texto tintado sigue usando color-mix().