Variables CSS y modo oscuro

Lo mismo que usa este sitio para cambiar de tema sin repetir un solo color.

Si tu color de marca aparece en veinte lugares del CSS y necesitas cambiarlo, tendrías que buscarlo veinte veces. Una variable CSS —también llamada custom property— lo guarda en un solo lugar.

Se define con dos guiones al principio, --nombre, y se usa con var(--nombre).

:root es un selector que apunta al elemento más alto de toda la página. Definir variables ahí las hace disponibles en cualquier parte del CSS, porque cualquier elemento hereda de la raíz.

También se pueden redefinir dentro de un selector más específico, y solo cambian ahí adentro:

El celular o computador del visitante ya sabe si está en modo oscuro o claro. CSS puede preguntarle con @media (prefers-color-scheme: dark), y redefinir las variables solo para ese caso.

Si además quieres un botón para que el visitante elija a mano, se combina con lo que ya sabes de JavaScript: cambiar un atributo en el HTML, y que el CSS reaccione a él.

Definir variables CSS en :root, redefinirlas dentro de una clase específica, adaptarlas automáticamente con prefers-color-scheme, y armar un interruptor manual combinándolas con JavaScript.

Ahora, algo que toda página necesita tarde o temprano: formularios que además validen lo que la gente escribe.