DevPath · Aprende a programar ESPTEN

CSS moderno, accesibilidad y arquitectura

Custom properties: las variables de CSS

Variables nativas en CSS

Llegaste al último módulo de Web, y lo abrimos con una de esas funciones que dan gustito: por fin el CSS tiene variables de verdad.

Las custom properties (o variables CSS) son valores reutilizables que declaras con un nombre que empieza por dos guiones -- y lees con la función var(). A diferencia de las variables de un preprocesador como Sass, son dinámicas: viven en el DOM, cascadean y se heredan. Esa diferencia lo cambia todo, ya verás.

Declarar en :root

El sitio habitual para definir variables globales es el pseudo-selector :root, que representa el documento (equivale a <html> pero con mayor especificidad). Así quedan disponibles en toda la página.

:root {
  --color-primario: #2563eb;
  --color-texto: #1f2937;
  --espacio: 16px;
  --radio: 8px;
}

Usar con var()

.boton {
  background: var(--color-primario);
  color: white;
  padding: var(--espacio);
  border-radius: var(--radio);
}

var() admite un valor de reserva por si la variable no está definida:

.aviso {
  color: var(--color-aviso, #b91c1c); /* usa #b91c1c si --color-aviso no existe */
}

Por qué importan: temas y mantenimiento

Aquí está el oro. Sin variables, cambiar el azul de tu marca era buscar y reemplazar treinta veces rezando por no olvidar ninguna. Con variables:

:root { --fondo: white; --texto: #111; }

[data-tema="oscuro"] {
  --fondo: #0f172a;
  --texto: #e2e8f0;
}

body { background: var(--fondo); color: var(--texto); }

Cambiar data-tema en <html> reescribe las variables y, con ellas, toda la apariencia. Esa es la base de un modo oscuro mantenible: un atributo, mil estilos cambiando a la vez. Magia de la buena.

Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
CSS moderno: clamp(), aspect-ratio, :has() y más →