Conversor de HEX para RGB

Converta cores entre hexadecimal, RGB e HSL com um seletor, quatro formatos CSS e uma prévia de contraste que sincroniza enquanto você digita.

A conversão de cor acontece localmente no seu navegador. Nada é enviado para lugar nenhum.

Conversor

1
Formatos CSS
HEX—
RGB—
RGBA—
HSL—
HSLA—
Prévia de contraste
Texto de exemplo
Texto de exemplo

Como funciona

As três notações descrevem a mesma trinca de inteiros, e a ferramenta mantém um estado canônico único — R, G, B de 0 a 255 mais um alfa — e redesenha cada visualização a partir dele. Hexadecimal são só esses bytes em base 16, então aquela conversão é empacotamento, não matemática.

Empacotamento HEX
#RRGGBB escreve cada canal vermelho, verde e azul com dois dígitos hexadecimais: 37 vira 25, então rgb(37, 99, 235) é #2563EB. A forma curta #abc equivale a #aabbcc e é aceita; a forma de 8 dígitos acrescenta o byte alfa (#2563EB80 ≈ 50 %).
RGB → HSL
Escale os canais a 0–1, pegue cmax e cmin, e então L = (cmax + cmin) / 2 e S = (cmax − cmin) / (1 − |2L − 1|), que é 0 no cinza. O matiz é o ângulo do canal máximo — se vermelho é o máximo, H = 60° × ((G − B) / Δ mod 6) — assim o matiz sobrevive a todo ajuste posterior de luminosidade.
HSL → RGB
A viagem inversa: C = (1 − |2L − 1|) × S é a croma, X = C × (1 − |(H/60 mod 2) − 1|), escolhe-se o setor da roda de cores e soma-se m = L − C/2 a cada canal. A ferramenta escreve os dois caminhos à mão — sem atalho de parsing CSS — e arredonda com consistência, então hsl → rgb → hsl volta dentro de uma unidade.

Perguntas frequentes

Por que designers preferem HSL a RGB?

Porque os canais do HSL respondem às três perguntas que alguém realmente faz sobre uma cor: que matiz, quão saturada, quão clara? Derivar um estado hover vira luminosidade menos 8 %, paletas tonais viram um matiz só com luminosidades em degraus, e apagar um alerta para cinza é levar um número a zero. Em RGB as mesmas edições pedem tentativa e erro porque os canais misturam matiz e brilho.

Uso rgba() ou hex de 8 dígitos tipo #RRGGBBAA?

Os dois funcionam em todo navegador moderno — o hex de 8 dígitos chegou com o CSS Color Level 4 (Chrome/Safari/Edge já há anos, Firefox 49+). rgba() tem a cauda de compatibilidade mais longa e ainda é o que guias de estilo e pré-processadores emitem. A ferramenta mostra os dois para você seguir a convenção do seu projeto; note que em hex a ordem é R-G-B-A, nunca A primeiro.

O que eram as "websafe colors" e por que o termo ainda aparece?

Telas do início dos anos 90 exibiam 256 cores, então os designers limitavam a paleta a 6×6×6 = 216 cores cujos canais RGB são múltiplos de 51 (#33, #66, #99, #CC, #FF). aquela paleta sobrevivia ao dithering daquelas telas. Os monitores modernos a tornaram obsoleta, exceto em pixel art retrô — por isso #FF6600 ainda soa como um laranja "clássico" da web.

Por que o seletor de cor ignora o controle de alfa?

O elemento nativo input type=color não tem noção de transparência — ele sempre devolve um #RRGGBB opaco. Por isso o alfa é um controle à parte que afeta apenas as strings de saída RGBA e HSLA; a amostra e a prévia de contraste desenham a cor totalmente opaca de propósito.

Algo é enviado para um servidor?

Não. A análise, a matemática RGB↔HSL e cada string de saída são calculadas por algumas dezenas de linhas de JavaScript no seu navegador. Nenhuma cor que você digita sai da página, e o conversor funciona com a rede desligada.