Tecnología

Todos los colores que ves en internet están mal. Y la culpa es de tu navegador

Puedes ver estos colores en esta web no estan bien. Las imágenes PNG o los valores hexadecimales utilizados en el código CSS o las imágenes SVG nos delatan, pero la culpa no es de ellos sino de nuestra obsesión por comprimir los datos.

Para evitar que estos archivos se disparen en tamaño, normalmente usamos Usar un algoritmo de compresión con pérdida llamado «8 bits sRGB«Para el que hizo una apuesta desde 1996Y ese es exactamente el problema.

La compresión destruyó (un poco) los colores

El propósito del algoritmo es legítimo: representar datos de color. con menos bits que sería adecuado para una representación fiel al original. El objetivo era ahorrar datos y hacer que nuestros sitios web en constante crecimiento fueran un poco más fáciles.


El interior y el exterior del cuadrado gris deben tener el mismo brillo general. Ambos emiten una cantidad media de luz que es la mitad de brillante que el blanco. La reproducción cromática incorrecta hace que la parte exterior parezca más oscura.

sería ideal almacenar los valores numéricos reales del brillo lo que correspondería a la intensidad de la luz, por lo que más que un «espacio de color» como lo definen algunos, sRGB es solo eso, una tecnología de compresión con pérdida.

La realidad es que este algoritmo es engañoso. Los desarrolladores web creen que al proporcionar a los usuarios números de color sRGB, uno puede sumar y restar colores, pero estos números no tienen mucho significado real: No puedes tomar dos colores, mezclarlos y esperar obtener el color que esperas.pero todos los principales navegadores web lo hacen.

Lo que realmente deberían estar haciendo es Convierta estos valores sRGB en valores RGB linealesprocéselos y vuelva a convertir el resultado a sRGB si es necesario.

Captura De Pantalla 2022 04 28 A Las 14 15 20

Los que hacen operaciones directamente sobre valores sRGB lo estan haciendo mallo que da como resultado una mala representación del color en la web.

Sin embargo, hay una solución. El atributo de interpolación de color de los archivos SVG permite resolver el problema, pero curioso ningún navegador lo implementa aunque este atributo se creó en la especificación SVG 1.1 de 2003. Han pasado casi dos décadas desde entonces y los navegadores no están haciendo su trabajo correctamente.

El Panel W3C es muy consciente del problema y, de hecho, lo está hay soluciones sugeridas en CSS4, revisión de esta norma. Propone el uso del espacio de color perceptivo oklab que hace uso de tres coordenadas y que tiene diferentes implementaciones.

Curiosamente, quienes hacen esto son nuestras tarjetas gráficas y Desarrolladores de videojuegos. El procesamiento lineal de estos datos RGB es necesario para entornos realistas, y las GPU modernas son capaz de convertir de forma transparente hacia y desde sRGB al cargar y renderizar imágenes sin pérdida de rendimiento.

Más información | El color web todavía está roto.

Publicaciones relacionadas

Botón volver arriba