Ferramentas CSS: Cores, Contraste, Clamp e Unidades

Converta cores HEX, RGB e HSL, calcule contraste WCAG, gere CSS clamp() e converta px, rem, em, vw e vh no navegador. Suíte frontend 100% local.

Revisão técnica: Cesar Gargiulo (segurança da informação)
Valim, o mascote do ValorFinal, representando a categoria Tecnologia

Processamento 100% local no seu navegador. Nenhum dado, texto, arquivo ou senha é enviado para servidor.

HEX#2563eb
RGBrgb(37, 99, 235)
HSLhsl(221, 83%, 53%)

Cores básicas do CSS em HEX, RGB e HSL, com o contraste

Deslize a tabela para o lado: são 6 colunas.

As 16 cores com nome do CSS nível 1 e o orange, do nível 2, com o código HEX, RGB e HSL e a razão de contraste com texto branco e com texto preto, com o veredito do nível AA para texto normal
CorHEXRGBHSLTexto brancoTexto preto
black Preto#000000rgb(0, 0, 0)hsl(0, 0%, 0%)21,00:1 passa1,00:1 reprova
silver Prata#c0c0c0rgb(192, 192, 192)hsl(0, 0%, 75%)1,82:1 reprova11,54:1 passa
gray Cinza#808080rgb(128, 128, 128)hsl(0, 0%, 50%)3,95:1 reprova5,32:1 passa
white Branco#ffffffrgb(255, 255, 255)hsl(0, 0%, 100%)1,00:1 reprova21,00:1 passa
maroon Bordô#800000rgb(128, 0, 0)hsl(0, 100%, 25%)10,95:1 passa1,92:1 reprova
red Vermelho#ff0000rgb(255, 0, 0)hsl(0, 100%, 50%)4,00:1 reprova5,25:1 passa
purple Roxo#800080rgb(128, 0, 128)hsl(300, 100%, 25%)9,42:1 passa2,23:1 reprova
fuchsia Fúcsia#ff00ffrgb(255, 0, 255)hsl(300, 100%, 50%)3,14:1 reprova6,70:1 passa
green Verde#008000rgb(0, 128, 0)hsl(120, 100%, 25%)5,14:1 passa4,09:1 reprova
lime Verde-limão#00ff00rgb(0, 255, 0)hsl(120, 100%, 50%)1,37:1 reprova15,30:1 passa
olive Oliva#808000rgb(128, 128, 0)hsl(60, 100%, 25%)4,20:1 reprova5,01:1 passa
yellow Amarelo#ffff00rgb(255, 255, 0)hsl(60, 100%, 50%)1,07:1 reprova19,56:1 passa
navy Azul-marinho#000080rgb(0, 0, 128)hsl(240, 100%, 25%)16,01:1 passa1,31:1 reprova
blue Azul#0000ffrgb(0, 0, 255)hsl(240, 100%, 50%)8,59:1 passa2,44:1 reprova
teal Azul-petróleo#008080rgb(0, 128, 128)hsl(180, 100%, 25%)4,77:1 passa4,40:1 reprova
aqua Ciano#00ffffrgb(0, 255, 255)hsl(180, 100%, 50%)1,25:1 reprova16,75:1 passa
orange Laranja#ffa500rgb(255, 165, 0)hsl(39, 100%, 50%)1,97:1 reprova10,63:1 passa

Nomes e HEX das 16 palavras-chave de cor do CSS nível 1 e do orange, que entrou no CSS nível 2, conforme a lista de cores com nome do MDN. RGB, HSL e as razões foram calculados pelo mesmo motor da ferramenta. O veredito é o do nível AA para texto normal (4,5:1, critério 1.4.3 da WCAG 2.2), sem arredondar a razão.

Em resumo

A página junta quatro conversões de CSS que rodam no navegador. A cor que abre a aba Cores, #2563eb, sai como rgb(37, 99, 235) e hsl(221, 83%, 53%): é a mesma cor escrita de três jeitos. No contraste, a conta segue os critérios 1.4.3 e 1.4.6 da WCAG 2.2, na versão do W3C de 12 de dezembro de 2024. Texto normal pede 4,5:1 no nível AA e 7:1 no AAA; texto grande pede 3:1 no AA. A escala vai de 1:1, com cores iguais, a 21:1, preto sobre branco.

