HEX, RGB e HSL: entenda de vez os códigos de cor
Atualizado em 2026-08-25
Por que existem tantos formatos de cor
Se você já mexeu com design, site ou edição de imagem, esbarrou em códigos como #FF5733, rgb(255, 87, 51) e hsl(11, 100%, 60%). Os três descrevem exatamente a mesma cor — um laranja avermelhado. O que muda é a forma de descrever.
Cada formato foi criado com um propósito diferente. RGB descreve como a tela produz a cor. HEX é a mesma informação escrita de forma compacta. HSL descreve como o olho humano percebe a cor. Entender essa diferença é o que permite escolher o formato certo para cada tarefa.
RGB: como a tela produz cor
Toda tela — celular, monitor, TV — forma imagem misturando três luzes: vermelha, verde e azul. RGB significa exatamente isso: Red, Green, Blue.
Cada canal recebe um valor de 0 a 255, onde 0 é a luz apagada e 255 é a luz no máximo. Como são três canais com 256 níveis cada, o total de cores possíveis é 256 × 256 × 256 = 16.777.216. É daí que vem o famoso "16 milhões de cores".
Alguns valores de referência:
| Cor | RGB |
|---|---|
| Preto | rgb(0, 0, 0) |
| Branco | rgb(255, 255, 255) |
| Vermelho puro | rgb(255, 0, 0) |
| Verde puro | rgb(0, 255, 0) |
| Azul puro | rgb(0, 0, 255) |
| Amarelo | rgb(255, 255, 0) |
| Ciano | rgb(0, 255, 255) |
| Magenta | rgb(255, 0, 255) |
| Cinza médio | rgb(128, 128, 128) |
Repare que amarelo é vermelho + verde. Isso confunde quem está acostumado com tinta, onde amarelo é uma cor primária. A diferença é que tinta funciona por subtração de luz (o pigmento absorve parte do espectro) e a tela funciona por adição (as luzes se somam). São dois sistemas opostos.
HEX: RGB em hexadecimal
O código hexadecimal é a mesma informação do RGB, escrita na base 16 em vez da base 10.
Em #FF5733:
- FF é o vermelho
- 57 é o verde
- 33 é o azul
Cada par de caracteres representa um número de 0 a 255. Em hexadecimal, os dígitos vão de 0 a 9 e depois seguem com A, B, C, D, E, F, representando 10 a 15. Assim, FF = 15×16 + 15 = 255, e 57 = 5×16 + 7 = 87.
Ou seja, #FF5733 é exatamente rgb(255, 87, 51).
Por que usar hexadecimal
Duas razões práticas. Primeiro, compactação: sete caracteres contra até dezoito. Segundo, alinhamento: cada canal ocupa exatamente dois dígitos, sempre, o que torna o código fácil de ler e de manipular por programas. Se quiser entender melhor a matemática por trás disso, o conversor de base numérica mostra a conversão entre decimal e hexadecimal passo a passo.
A forma abreviada
Quando os dois dígitos de cada par são iguais, o código pode ser abreviado para três caracteres:
- #FFFFFF vira #FFF (branco)
- #000000 vira #000 (preto)
- #FF0000 vira #F00 (vermelho)
- #3366CC vira #36C
A abreviação só funciona nesse caso específico. #FF5733 não tem forma curta.
Transparência: os 8 dígitos
Existe também a variante de oito dígitos, onde o último par indica a opacidade. Em #FF5733CC, o CC (204 em decimal) corresponde a cerca de 80% de opacidade. Alguns valores úteis:
| Opacidade | Sufixo |
|---|---|
| 100% | FF |
| 75% | BF |
| 50% | 80 |
| 25% | 40 |
| 0% | 00 |
HSL: como o olho percebe cor
HSL significa Hue, Saturation, Lightness — matiz, saturação e luminosidade. É o formato mais próximo de como as pessoas realmente pensam sobre cor.
- Matiz (0 a 360°) é a cor em si, medida como um ângulo num círculo cromático. 0° é vermelho, 120° é verde, 240° é azul, e o círculo fecha de volta em 360°.
- Saturação (0 a 100%) é a intensidade. Em 0% a cor vira cinza; em 100% ela é o mais viva possível.
- Luminosidade (0 a 100%) vai do preto (0%) ao branco (100%), passando pela cor pura em 50%.
Nosso laranja #FF5733 em HSL é hsl(11, 100%, 60%): matiz 11° (bem próximo do vermelho), saturação máxima, luminosidade um pouco acima do meio.
Por que HSL é tão prático
Porque permite ajustes intuitivos. Quer a mesma cor mais clara? Aumente só a luminosidade. Quer uma versão dessaturada para um estado desabilitado? Reduza só a saturação. Quer a cor complementar? Some 180 ao matiz.
Fazer isso em HEX exige recalcular três valores sem uma relação óbvia entre eles. Em HSL, é mexer num número só.
Construindo paletas com HSL
O matiz como ângulo abre atalhos para composições clássicas:
- Complementar: matiz + 180°
- Análogas: matiz ± 30°
- Tríade: matiz, +120° e +240°
- Tétrade: matiz, +90°, +180° e +270°
Partindo de hsl(11, 100%, 60%), a complementar é hsl(191, 100%, 60%) — um azul-ciano. O conversor de cores mostra os três formatos ao mesmo tempo, o que facilita testar essas variações.
Convertendo entre os formatos
HEX para RGB
Separe em três pares e converta cada um de hexadecimal para decimal.
#2ECC71 → 2E, CC, 71 → 46, 204, 113 → rgb(46, 204, 113)
Para converter um par na mão: multiplique o primeiro dígito por 16 e some o segundo. CC = 12×16 + 12 = 204.
RGB para HEX
Converta cada canal para hexadecimal e junte, sempre com dois dígitos.
rgb(46, 204, 113) → 46 é 2E, 204 é CC, 113 é 71 → #2ECC71
O detalhe fácil de errar é o zero à esquerda: 9 vira 09, não 9.
RGB para HSL
A conta é mais longa. Em resumo: normalize os três canais para a faixa de 0 a 1, identifique o maior e o menor valor, e derive luminosidade da média entre eles, saturação da diferença, e matiz de qual canal ficou no topo. Na prática ninguém faz isso à mão — é o tipo de conversão que vale deixar para uma ferramenta.
Qual formato usar
| Situação | Formato recomendado |
|---|---|
| Passar uma cor para alguém | HEX (é o mais universal) |
| Ajustar tom, clarear ou escurecer | HSL |
| Aplicar transparência | RGB com alfa, ou HEX de 8 dígitos |
| Montar paleta harmônica | HSL |
| Copiar de um editor de imagem | RGB (é o que a maioria mostra) |
| Trabalhar com código legado | HEX |
Cores em impressão são outra história
Vale um aviso: tudo neste guia trata de cor em tela, no espaço RGB. Impressão usa CMYK — ciano, magenta, amarelo e preto —, um sistema subtrativo com um alcance de cores menor. Cores muito vibrantes na tela, especialmente verdes e azuis saturados, simplesmente não existem em CMYK e saem mais opacas na impressão.
Se o material vai para gráfica, converta a paleta para CMYK e confira uma prova impressa antes de aprovar. Nunca julgue cor de impressão pela tela.
Acessibilidade: contraste importa mais que beleza
Ao escolher cores para texto, o contraste entre o texto e o fundo precisa ser suficiente para quem tem baixa visão. As diretrizes internacionais de acessibilidade pedem razão mínima de 4,5:1 para texto normal e 3:1 para texto grande.
Uma pista rápida em HSL: se a diferença de luminosidade entre texto e fundo for pequena, o contraste provavelmente é insuficiente, por mais distintos que os matizes pareçam. Amarelo sobre branco é o exemplo clássico — cores bem diferentes, contraste péssimo.
Perguntas frequentes
#FF5733 e #ff5733 são a mesma cor? Sim. Maiúsculas e minúsculas são equivalentes em hexadecimal. Escolha um padrão e mantenha por consistência.
Por que a mesma cor parece diferente em telas diferentes? Porque cada tela tem calibração, brilho e gama de cores próprios. Para trabalhos que dependem de fidelidade, é preciso calibrar o monitor.
Existe cor que não pode ser representada em RGB? Sim. O olho humano enxerga cores fora do alcance do RGB de 8 bits, especialmente em verdes saturados. Espaços de cor mais amplos existem para esses casos.
Qual a diferença entre HSL e HSV/HSB? São primos. HSL usa luminosidade, onde 100% é sempre branco. HSV/HSB usa valor ou brilho, onde 100% é a cor pura. Editores de imagem costumam usar HSV; a web usa HSL.