¿Hay alguna buena razón para usar valores hexadecimales sobre los valores de color RGB en CSS?

rgb(255,255,255) notación rgb(255,255,255) ha estado disponible desde CSS1. Pero #ffffff parece ser mucho más popular.

Obviamente es un poco más compacto. Sé que el hexadecimal está más estrechamente relacionado con los bytes subyacentes, y entiendo que habría ventajas en la realización de la aritmética en esos valores, pero esto no es algo que vayas a hacer con CSS.

Los valores de color tienden a ser originados por diseñadores (como yo) que nunca encontrarían la notación hexadecimal en ningún otro lado, y están mucho más familiarizados con la notación decimal que es la forma principal de especificar el color en las aplicaciones que usan, de hecho tengo conocimos a muchos que no se dan cuenta de cómo un valor hexadecimal dado se descompone en componentes RGB y se supone que no se relaciona directamente con el color en absoluto, como una referencia del sistema de color Pantone (por ejemplo, PMS432).

Entonces, ¿hay alguna razón para no usar decimal?

Los valores hexadecimales son más fáciles de copiar y pegar desde su editor de imágenes favorito.

Los valores RGB son más fáciles de manipular con Javascript.

(Mi valor de color Hex favorito es #EDEDED y un sitio que creamos para un cliente involucrado en el automovilismo tenía un color de fondo de # F1F1F1 🙂

Ed.

Vale la pena señalar que si desea ingresar un valor RGBA, la notación hexadecimal no es compatible; es decir, no puedes fingir con #FFFFFFff. Como cuestión de hecho, el valor alfa debe ser un número entre 0.0 y 1.0, inclusive. (Consulte esta página para obtener ayuda con el navegador, como siempre, IE lidera el paquete aquí;;))

El soporte de color HSL y HSLA, que es muy amigable con el diseñador, también se proporciona con una syntax similar al estilo RGB (). Si un diseñador fuera a utilizar ambos tipos de valores de color en la misma hoja de estilo, podría optar por valores decimales sobre códigos hexadecimales por coherencia.

Creo que es a lo que estás acostumbrado. Si está acostumbrado a HTML, probablemente use HEX ya que solo se ha usado mucho en HTML. Si tiene antecedentes de diseño, usa Photoshop / Corel / PaintShopPro, etc., entonces probablemente esté acostumbrado a la notación RGB, sin embargo, actualmente muchos progtwigs incorporan un campo de valor HEX.

Como se dijo, RGBA podría ser una razón para ir con la notación RGB: coherencia.

Sin embargo, creo que también depende del escenario. Si se siente cómodo con ambos, puede cambiar entre ellos: #fff es mucho más fácil de escribir que rgb(255,255,255) .

Otra pregunta es por qué la gente dirá #fff lugar de White (suponiendo que la mayoría de los navegadores son compatibles con esta palabra clave).

Todo es cuestión de preferencia y legibilidad: si mantiene un gran archivo CSS, puede ver el valor del color y saber qué color es, es una gran ventaja. Aún más ventajoso es usar algo como LESS o Sass para agregar un tipo de progtwigbilidad a CSS, permitiendo constantes, por ejemplo. Entonces, en lugar de decir:

 #title { color: #abcdef; } 

En su lugar, puede hacer lo siguiente con MENOS:

 @base-color: #abcdef; #title { color: @base-color; } 

Mantener el CSS se convierte en un problema menor.

Si le preocupa el rendimiento del navegador que representa su resultado, ese también podría ser otro factor a su elección.

Entonces, en resumen, se reduce a:

  • Familiaridad
  • Preferencia
  • Mantenibilidad
  • Actuación

Tradicionalmente, HTML siempre ha usado colores hexadecimales, por lo que se ha trasladado a CSS. Piensa

La razón principal es probablemente la compacidad, como mencionaste. #ffffff se puede acortar aún más a la notación abreviada #fff .

Otra posible razón es que hay un aumento del rendimiento percibido al guardar el navegador el problema de convertir la notación rgb .

Siempre usé hexadecimal, pero hoy prefiero establecer mis valores como:

 rgb(82, 110, 188) 

en mis archivos CSS, así que siempre que quiera agregar opacidad solo necesito cambiar el nombre de rgb a rgba y agregar el valor de opacidad. La ventaja es que no tengo que convertir el valor hexadecimal a rgb antes de poder agregar la opacidad:

 rgba(82, 110, 188, 0.5) 

CSS fue inventado por los desarrolladores de software, no por los diseñadores. Los desarrolladores de software viven y respiran hexadecimal. Desde mis viejos días en C64, todavía puedo leer la mayoría de los números hexadecimales sin pensar. A9, ¿alguien?

Varias cosas aceptarán un solo valor hexadecimal, donde pueden tener diferentes formas de ingresar tres valores decimales. También está el hecho de que siempre hay 6 caracteres (o 3, sin dudas, más el #) lo que hace que sea más fácil escanear una lista de ellos.

Solo un par de pensamientos aleatorios para agregar a la mezcla …

Probablemente un toque de velocidad cuando el color es interpretado por un navegador. De lo contrario, algunas personas de antecedentes de diseño pueden saber cómo componer colores de componentes RGB cuando escriben código, y algunos otros de fondo de progtwigción probablemente estén más inclinados a usar valores HEX.

ninguna razón válida, aparte de las preferencias personales.

Tal vez he hecho HTML demasiado tiempo, pero me resulta más fácil pensar en valores HEX. Gran parte de la paleta de colores predefinida para HTML se correlaciona perfectamente con los valores HEX. Usar el formato abreviado también le da colores automáticos ‘seguros para la red’, aunque esto no es realmente un problema en los días de las pantallas a color de 32 bits.

HEX es más común debido a razones históricas.

Antes de que CSS fuera común en el desarrollo web, los colores se especificaban en las tags HTML y la forma más comúnmente utilizada y admitida para especificar un color era usar valores HEX.