O veredito sai da razão sem arredondar, como pede o W3C. Por isso o cinza #767676 passa sobre fundo branco, com 4,54:1, e o #777777, um tom acima, reprova com 4,48:1. O vermelho do CSS também engana: texto branco sobre #ff0000 dá 4,00:1 e reprova, enquanto o azul-petróleo (#008080) passa com 4,77:1.

O gerador de clamp() abre com uma fonte de 16 a 24 px entre telas de 320 e 1280 px e devolve clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem). Nenhuma cor nem medida sai do seu computador.

Outras ferramentas de frontend e interface

  • Conversor de px para remConverta px em rem e rem em px com a base que você quiser, com tabela pronta das medidas mais usadas. Explica por que rem respeita o tamanho de fonte escolhido no navegador e o que muda entre em e rem.
  • Teste de velocidadeMeça download, upload, ping, jitter e a latência com a rede cheia. Veja se a conexão aguenta chamada de vídeo, 4K e jogo online, e quanto do plano contratado chegou.
  • Cronômetro onlineCronômetro online com centésimos e voltas: parcial, total, a volta mais rápida e a mais lenta, cópia para planilha e CSV, tela cheia e atalhos de teclado. Mede pelo relógio interno do navegador e não atrasa com a aba em segundo plano.
  • Horário de BrasíliaRelógio com a hora certa de Brasília, sincronizado pelo servidor. Mostra quanto o relógio do seu celular ou computador está adiantado ou atrasado e a hora nos quatro fusos do Brasil.
  • Meu IPVeja o seu endereço IP público, o país do acesso, a versão do TLS e do HTTP e o que a sua conexão revela, com o horário da consulta na tela. A leitura vem do próprio valorfinal.com.br, sem serviço de terceiro.
  • Gerador de QR CodeGere QR Code grátis de link, WhatsApp, Pix, Wi-Fi, texto, e-mail, telefone, SMS e contato, escolha cor, margem e tamanho e baixe em PNG ou SVG. O código é estático: não expira e não passa por servidor.

Todas as ferramentas, por tarefa, estão em ferramentas de tecnologia online.

Gostou? Mostre pra todo mundo

Gere um card bonito com a marca do ValorFinal para postar nos Stories ou mandar no WhatsApp. Nada que você digitou aparece no card.

Coloque no seu site

Converta cores entre HEX, RGB e HSL, verifique o contraste de acessibilidade, gere CSS clamp() e converta unidades px, rem, em, vw e vh, tudo no navegador.

Como funciona a ferramenta

As conversões de cor usam as fórmulas padrão entre os espaços HEX, RGB e HSL. O contraste segue o cálculo de luminância relativa da WCAG. O clamp() é derivado de uma reta entre dois breakpoints, e a conversão de unidades usa a base de fonte informada e um viewport de referência.

O veredito de contraste sai da razão sem arredondar. O documento Understanding 1.4.3, do W3C, diz que o valor calculado não se arredonda antes de comparar com o piso, e que 4,499:1 não atinge 4,5:1. Quando o arredondamento em duas casas faria o número encostar no piso sem atingi-lo, a tela mostra três casas.

Para a conversão de px em rem com tabela pronta das medidas mais usadas e a explicação de por que rem respeita o tamanho de fonte do navegador, veja converter px para rem.

Para gerar imagens com cores definidas aqui, veja o gerador de QR Code; para formatar a folha de estilo, o formatador de código. A explicação de cada notação de cor, com a conta passo a passo, está no guia HEX, RGB e HSL no CSS.

Método

contraste = (L1 + 0,05) / (L2 + 0,05)

1rem = base font-size (px)

Referências: WCAG 2.2 do W3C, critérios 1.4.3 e 1.4.6 e o documento Understanding 1.4.3 (contraste), e CSS Values and Units (MDN). Cálculos locais no navegador.

Limitações

  • O contraste considera apenas as duas cores informadas, sem opacidade ou sobreposição.
  • vw e vh dependem do tamanho real da tela; aqui usa-se um viewport de referência.
  • Cores fora dos formatos HEX, rgb() e hsl() não são reconhecidas.
  • Passar na razão de contraste cobre só os critérios 1.4.3 e 1.4.6. Texto sobre imagem ou gradiente, foco e borda de campo têm critérios próprios.

