En código HTML y en varios lenguajes de programación, los colores se miden hexadecimalmente, que es un sistema matemático cuyos entresijos os desvelo a continuación. No es muy complicado, no temáis.

Sabemos que hay dos tipos de esquemas cromáticos: el color físico (RGB) o aditivo, y el color químico (CMYK), o sustractivo. Para monitores de televisión y de ordenador, se utiliza el sistema RGB pues la transformación de señal eléctrica en color es un proceso físico: RGB se refiere a Rojo, Verde y Azul. En círculos hispanohablantes suele denominarse RVA. Aunque, trabajando en un mundo global, lo mejor es estandarizar estas siglas: RGB es mundialmente reconocido, en detrimento de ‘RVA’. Desde Onyria os recomiendo que os refiráis a este modelo siempre por este nombre, más que nada por evitar autoconstruirse barreras.

Los colores se representan con seis caracteres, que pueden ser, por ejemplo, 000000, FFFFFF o 6EA3FB.Estos caracteres van del 0 (cero) a la F, en este orden: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. 16 caracteres en total. Este orden va de lo más oscuro a lo más claro (0=0 color, F=full color, para que os acordéis), y van en grupos de seis, precedidos (no siempre como explicaré más adelante) de una almohadilla (#) en la mayoría de casos.

Sabemos que el ‘fósforo’ de una pantalla puede representar rango del 0 al 255, es decir, 256 tonos. Cada par de caracteres en una definición de color te dicen el tono de R, G o B. Así por ejemplo, si tenemos un hipotético (incorrecto) caso de color así: #RRGGBB, el tono de rojo será RR, el de verde GG, y el de azul BB. Es incorrecto pues no existen ni la R ni la G como caracteres hexadecimales.
¿Y porqué esta mezcla de letras, y porqué van en pares? son 16 caracteres hemos dicho: si multiplicamos 16 x 16 el resultado nos da exactamente 256. Así pues, cada pareja puede representar un máximo de 256 combinaciones distintas. Así pues, sabemos que son: (R)256 x (G)256 x (B)256 = 16.777.216 colores.
Ahora hagamos ejercicio de recuerdo: sabiendo que el blanco es resultado de la mezcla de todos los colores físicos, tenemos que FFFFFF representa al blanco puro, y 00000 al negro absoluto. Por esta regla, uno se da cuenta de que si en los tres grupos aparece lo mismo, tendrá un gris. Y con lo mismo me refiero tanto a AAAAAA, o a B3B3B3.Colores hexadecimales
Esta imagen fue encontrada en http://www.mattlag.com/htmlcolorchart/

Es excepcional el caso de algunos lenguajes de estilos, como CSS, en que pueden no ir en grupos de seis. Una declaración como estas dos: span{color:#ABC}, ó span{color:#F} son válidas ya que se interpreta, en el primer caso, que A es rojo (AA), B es verde (BB), y C es azul (CC). Así pues, si solo hay un caracter, se interpreta que es un gris ’seguro’. No obstante, recomiendo esto más como técnica de lectura y ‘debugging’ que como técnica de desarrollo, pues no todos los lenguajes lo admiten.

Esto de ’seguro’ se refiere a los ’safe colors’ tan famosos. Estos colores son aquellos que tienen el mismo carácter en las parejas de tonos: #00FF99, por ejemplo, y además son múltiplos de 3. Por ejemplo, dentro de los tonos de azul, son colores seguros: #000033, #000066, #000099, #0000CC y #0000FF (hay más si metemos 33, 66… en R o en G). Esto de colores seguros viene de hace varios años, cuando la web nacía y los monitores no tenían la calidad gráfica de hoy en día. Estos colores eran aquellos que los monitores antiguos podrían reproducir sin problemas. Son también conocidos como colores de 8 bits (ya que 2 elevado a 8 son 256, que son las posibilidades de tonos de los colores seguros).

Hoy en día, los monitores son capaces de reproducir colores de 32 o 64 bits (miles de millones de colores), y ésto nos ha dado gran ventaja y alivio a los diseñadores.

Es posible que os encontréis otras posibilidades: si aparecen, cuatro grupos en vez de tres, (#RRGGBBAA), el último par suele referirse a la transparencia, aunque su uso no es muy habitual, suele utilizarse más en entornos de desarrollo como C o C#.

Es posible además, que no siempre haya una almohadilla delante de los colores hexadecimales, aunque sea un estándar. Es el caso del Actionscript de flash, en que los colores se representan 0xFFFFFF, siendo el primer carácter un cero, y el segundo una equis minúscula.

Nada más: un buen primer post. Espero que os haya entretenido y hayáis aprendido algo nuevo.