DevPath · Aprenda a programar ESPTEN

CSS moderno, acessibilidade e arquitetura

Custom properties: as variáveis do CSS

Variáveis nativas no CSS

Você chegou ao último módulo de Web, e a gente abre com uma daquelas funções que dão gosto: enfim o CSS tem variáveis de verdade.

As custom properties (ou variáveis CSS) são valores reutilizáveis que você declara com um nome que começa por dois traços -- e lê com a função var(). Ao contrário das variáveis de um pré-processador como Sass, são dinâmicas: vivem no DOM, cascateiam e são herdadas. Essa diferença muda tudo, você já vai ver.

Declarar em :root

O lugar habitual para definir variáveis globais é o pseudo-seletor :root, que representa o documento (equivale a <html> mas com maior especificidade). Assim ficam disponíveis em toda a página.

:root {
  --cor-primaria: #2563eb;
  --cor-texto: #1f2937;
  --espaco: 16px;
  --raio: 8px;
}

Usar com var()

.botao {
  background: var(--cor-primaria);
  color: white;
  padding: var(--espaco);
  border-radius: var(--raio);
}

var() aceita um valor de reserva caso a variável não esteja definida:

.aviso {
  color: var(--cor-aviso, #b91c1c); /* usa #b91c1c se --cor-aviso não existir */
}

Por que importam: temas e manutenção

Aqui está o ouro. Sem variáveis, mudar o azul da sua marca era buscar e substituir trinta vezes rezando para não esquecer nenhuma. Com variáveis:

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

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

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

Mudar data-tema em <html> reescreve as variáveis e, com elas, toda a aparência. Essa é a base de um modo escuro sustentável: um atributo, mil estilos mudando de uma vez. Mágica da boa.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
CSS moderno: clamp(), aspect-ratio, :has() e mais →