Guia completo

HEX, RGB e HSL: como funcionam as cores no CSS

Entenda os formatos de cor HEX, RGB e HSL, como converter entre eles, como calcular contraste para acessibilidade e como usar cores com mais consistência em interfaces web, com exemplo prático.

Coloque esta ferramenta no seu site, de graça

Tem site, blog ou loja virtual? Esta ferramenta tem uma versão para incorporar: você copia um código e cola no seu HTML. Sem cadastro, sem mensalidade e sem limite de acessos, e ela roda no navegador de quem visita o seu site.

cores e contraste CSS para sitever todas as ferramentas para site

Calculadoras relacionadas

Guias sobre este tema

ValorFinal VIP: Sem anúncios, até 500 cenários salvos e comparação de cenários lado a lado.

Ferramenta transparente, com o método explicado

Atualizado em . Fontes: WCAG 2.1 (contraste) / CSS Values and Units / MDN.

Processamento local: esta ferramenta roda no seu navegador e nada é enviado a servidores automaticamente.

Como validamos

Referências técnicas

Links externos para o que foi consultado na construção desta página, com a natureza de cada fonte identificada. O conteúdo delas pode mudar sem aviso; em caso de divergência, vale sempre a fonte primária.

Incorpore esta calculadora no seu site (grátis)

Copie e cole o código no seu site. A calculadora se atualiza sozinha. O crédito ao ValorFinal vem junto do código e a gente agradece quem mantém, mas ele é opcional: pode remover sem perder o widget. O link sai com rel="nofollow", ou seja, não transfere autoridade de busca para a gente.

Perguntas frequentes

Quais ferramentas estão reunidas aqui?

São quatro abas. Cores HEX/RGB/HSL converte uma cor entre as três notações e aceita HEX de 3, 4, 6 ou 8 dígitos, rgb() e hsl(). Contraste WCAG calcula a razão entre a cor do texto e a do fundo e diz quais critérios de acessibilidade passam. CSS clamp() monta a expressão de tipografia fluida a partir de dois tamanhos e duas larguras de tela. Unidades px/rem/em converte uma medida para px, rem, em, vw e vh. A tabela pronta de px em rem fica numa página própria, o conversor de px para rem.

Como converter HEX para RGB?

Separe o HEX em três pares e converta cada par de hexadecimal para decimal. Em #2563eb, 25 vira 37, 63 vira 99 e eb vira 235, e o resultado é rgb(37, 99, 235). Cada par vai de 00 a ff, ou seja, de 0 a 255. O HEX curto de três dígitos repete cada dígito: #f80 é o mesmo que #ff8800. Na aba Cores basta colar o HEX: a página mostra o RGB e o HSL, hsl(221, 83%, 53%), cada um com botão de copiar.

Como funciona a verificação de contraste WCAG?

A ferramenta calcula a luminância relativa de cada cor pela fórmula da WCAG e divide a mais clara pela mais escura, depois de somar 0,05 às duas. A escala vai de 1:1, com duas cores iguais, a 21:1, preto sobre branco. O resultado é comparado com os pisos da WCAG 2.2: 4,5:1 para texto normal e 3:1 para texto grande no nível AA (critério 1.4.3), e 7:1 e 4,5:1 no nível AAA (critério 1.4.6). A comparação usa a razão sem arredondar, como pede o W3C.

Qual o cinza mais claro que passa no contraste sobre fundo branco?

Para texto normal no nível AA é o #767676, com 4,54:1. Um tom acima, o #777777, dá 4,48:1 e já reprova, embora na tela os dois pareçam iguais. No nível AAA, com piso de 7:1, o limite é o #595959. Para texto grande no AA, com piso de 3:1, dá para clarear até o #949494. Os três limites saem da mesma conta da ferramenta, aplicada aos 256 tons de cinza neutro.

Texto branco em botão vermelho passa no contraste?

