Como escolher a paleta de cores de um site

Para escolher a paleta de cores de um site, comece pela identidade da marca (ou por uma imagem de referência), defina uma cor primária, uma secundária e uma de destaque, monte uma escala de neutros e as cores de estado, distribua tudo com a regra 60-30-10 e só então verifique contraste, daltonismo e modo escuro. O resultado final não é uma lista de cinco HEX bonitos, e sim um pequeno sistema de tokens que cobre fundos, textos, bordas, botões e mensagens.

Este passo a passo usa um exemplo concreto do início ao fim: um site institucional com azul como cor principal. Você pode trocar os valores pelos da sua marca e seguir as mesmas etapas.

1. Parta da marca ou de uma imagem

Se a marca já tem um manual, use as cores oficiais como ponto de partida e anote os códigos exatos. Se ela ainda não existe ou tem só um logotipo, escolha uma referência visual que represente o tom desejado: uma foto do produto, do ambiente, um moodboard.

Nesta etapa, pense também na personalidade da marca. O guia de psicologia das cores mostra por que a adequação à marca e ao público pesa mais do que listas de significados.

2. Defina a primária, a secundária e a de destaque

Três papéis bastam para a maioria dos sites:

PapelExemploOnde usar
Primária #1D4ED8Links, botões principais, cabeçalhos de seção, elementos da marca
Secundária #0F766EÁreas de apoio, ícones, selos, variação visual entre seções
Destaque #F97316Uma única ação muito importante, badges, avisos pontuais

