Códigos de colores

Establecer colores de texto y de fondo


Uno de los primeros cambios de estilo que hacemos cuando aprendemos CSS es hacer variaciones en los colores de primer plano y de fondo de un documento HTML o de cualquiera de sus elementos o partes. Sin embargo, indicar el color específico no es una tarea fácil. Hay múltiples formas de definir un color en CSS, algunas más sencillas, otras más complejas.

Propiedades de color

Primero vamos a ver las propiedades CSS que podemos utilizar para cambiar el color de texto y el color de fondo de un elemento HTML:

PropiedadValorSignificado
colorCambia el color del texto que está en el interior de un elemento.
background-colorCambia el color de fondo de un elemento.

Como podemos ver en la tabla anterior, la propiedad color establece el color del texto, mientras que la propiedad background-color establece el color de fondo del elemento. De esta forma, podemos hacer cosas como estas:

.element {
  width: 150px;
  height: 150px;
  background-color: indigo;   /* Color de fondo */
  color: white;               /* Color de texto */
}
<div class="element"></div>

Sin embargo, aunque se suele hacer mucho en fases de aprendizaje, lo normal no suele ser indicar colores con palabras clave, ya que es una forma poco precisa de hacerlo, sino utilizar alguna función CSS de colores que veremos a continuación.

Las propiedades color y background-color no son las únicas en las que podemos establecer colores. A medida que avancemos, encontraremos más propiedades donde usarlos.

Formas de usar colores en CSS

En CSS podemos utilizar en muchos lugares y de muchas formas alternativas. En la siguiente tabla puedes observar muchas de las formas existentes:

EsquemaDescripciónMás info
Palabras clave especiales
redEstablece un color mediante una palabra clave predefinida.Ver palabras clave
canvastextEstablece el color de texto por defecto del sistema operativo.-
Espacio de color RGB
rgb()Usa una función rgb() (rojo, verde y azul).Ver función RGB
#rrggbbNotación RGB abreviada en hexadecimal. Notación recomendadaVer formato Hexadecimal
hsl()Usa una función hsl() (color, saturación y brillo).Ver función HSL
hwb()Usa una función hwb() (color, claridad y oscuridad).Ver función HWB
Espacio de color independiente del dispositivo
lab()Usa una función lab() y oklab() (luminosidad CIE, eje A y eje B).Ver función LAB y OKLAB
lch()Usa una función lch() y oklch() (luminosidad CIE, saturación, color).Ver función LCH y OKLCH

A continuación iremos explicando cada uno de estos formatos para entender como se especifican los colores en CSS y utilizar el método que más se adapte a nuestras necesidades.

Consejo: Existen formas para extraer colores de páginas o partes de la pantalla. Se llaman color dropper o color picker. Buscadores como Google, editores como VSCode o incluso el Developer Tools del propio navegador. Si estás en Windows, te recomiendo la aplicación Power Toys.

Palabras clave

Antes de meternos a entender las funciones de color como rgb(), hsl() u otros, vamos a ver las palabras clave predefinidas o del sistema. Son muy limitadas, pero nos pueden servir como primera opción para entender como funciona todo.

Palabras clave predefinidas

El primer caso (el más sencillo pero también el más limitado) permite establecer el color utilizando palabras reservadas de colores, como red, blue, orange, white, navy, yellow u otras. Existen más de 140 palabras clave para indicar colores:

Además, existen algunos valores especiales que puedes utilizar cuando quieras especificar un color, como colores transparentes o el color actual del texto, muy útil para SVG, por ejemplo:

ValorSignificado
transparentEstablece un color completamente transparente (valor por defecto de background-color)
currentColorEstablece el mismo color que se está utilizando para el texto (tanto en CSS, como en SVG)

Veamos algunos ejemplos de palabras clave de color:

.element {
  background-color: blue;
  background-color: transparent;
  background-color: indigo;
  background-color: rebeccapurple;  /* En honor a Rebeca, la hija de Eric Meyer */
}

Como hemos dicho, estas palabras clave son limitadas, por lo que si necesitamos una tonalidad muy específica puede ser insuficiente, y sería mejor utilizar uno de los códigos o funciones de color que veremos en los próximos artículos.

Colores del sistema

Además de las palabras clave predefinidas anteriores, también tenemos algunas otras palabras clave para hacer referencia a ciertos colores establecidos por el sistema operativo. Estas palabras clave son las siguientes:

ValorSignificado
canvas
Color de fondo del contenido de una aplicación o documento.
canvastext
Color de texto de una aplicación o documento. Color de texto por defecto.
linktext
Enlace no visitado y no activo.
visitedtext
Enlace ya visitado.
activetext
Enlace activo.
buttonface
Color de fondo de un botón pulsable.
buttontext
Color de texto de un botón pulsable.
buttonborder
El color del borde un botón pulsable.
field
Color de fondo de campos de texto <input>.
fieldtext
Color de texto de campos de texto <input>.
highlight
Color de fondo de textos seleccionados.
highlighttext
Color de texto de textos seleccionados.
selecteditem
Color de fondo de ítems seleccionados.
selecteditemtext
Color de texto de ítems seleccionados.
mark
Color de fondo de un texto especialmente marcado <mark>.
marktext
Color de texto especialmente marcado <mark>.
graytext
Color de texto desactivado.

Los cuadritos anteriores se calculan a partir del sistema operativo en tu navegador. Si tienes un sistema operativo que no soporta alguna de estas palabras clave, te aparecerá con fondo rojo rayado.

Canales alfa o transparencia

En algunos casos, es muy posible que necesitemos indicar un color con cierto grado de transparencia. Hasta ahora, solo hemos utilizado la palabra clave transparent, que es transparente al 100%. Pero más adelante veremos como utilizar transparencias parciales mediante canales alfa.

Además, también existe la propiedad opacity, mediante la cuál podemos hacer que un elemento y su contenido o elementos hijos tengan una transparencia parcial o completa. La veremos más adelante.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev