Pular para o conteúdo
nearnull

Matriz de Contraste de Paleta

Verifique todas as combinações de texto e fundo de uma paleta de uma vez, com razões de contraste e resultados WCAG AA e AAA. Funciona totalmente no seu navegador: nada é enviado a nenhum servidor.

Uma cor por linha, em qualquer formato. Até 10 cores; duplicatas são unificadas.

8 de 20 pares passam no AA
Fundo → Texto ↓
#111827
#ffffff
#2563eb
#f59e0b
#e5e7eb
#111827
Aa 17.73:1 AAA
Aa 3.43:1 AA grande
Aa 8.26:1 AAA
Aa 14.32:1 AAA
#ffffff
Aa 17.73:1 AAA
Aa 5.16:1 AA
Aa 2.14:1 Falha
Aa 1.23:1 Falha
#2563eb
Aa 3.43:1 AA grande
Aa 5.16:1 AA
Aa 2.4:1 Falha
Aa 4.17:1 AA grande
#f59e0b
Aa 8.26:1 AAA
Aa 2.14:1 Falha
Aa 2.4:1 Falha
Aa 1.73:1 Falha
#e5e7eb
Aa 14.32:1 AAA
Aa 1.23:1 Falha
Aa 4.17:1 AA grande
Aa 1.73:1 Falha

AAA: 7:1 ou mais. AA: 4.5:1 ou mais. AA grande: 3:1 ou mais, suficiente só para texto grande (24px, ou 18.7px em negrito) e componentes de interface.

O que é uma matriz de contraste?

Uma matriz de contraste compara cada cor de uma paleta com todas as outras, como texto e como fundo, para você ver de relance quais combinações são legíveis. Cada célula mostra uma amostra com aquela cor de texto sobre aquele fundo, sua razão de contraste WCAG 2.x e o nível que alcança: AAA a partir de 7:1, AA a partir de 4.5:1, e AA para texto grande e componentes de interface a partir de 3:1. Em vez de verificar pares um por um, você cola a paleta inteira e tem o panorama completo, que é como os design systems documentam quais cores podem ser combinadas.

Exemplos

Verificando todos os pares de uma paleta em código:

JavaScript
// every ordered pair, skipping a color on itself
for (const text of palette)
  for (const bg of palette)
    if (text !== bg) console.log(text, bg, contrast(text, bg));
Python
from itertools import permutations

for text, bg in permutations(palette, 2):
    print(text, bg, round(contrast(text, bg), 2))
CSS
/* a passing pair from the matrix, as tokens */
:root {
  --text-on-surface: #111827;
  --surface: #e5e7eb;
}

Casos de uso

Documentar um design system

Publique quais cores de texto e fundo podem ser combinadas, assim ninguém precisa verificar o contraste de novo a cada tela nova.

Auditar uma paleta de marca

Cole as cores da marca e descubra na hora quais podem levar texto corrido e quais são só decorativas.

Escolher cores de botões e badges

Compare preenchimentos candidatos com texto branco e escuro em uma só visão para ficar com os que funcionam com os dois.

Gráficos e rótulos de dados

Verifique qual cor de rótulo continua legível sobre cada cor de série antes de colocar valores dentro de barras ou fatias.

Perguntas frequentes

Por que cada par aparece duas vezes?
A razão é a mesma nos dois sentidos, mas texto e fundo são papéis diferentes. Texto azul sobre branco e texto branco sobre azul têm a mesma razão, mas talvez você queira só um dos dois no seu design, então a matriz mostra ambos.
Por que as células da diagonal estão vazias?
Seriam cada cor sobre si mesma, que sempre tem razão 1:1 e nunca é uma combinação real.
O que significa AA grande?
Uma razão entre 3:1 e 4.5:1 passa no WCAG AA só para texto grande (pelo menos 24 pixels CSS, ou cerca de 18.7 em negrito) e para ícones, bordas e outros componentes de interface. Texto corrido precisa de 4.5:1.
Como as cores transparentes são tratadas?
O alpha é ignorado e cada cor é tratada como opaca, porque uma entrada da paleta não diz o que estaria atrás dela. Para verificar uma cor translúcida sobre um fundo real, achate-a antes com o Conversor de Opacidade HEX.
Meus dados são enviados a algum servidor?
Não. Cada razão é calculada no seu navegador com JavaScript puro. Nada do que você informa é transmitido ou armazenado.