InícioFerramentasGerador de paletas acessíveis
Gerador de paleta de cores acessível a partir da sua marca
Introduza a cor da marca e obtenha uma escala de dez passos, de 50 a 900, construída no espaço percetual OKLCH. Cada passo mostra o contraste com texto branco e preto, a paleta indica que pares de passos cumprem as WCAG AA e o resultado exporta-se como propriedades personalizadas de CSS, cores do Tailwind ou design tokens.
—
| Token | Cor | OKLCH | Texto branco | Texto preto | APCA Lc B / P |
|---|
Pares de texto e fundo que cumprem AA (4,5:1)
Passo de fundo → passos da mesma paleta que podem ser usados como texto por cima.
Método. Os passos distribuem-se uniformemente na luminosidade OKLCH entre a cor da marca e os extremos da escala (L ≈ 97,5 % para 50, ≈ 25 % para 900); o tom mantém-se, o croma diminui em direção ao branco e as cores fora do gamut perdem croma até caberem no sRGB. Contraste: rácio das WCAG 2.2, sem arredondar para cima.
Tudo é calculado no seu navegador — nada do que introduz é enviado para lado nenhum.
Como utilizar
- Introduza a cor da marcaCole o HEX do manual de marca ou escolha-a no seletor. O gerador encontra o passo com a luminosidade certa e cria tons mais claros acima e mais escuros abaixo.
- Consulte a tabela de contrasteCada passo mostra o contraste com texto branco e com texto preto. «AA» significa 4,5:1 para texto normal; «Grande», apenas 3:1 para texto grande e componentes de interface.
- Escolha pares de texto e fundoA lista de pares mostra que passos podem ser usados como texto em cada fundo — por exemplo, texto 700 sobre fundo 50 num aviso informativo.
- ExporteEscolha variáveis CSS, configuração do Tailwind, JSON ou design tokens do W3C, dê um nome à paleta e copie o código para o seu projeto.
Porque gerar tons em OKLCH
A forma mais simples de clarear ou escurecer uma cor é misturá-la com branco ou preto em sRGB ou alterar o L do HSL. Ambas produzem escalas irregulares. A luminosidade do HSL não é percetual: um amarelo a 50 % parece muito mais claro do que um azul a 50 %, pelo que o «mesmo» passo tem contrastes muito diferentes consoante o tom. Misturar com branco em sRGB desvia o tom: os azuis puxam para o roxo e os vermelhos para o cor-de-rosa.
O OKLCH, forma cilíndrica do espaço OKLab publicado por Björn Ottosson em 2020 e hoje parte do CSS Color Level 4, separa as três coisas que importam no design:
Como o L acompanha o quão clara a cor parece, passos iguais em L geram escalas uniformes em qualquer tom, e o contraste com branco ou preto varia de forma previsível de passo para passo. É por isso que o Tailwind CSS v4 define a sua paleta predefinida em OKLCH.
Como este gerador constrói a escala
- A cor da marca é convertida para OKLCH e colocada no passo com a luminosidade de referência mais próxima (ou no passo escolhido). Mantém o HEX exato.
- Os passos mais claros distribuem-se uniformemente em L entre a cor da marca e L ≈ 97,5 % (passo 50); os mais escuros, entre a cor da marca e L ≈ 25 % (passo 900).
- O tom não muda. O croma diminui em direção ao extremo claro — tons muito claros com croma total parecem fluorescentes — e desce no máximo um terço em direção ao escuro.
- Qualquer cor fora do gamut sRGB regressa a ele por redução de croma, mantendo L e H, como recomenda o CSS Color 4.
- Cada HEX é arredondado a 8 bits por canal e o contraste é calculado com esse valor arredondado — o mesmo que vai para o código.
Como ler as colunas de contraste
Para cada passo, a tabela mostra o rácio de contraste das WCAG 2.2 com texto branco puro (#fff) e preto puro (#000):
- AA — pelo menos 4,5:1: adequado para texto corrido, rótulos e ligações.
- Grande — entre 3:1 e 4,5:1: apenas para texto a partir de 24 px (18,66 px a negrito) e elementos não textuais como ícones, contornos e indicadores de foco (WCAG 1.4.11).
- Não — abaixo de 3:1: apenas decoração, nunca texto.
Como os passos seguem a luminosidade percetual, o resultado é semelhante na maioria dos tons: o texto branco cumpre AA de 600 a 900 e o preto de 50 a 500. Praticamente nenhuma cor cumpre com ambos: 4,5:1 face a branco e a preto ao mesmo tempo só é possível numa faixa muito estreita de luminância relativa (0,175–0,183). É por isso que os design systems usam 600 ou 700 para botões principais com texto branco e reservam 400–500 para preenchimentos, gráficos e texto grande.
A coluna APCA mostra o contraste de luminosidade (Lc) do rascunho das WCAG 3 para texto branco e preto. Acima de 75 é confortável para texto corrido, acima de 60 para rótulos de interface e acima de 45 para títulos. O APCA ainda não é norma: use-o para escolher entre opções que já cumprem as WCAG 2.2.
Pares dentro da paleta
Interfaces com tons — avisos informativos, linhas selecionadas, etiquetas, dicas de onboarding — colocam um passo escuro sobre um passo claro do mesmo tom. A lista de pares indica, para cada fundo, que passos de texto atingem 4,5:1. Como regra prática, passos separados por cinco posições ou mais (50 com 600, 100 com 700) costumam cumprir; vizinhos, nunca.
Como usar a paleta num design system
- Dê nomes por função, não por valor. Exporte a escala como
--brand-50 … --brand-900e atribua funções por cima:--color-primary: var(--brand-600),--color-primary-text: var(--brand-700),--color-info-bg: var(--brand-50). Se a marca mudar, altera apenas uma lista. - Documente os pares aprovados. Registe que passo de texto vai em que fundo, para que ninguém ponha texto 400 sobre fundo 100 à pressa.
- O tema escuro é outro mapeamento. Reutilize a escala ao contrário — passos claros para texto, escuros para superfícies — e volte a verificar os pares: combinações escuras que cumprem as WCAG 2 podem continuar a parecer apagadas, algo que o APCA mostra melhor.
- Os estados também precisam de contraste. Hover e pressionado costumam descer um passo; o indicador de foco precisa de 3:1 face ao fundo envolvente.
- As cores semânticas (sucesso, aviso, erro) geram-se da mesma forma, cada uma a partir da sua cor base. O amarelo e o verde-lima só são reconhecíveis em passos claros, onde o texto branco não cumpre — use texto escuro sobre eles.
Para verificar um par específico, incluindo cores fora da paleta ou camadas semitransparentes, use o verificador de contraste de cores.
Fontes
- Ottosson B. A perceptual color space for image processing, 2020 — OKLab e OKLCH, matrizes de conversão.
- W3C. CSS Color Module Level 4 — notação oklch() e ajuste ao gamut por redução de croma.
- W3C. Web Content Accessibility Guidelines (WCAG) 2.2 — critérios 1.4.3, 1.4.6 e 1.4.11, luminância relativa e rácio de contraste.
- Somers A. APCA — Accessible Perceptual Contrast Algorithm, apca-w3 0.0.98G-4g — valores Lc.
- W3C Design Tokens Community Group. Design Tokens Format Module, rascunho — estrutura $type e $value da exportação de tokens.
Perguntas frequentes
O que significam os números de 50 a 900 numa paleta?
São passos de luminosidade de um mesmo tom, popularizados pelo Material Design e pelo Tailwind CSS: 50 é o tom mais claro, 900 o mais escuro, e 500 ou 600 costuma estar perto da cor da marca. Os números são nomes, não medidas, pelo que qualquer passo pode ser ajustado.
Porque usar OKLCH em vez de HSL para gerar tons?
A luminosidade do OKLCH corresponde ao brilho percebido; a do HSL não: um amarelo e um azul com a mesma luminosidade HSL parecem muito diferentes e têm contrastes muito diferentes. Passos iguais em OKLCH geram escalas uniformes em qualquer tom, sem desvio de matiz ao clarear.
Que passo da paleta devo usar para texto sobre branco?
O primeiro passo com pelo menos 4,5:1 face a branco na tabela. Nas paletas deste gerador costuma ser o 600, porque os passos seguem a luminosidade percetual; em paletas baseadas em HSL, o amarelo, o lima e o ciano precisam muitas vezes de 800 ou mais escuro. Para texto grande e ícones basta 3:1, pelo que um passo mais claro pode servir.
Porque nenhum passo cumpre com texto branco e preto?
Para atingir 4,5:1 face a branco e a preto ao mesmo tempo, a cor precisa de uma luminância relativa entre 0,175 e 0,183 — uma faixa tão estreita que quase nenhum passo lá cai. É o esperado: use texto branco nos passos escuros e texto escuro nos claros.
A cor exata da minha marca vai estar na paleta?
Sim. A cor da marca mantém o HEX exato no passo onde a luminosidade encaixa melhor, ou no passo escolhido, e os restantes passos são construídos à volta dela.
Como uso a exportação no Tailwind CSS?
No Tailwind v3, cole a exportação do Tailwind em theme.extend.colors no tailwind.config.js e use classes como bg-brand-600. No Tailwind v4, exporte variáveis CSS e mude-lhes o nome para --color-brand-600 dentro de um bloco @theme.
Mais em Design de produto
- Verificador de contraste de cores
Este par de cores de texto e fundo cumpre o WCAG AA ou AAA?
- Gerador de escala tipográfica
Que tamanhos de letra formam uma escala tipográfica coerente e fluida?
- Tempo de leitura de tooltips e tours
Os utilizadores têm tempo para ler um tooltip ou um passo do tour?
- Verificador de textos de tooltips
Este tooltip é curto, claro e leva à ação?
- Calculadora SUS
Qual é a pontuação SUS da interface e a usabilidade é boa?