A primária desse exemplo tem razão de contraste de 6,7:1 com o branco, então funciona como cor de texto de link e de fundo de botão com texto branco. A secundária, um verde-azulado escuro, chega a 5,47:1. Já o laranja de destaque tem só 2,8:1 com o branco: ele serve como fundo de botão com texto escuro (#0F172A sobre #F97316 dá cerca de 6,4:1), mas não como cor de texto sobre fundo claro.

A cor de destaque deve ser rara. Se ela aparecer em todo lugar, deixa de chamar atenção.

3. Monte os neutros e as cores semânticas

Na maior parte de um site, o que o visitante vê são neutros: fundo, texto, bordas, divisórias. Em vez de cinzas puros, use cinzas levemente tingidos com o matiz da primária. Eles parecem mais harmônicos e menos “sem vida”. Uma escala de cinzas azulados de exemplo:

As cores semânticas comunicam estado e precisam ser consistentes em todo o site:

EstadoTom para texto e ícone (fundo claro)Contraste com branco
Sucesso #15803D5,02:1
Erro #B91C1C6,47:1
Aviso #B453095,02:1
Informação #0369A15,93:1

Repare que os tons mais vivos e populares, como um verde #16A34A (3,3:1) ou um amarelo-alaranjado #D97706 (3,19:1), não alcançam 4,5:1 com o branco. Eles podem aparecer em ícones grandes ou fundos, mas o texto precisa do tom mais escuro.

Fundos suaves para mensagens

Alertas e mensagens de formulário costumam combinar um fundo bem claro com texto e ícone no tom escuro do mesmo estado. Para informação, por exemplo, um fundo #EFF6FF com texto #1D4ED8 funciona bem. Defina essas duplas uma vez, para cada estado, e reutilize em todo o site: assim, um alerta de erro sempre terá a mesma aparência, esteja no checkout ou na página de contato.

4. Aplique a regra 60-30-10 e crie escalas

A regra 60-30-10, herdada da decoração de interiores, é um ponto de partida para distribuir o peso visual:

Não é uma medida exata de pixels, e sim um lembrete de hierarquia: poucas cores fortes, muito espaço neutro.

No exemplo, isso se traduz em fundo #F8FAFC e cartões brancos ocupando a maior parte da tela, o azul #1D4ED8 no cabeçalho, nos links e nos botões principais, e o laranja #F97316 apenas no botão “Solicitar orçamento”. Em um painel administrativo, com muita informação, a proporção de neutros pode subir ainda mais; em uma landing page de campanha, a cor da marca pode ocupar mais espaço.

Escalas de 50 a 900

Cada cor da marca precisa de variações para hover, fundos suaves, bordas e modo escuro. O padrão mais usado é uma escala de 50 (quase branco) a 900 (bem escuro). Para a primária do exemplo:

50 #EFF6FF · 100 #DBEAFE · 200 #BFDBFE · 300 #93C5FD · 400 #60A5FA · 500 #3B82F6 · 600 #2563EB · 700 #1D4ED8 · 800 #1E40AF · 900 #1E3A8A

Você pode gerar os tons claros misturando a cor-base com branco e os escuros misturando com preto (ou com um azul muito escuro, para manter a saturação) no misturador de cores. Depois ajuste à mão: os passos devem parecer visualmente regulares, não matematicamente iguais.

5. Planeje o modo escuro

Modo escuro não é inverter as cores. Uma inversão direta transforma o texto #0F172A em um branco quase puro sobre preto, o que gera brilho excessivo, e deixa as cores da marca saturadas demais sobre o fundo escuro.

6. Confira contraste e daltonismo

Com a paleta rascunhada, teste cada combinação real de texto e fundo, e não só as cores isoladas. A WCAG pede 4,5:1 para texto normal, 3:1 para texto grande e 3:1 para bordas de campos, ícones e outros componentes de interface. Meça cada par no verificador de contraste.

Em seguida, simule como a interface aparece para pessoas com daltonismo no simulador de daltonismo. Pares como verde de sucesso e vermelho de erro podem ficar muito parecidos em deuteranopia e protanopia, por isso acompanhe a cor com ícones, textos ou padrões. Links no meio do texto merecem o mesmo cuidado: se a única diferença entre o link e o texto ao redor for a cor, mantenha o sublinhado. O guia de contraste e acessibilidade detalha os critérios.

7. Transforme a paleta em tokens CSS

Separe dois níveis: os tokens primitivos, que guardam os valores da escala, e os tokens semânticos, que dizem para que cada cor serve. Os componentes usam só os semânticos; assim, trocar o tema é mudar poucas linhas.

:root {
  /* primitivos */
  --blue-400: #60A5FA;
  --blue-700: #1D4ED8;
  --slate-50: #F8FAFC;
  --slate-200: #E2E8F0;
  --slate-500: #64748B;
  --slate-800: #1E293B;
  --slate-900: #0F172A;
  --orange-500: #F97316;

  /* semânticos */
  --color-bg: var(--slate-50);
  --color-surface: #FFFFFF;
  --color-text: var(--slate-900);
  --color-text-muted: var(--slate-500);
  --color-primary: var(--blue-700);
  --color-accent: var(--orange-500);
  --color-success: #15803D;
  --color-danger: #B91C1C;
}

.button-primary { background: var(--color-primary); color: #FFFFFF; }

Para o modo escuro, a função light-dark() define os dois valores no mesmo token. Ela exige a propriedade color-scheme:

:root {
  color-scheme: light dark;
  --color-bg: light-dark(#F8FAFC, #0F172A);
  --color-surface: light-dark(#FFFFFF, #1E293B);
  --color-text: light-dark(#0F172A, #E2E8F0);
  --color-primary: light-dark(#1D4ED8, #60A5FA);
}

Se precisar dar suporte a navegadores mais antigos, a alternativa clássica é a media query:

@media (prefers-color-scheme: dark) {
  :root {
    --color-bg: #0F172A;
    --color-surface: #1E293B;
    --color-text: #E2E8F0;
    --color-primary: #60A5FA;
  }
}

Erros comuns

Próximos passos

Revise sua paleta nesta ordem: marca e referência, papéis das cores, neutros e estados, distribuição 60-30-10 e escalas, modo escuro, contraste e daltonismo, tokens. Para colocar em prática: