Diseño / Design

Generador de variables CSS

Definí colores, espaciados, tipografía y radios. Generá un bloque :root listo para pegar en tu hoja de estilos.

Instantáneo🔒En tu navegadorSin registro
En vivo

Qué son las variables CSS

Las variables CSS (también llamadas custom properties) son valores reutilizables que se definen una vez y se referencian en cualquier parte del CSS. La sintaxis es --mi-variable: valor para definir y var(--mi-variable) para usar. A diferencia de las variables de Sass, las CSS viven en runtime: podés cambiarlas con JS o con media queries y todo el sistema se actualiza.

Por qué importan

  • Single source of truth: cambiás un valor y se actualiza en todos lados.
  • Theming dinámico: dark mode, alto contraste, temas personalizados.
  • Componentes reutilizables: los componentes consumen variables, no valores fijos.
  • Cascade nativo: las variables respetan herencia, lo que permite scoped overrides.

Estructura recomendada

El patrón estándar es definir todas las variables globales en :root:

:root {
  --color-primary: #0f172a;
  --color-accent: #059669;
  --bg: #ffffff;
  --text: #09090b;
  --radius: 8px;
  --space: 1rem;
}

Después usás var(--color-primary) donde haga falta.

Categorías típicas

  • Color: primario, acento, fondo, texto, bordes, estados (success, error, warning).
  • Tipografía: font-family, tamaños, pesos, line-heights.
  • Spacing: una escala (4, 8, 16, 24, 32, 48, 64).
  • Radios: sm, md, lg, xl o uno único base.
  • Sombras: shadow-xs, sm, md, lg.
  • Transiciones: tiempos y easings consistentes.

Dark mode con una media query

El uso más poderoso de variables es para dark mode. Definís el set claro en :root y el oscuro dentro de @media (prefers-color-scheme: dark). Los componentes no saben de modos: consumen --bg y --text, y CSS hace el resto.

:root {
  --bg: white;
  --text: black;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: black;
    --text: white;
  }
}

Manipulación con JavaScript

Para cambiar una variable desde JS:

document.documentElement.style.setProperty('--color', '#fff');

Esto te permite implementar selectores de tema, sliders que afectan el design system en vivo, modos de accesibilidad y cualquier cambio dinámico sin recompilar nada.

Buenas prácticas

Nombres semánticos por sobre nombres descriptivos: --color-primary es mejor que --blue. Si mañana el primario cambia a verde, no tenés que renombrar todo. Mantené una escala consistente para spacings y tipografía: 4, 8, 16, 24 funciona mejor que valores arbitrarios. Y agrupá las variables por categoría con comentarios claros.

Preguntas frecuentes

¿CSS variables o Sass?

CSS para runtime, theming y JS dinámico. Sass para compilación estática.

¿Cómo las cambio con JS?

document.documentElement.style.setProperty(). Funciona sin recompilar.

¿Funcionan en @media?

Sí. Podés redefinirlas en media queries para cambiar el sistema según viewport o tema.

¿Te sirvió este generador?