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:
Propiedad | Valor | Significado |
---|---|---|
color | Cambia el color del texto que está en el interior de un elemento. | |
background-color | Cambia 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
ybackground-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
Esquema | Descripción | Más info |
---|---|---|
Palabras clave especiales | ||
red | Establece un color mediante una palabra clave predefinida. | Ver palabras clave |
canvastext | Establece 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 |
#rrggbb | Notación RGB abreviada en hexadecimal . Notación recomendada | Ver 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:
Valor | Significado |
---|---|
transparent | Establece un color completamente transparente (valor por defecto de background-color ) |
currentColor | Establece 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:
Valor | Significado |
---|---|
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.