¡El Módulo de color CSS Nivel 4 probablemente admitirá la notación hexadecimal RGBA de 4 y 8 dígitos!
Hace tres semanas (18 de diciembre de 2014) el borrador del editor del Módulo de color CSS Nivel 4 se presentó al Grupo de trabajo CSS W3C. Aunque en un estado que es muy susceptible a cambios, la versión actual del documento implica que en un futuro próximo CSS admitirá la notación hexadecimal RGBA de 4 y 8 dígitos.
Nota: la siguiente cita tiene fragmentos irrelevantes recortados y la fuente puede haber sido muy modificada en el momento de leer esto (como se mencionó anteriormente, es un borrador del editor y no un documento finalizado).
Si las cosas han cambiado mucho, ¡deje un comentario para informarme para que pueda actualizar esta respuesta!
§ 4.2. Las notaciones hexadecimales RGB: #RRGGBB
La sintaxis de a <hex-color>
es un <hash-token>
token cuyo valor consta de 3, 4, 6 u 8 dígitos hexadecimales . En otras palabras, un color hexadecimal se escribe como un carácter hash, "#", seguido de cierto número de dígitos 0-9
o letras a-f
(el caso de las letras no importa, #00ff00
es idéntico a #00FF00
).
8 dígitos
Los primeros 6 dígitos se interpretan de manera idéntica a la notación de 6 dígitos. El último par de dígitos, interpretado como un número hexadecimal, especifica el canal alfa del color, donde 00
representa un color totalmente transparente y ff
representa un color totalmente opaco.
Ejemplo 3
En otras palabras, #0000ffcc
representa el mismo color que rgba(0, 0, 100%, 80%)
(un azul ligeramente transparente).
4 dígitos
Esta es una variante más corta de la notación de 8 dígitos, "expandida" de la misma manera que la notación de 3 dígitos. El primer dígito, interpretado como un número hexadecimal, especifica el canal rojo del color, donde 0
representa el valor mínimo y f
representa el máximo. Los siguientes tres dígitos representan los canales verde, azul y alfa, respectivamente.
¿Qué significa esto para el futuro de los colores CSS?
Esto significa que suponiendo que esto no se elimine por completo del documento de Nivel 4, pronto podremos definir nuestros colores RGBA (o colores HSLA, si usted es uno de esos tipos) en formato hexadecimal en navegadores que admiten el Color Módulo de sintaxis de nivel 4.
Ejemplo
elem {
background: rgb(0, 0, 0); /* RGB notation (no alpha). */
background: #000; /* 3-digit hexadecimal notation (no alpha). */
background: #000000; /* 6-digit hexadecimal notation (no alpha). */
background: rgba(0, 0, 0, 1.0); /* RGBA notation. */
/* The new 4 and 8-digit hexadecimal notation. */
background: #0000; /* 4-digit hexadecimal notation. */
background: #00000000; /* 8-digit hexadecimal notation. */
}
¿Cuándo podré usar esto en mis productos orientados al cliente?
Dejando a un lado todas las bromas: actualmente es solo el comienzo de 2015, por lo que todavía no serán compatibles con ningún navegador durante bastante tiempo, incluso si su producto solo está diseñado para funcionar en los navegadores más actualizados, probablemente No veré esto en acción en un navegador de producción en el corto plazo.
Ver la compatibilidad actual del navegador para la notación de color #RRGGBBAA
Sin embargo, dicho esto, la forma en que funciona CSS significa que podemos comenzar a usarlos hoy. Si realmente desea comenzar a usarlos en este momento, siempre que agregue una reserva, los navegadores que no sean compatibles simplemente ignorarán las nuevas propiedades hasta que se consideren válidas:
figure {
margin: 0;
padding: 4px;
/* Fall back (...to browsers which don't support alpha transparency). */
background: #FEFE7F;
color: #3F3FFE;
/* Current 'modern' browser support. */
background: rgba(255, 255, 0, 0.5);
color: rgba(0, 0, 255, 0.75);
/* Fall... foward? */
background: #ffff007F; /* Or, less accurately, #ff08 */
color: #0000ffbe; /* Or #00fc */
}
<figure>Hello, world!</figure>
Mientras esté viendo esta respuesta en un navegador que admita las propiedades background
y color
en CSS, el <figure>
elemento resultante del fragmento anterior se verá muy similar a esto:
Usando la versión más reciente de Chrome en Windows (v39.0.2171) para inspeccionar nuestro <figure>
elemento, veremos lo siguiente:
Los rgba()
valores anulan el retroceso hexadecimal de 6 dígitos , y nuestros valores hexadecimales de 8 dígitos se ignoran ya que el analizador CSS de Chrome los considera actualmente inválidos. Tan pronto como nuestro navegador admita estos valores de 8 dígitos, estos anularán los valores rgba()
.
ACTUALIZACIÓN 2018-07-04: Firefox, Chrome y Safari son compatibles con esta notación ahora, Edge todavía falta pero probablemente seguirá ( https://caniuse.com/#feat=css-rrggbbaa ).
rgb(0xff,\x80,#44)
asombrosamente representación octal parece York un pocorgb(0100, 0200,0300)
se#4080C0