Cuando estamos trabajando con colores, lo hacemos en un espacio de color determinado. El espacio de color más tradicional en web es sRGB. Este espacio de color fue creado por Microsoft y HP para poder tener un ámbito en el que están definidos todos los colores que podemos utilizar. Por un lado tenemos los modelos de colores y por otro los espacios de color.
1️⃣ Un modelo de color es una forma de describir un color. Ej: RGB (mediante rojo, verde y azul) o CMYK (mediante cyan, magenta, amarillo y negro).
2️⃣ Un espacio de color es un conjunto de colores para mostrar o reproducir en un medio. Ej: sRGB es un conjunto de colores con diferentes valores RGB.
Espacios de color
En CSS, podemos trabajar con diferentes espacios de color predefinidos. A continuación muestro la lista completa de espacios de color soportados en web:
| Espacio de color | Descripción | + info |
|---|---|---|
sRGB | Espacio de color estándar (rojo, verde, azul) creado por Microsoft y HP. | sRGB |
srgb-linear | Idéntico a sRGB, pero con diferente función de transferencia de luz. | Linear sRGB |
display-p3 | Variación de Apple de DCI-P3. Pantallas, TV o portátiles modernos lo usan. | DCI-P3 |
a98-rgb | Espacio de color desarrollado por Adobe. | A98-rgb |
prophoto-rgb | Espacio de color desarrollado por Kodak. | ProPhoto RGB |
rec2020 | Espacio de color basado en recomendación ITU-R BT.2020. | Rec2020 |
xyz | Espacio de color basado en el espacio CIE 1931 XYZ. | |
xyz-d65 | Idem al anterior, pero usando D65. | XYZ D65 |
xyz-d50 | Idem al anterior, pero usando D50. | XYZ D50 |
Cuando trabajamos en un espacio de color predefinido, es muy frecuente que al ver una obra en otro monitor o medio que utilice otro espacio de color, los colores no sean exactamente iguales y se vean de forma diferente.
La función color()
Por lo general, cuando trabajamos sin especificar el color, el navegador trabaja en srgb. Si necesitamos indicar un color mediante un espacio de color diferente, podemos utilizar la función color() de CSS, mediante la cuál le pasamos como primer parámetro el espacio de color, y luego, separado con espacios los valores de cada uno de los componentes.
Opcionalmente, se le puede indicar al final un / seguido de un valor de canal alpha. Observa el siguiente fragmento de código:
.normal { background: rgb(50% 25% 75%); }
.item-1 { background: color(srgb 50% 25% 75%); }
.item-2 { background: color(srgb-linear 50% 25% 75%); }
.item-3 { background: color(display-p3 50% 25% 75%); }
.item-4 { background: color(a98-rgb 50% 25% 75%); }
.item-5 { background: color(prophoto-rgb 50% 25% 75%); }
/* ... */
A todos ellos se indica los valores 50% 25% 75%, pero cada uno en un espacio de color diferente. Observa más abajo los colores resultantes en tu navegador:
