Apuntes css

¿Para qué quieres herencias cuando tienes !important?

Variables en CSS con :root

Desde CSS3 es posible definir variables que pueden usarse en cualquier parte del documento. Esto permite mantener el código más limpio, fácil de mantener y consistente, especialmente cuando se repiten colores, tamaños o valores comunes.

Definir variables

Las variables se definen dentro de un selector, normalmente :root, para que estén disponibles globalmente:

:root {
    --color-principal: #0077cc;
    --tamano-texto: 16px;
}

:root representa el elemento <html> y garantiza que las variables sean accesibles desde cualquier lugar del CSS.

Usar variables

Se usan con la función var():

body {
    color: var(--color-principal);
    font-size: var(--tamano-texto);
}

Puedes incluir un valor alternativo si la variable no está definida:

h1 {
    color: var(--color-secundario, black);
}

Variables locales

Las variables también pueden definirse dentro de un selector para ser usadas solo en ese contexto:

.alerta {
    --color-principal: red;
    color: var(--color-principal);
}

En este caso, si un elemento está dentro de .alerta, usará el valor local. Si no, usará el global definido en :root.

Actualizar variables con JavaScript

Es posible cambiar el valor de una variable CSS desde JavaScript:

<script>
document.documentElement.style.setProperty('--color-principal', 'green');
</script>

Ventajas de usar variables

  • Evita repetir valores (ej. colores corporativos).
  • Permite cambiar fácilmente un tema entero.
  • Facilita el mantenimiento y el trabajo en equipo.
  • Compatible con media queries y pseudoestados.

Buenas prácticas

Usa nombres claros, preferiblemente en inglés y con guiones: --primary-color, --spacing-unit.

Define variables globales en :root y variables específicas en componentes si es necesario.

No abuses: no conviertas cada valor en una variable. Usa variables para los que realmente cambian o se reutilizan.

Valores universales: Las propiedades que usan var() pueden combinarse con initial, inherit y unset.

Compatibilidad: Las variables CSS están soportadas en todos los navegadores modernos, pero no en IE.

TOP