Com o vermelho puro do CSS, não. Texto branco sobre #ff0000 dá 4,00:1, abaixo dos 4,5:1 que o nível AA pede para texto normal. O mesmo fundo com texto preto dá 5,25:1 e passa. O branco só vale ali para texto grande, de 18 pontos, ou 14 pontos em negrito, que o W3C converte para cerca de 24 px e 18,5 px. Um vermelho mais escuro resolve: o maroon do CSS (#800000) dá 10,95:1 com texto branco.

O que é o CSS clamp() e quando usar?

clamp(mínimo, preferido, máximo) devolve o valor preferido enquanto ele fica entre os dois limites. Quando o preferido mistura rem e vw, a fonte cresce com a largura da tela e para nos limites. A aba abre com uma fonte que vai de 16 px, numa tela de 320 px, a 24 px, numa de 1280 px, e devolve clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem). Numa tela de 768 px a fonte fica em cerca de 19,7 px. Serve para título e texto que precisam funcionar do celular ao monitor sem media query.

Os valores de vw e vh dependem da tela?

Sim. 1vw é 1% da largura da janela e 1vh é 1% da altura, então a mesma medida em px vira um vw diferente em cada tela. Para dar um número, a aba Unidades usa uma janela de referência de 1280 por 800 px, escrita ao lado do resultado: nela, 16 px são 1.25vw e 2vh. Já rem e em usam a base de fonte que você informar. No celular, a barra de endereço que aparece e some muda a altura visível, e foi para isso que o CSS criou as unidades svh, lvh e dvh.

Meus dados são enviados para servidor?

Não. As quatro conversões rodam em JavaScript no seu navegador, e nenhuma cor, medida ou expressão é transmitida ou gravada. Depois que a página carrega, as ferramentas continuam funcionando mesmo sem internet. Isso vale também para a paleta de um cliente que ainda não foi lançada: as cores que você testa aqui não saem do seu computador.

Posso copiar os resultados direto para o meu CSS?

Sim. Na aba Cores, cada linha (HEX, RGB e HSL) tem um botão Copiar, e o texto sai no formato que o CSS aceita, como rgb(37, 99, 235). No clamp(), o botão copia a declaração inteira, font-size: clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem);, pronta para colar numa regra. Na aba Unidades os valores aparecem com até quatro casas decimais. Para a tabela das medidas mais usadas já convertidas em rem, na base que você escolher, use o conversor de px para rem.

O que significam Passa e Reprova nos quadros da aba Contraste?

Cada quadro é um critério da WCAG 2.2. AA texto normal (4.5:1) é o piso do critério 1.4.3 para texto comum; AA texto grande (3:1) vale para texto de 18 pontos, ou 14 pontos em negrito; os dois quadros AAA são os pisos do critério 1.4.6. Passa quer dizer que a razão calculada, sem arredondar, é igual ou maior que o piso. Reprova quer dizer que ficou abaixo, mesmo que por milésimos. Quando o arredondamento em duas casas faria o número encostar no piso, a tela mostra três: o cinza #959595 sobre branco aparece como 2.995:1, e não como 3.00:1.

O que são Viewport mín e Viewport máx no gerador de clamp()?

São as larguras de tela, em px, entre as quais o tamanho cresce. Com a tela na largura de Viewport mín, a fonte vale o Mín (px); na de Viewport máx, vale o Máx (px); entre as duas, cresce em linha reta. Fora desse intervalo o clamp() trava o valor. O campo Base rem (px) diz quanto vale 1rem na sua página, e a expressão sai dividida por ele. Se o Máx for menor que o Mín, a fonte encolhe quando a tela cresce, e a ferramenta ordena os limites para o clamp() continuar válido.

Por que aparece um aviso quando a cor tem transparência?

Porque uma cor com canal alfa, como rgba(0, 0, 0, 0.5) ou #00000080, não é a cor que aparece na tela: o navegador a mistura com o que estiver atrás. A razão de contraste só faz sentido com a cor final. A ferramenta lê o alfa, calcula com a cor cheia e avisa que fez isso, em vez de mostrar um número que ninguém enxerga. Para um resultado fiel, faça a mistura antes: com 50% de preto sobre branco, por exemplo, a cor que aparece é um cinza médio, e é esse cinza, sem canal alfa, que vai no campo.