Converter RGB em HEX
O Conversor de RGB para HEX transforma três canais decimais em uma cor hexadecimal. Cada canal é dividido por 16: o quociente é o primeiro dígito hexadecimal e o resto é o segundo, então 136 vira 88 e 255 vira ff. Um valor de alfa é acrescentado como um quarto par, arredondado para o mais próximo dos 256 níveis — o único ponto em que a ida e volta não é exata.
Digite uma cor à esquerda. São aceitos valores hexadecimais com ou sem cerquilha, rgb(), hsl(), oklch() e nomes de cores CSS.
Como funciona o Converter RGB em HEX?
Cada canal é um número inteiro de 0 a 255, e dois dígitos hexadecimais cobrem exatamente esse intervalo. Divida por 16: o quociente é o primeiro dígito, o resto é o segundo. 136 ÷ 16 é 8 com resto 8, então 88. 255 ÷ 16 é 15 com resto 15, e 15 é f, então ff.
Canais com um só dígito precisam do zero à esquerda
Um canal abaixo de 16 produz um dígito, e descartar o zero desloca todos os dígitos seguintes. rgb(255 8 0) é #ff0800, e não #ff800 — que tem cinco dígitos e não é cor nenhuma. É o bug clássico de um conversor feito à mão, e ele só aparece em cores escuras, onde ninguém olha.
O que acontece com um canal não inteiro
O CSS aceita rgb(255.6 136 0), e o hexadecimal não pode guardar uma fração. O valor é arredondado para o inteiro mais próximo, que é o que o navegador também faz. Se seus canais saíram de um cálculo — uma cor clareada, um passo interpolado —, o hex que você recebe de volta é a versão arredondada, e convertê-lo novamente não devolverá a fração com que começou.
Alfa, e a única etapa com perda
Um alfa de 0.5 vira 80, porque 0.5 × 255 é 127.5 e arredonda para 128. Convertendo de volta, dá 0.502. Todo canal de cor faz a ida e volta de forma exata; o alfa não, porque é uma fração armazenada em 256 níveis. A diferença está muito abaixo de qualquer coisa visível, e vai aparecer no momento em que você comparar duas strings em um teste.
Porcentagens
rgb(100% 53.3% 0%) é a mesma cor que rgb(255 136 0) : as porcentagens em rgb() são resolvidas contra 255, e não contra 100. Isso pega as pessoas que convertem a partir de uma ferramenta de design que exporta valores de 0 a 100, onde 53% significa 135, e não 53.
Canais RGB
rgb(255 136 0)
A cor hexadecimal
#ff8800 255 → ff (15 × 16 + 15) 136 → 88 (8 × 16 + 8) 0 → 00 (0 × 16 + 0)
Quais opções e casos-limite o Converter RGB em HEX suporta?
| Parâmetro | Tipo | Padrão | Comportamento e casos-limite |
|---|---|---|---|
| 0 | canal | 00 | O mínimo. Os dois dígitos são zero. |
| 8 | canal | 08 | Abaixo de 16, então o zero à esquerda é obrigatório. Removê-lo corrompe o valor inteiro. |
| 128 | canal | 80 | O ponto médio, e exatamente 8 × 16. |
| 136 | canal | 88 | 8 × 16 + 8. |
| 255 | canal | ff | O máximo. 15 × 16 + 15. |
| alfa 0.5 | fração | 80 | 127.5 é arredondado para 128. Converter de volta dá 0.502 — a única etapa desta conversão que não é exata. |
| 255.6 | não inteiro | ff | Arredondado, como o navegador faz. Um canal fracionário não sobrevive ao hex. |
| 100% | porcentagem | 255 | As porcentagens são resolvidas com base em 255. 53% é 135, não 53. |
Perguntas frequentes
Como converter RGB para hex manualmente?
Divida cada canal por 16. O quociente é o primeiro dígito e o resto é o segundo, com 10–15 escritos como a–f. 136 ÷ 16 = 8 com resto 8, então 88. Escreva os três pares em ordem — vermelho, verde, azul — com um # na frente. A única armadilha é um canal abaixo de 16: ele ainda precisa de dois dígitos, então 8 é 08, e não 8.
Por que minha cor hexadecimal tem cinco dígitos?
Um canal abaixo de 16 perdeu o zero à esquerda. rgb(255 8 0) é #ff0800; escrito como #ff800, tem cinco caracteres, o que não é uma cor hexadecimal válida e faz os navegadores ignorarem a declaração inteira. Este é o bug mais comum em código de conversão escrito à mão, e ele só aparece em cores escuras.
Converter RGB para hex perde alguma informação de cor?
Não, quanto à cor em si — as duas notações guardam os mesmos três bytes, então a ida e volta é exata. O alfa é a exceção: é uma fração no CSS, e o hex o armazena em 256 níveis, então 0.5 vira 80 e volta como 0.502. Invisível na tela, visível em uma comparação de strings.
Para o que rgb(100% 50% 0%) é convertido?
#ff8000. As porcentagens em rgb() são frações de 255, não de 100, então 50% é 127.5, que arredonda para 128 — hex 80. Se uma ferramenta de design exportar esses números como valores de 0 a 100, eles significam outra coisa, e vale conferir essa diferença antes de colar.
Devo escrever rgba() ou usar um hex de 8 dígitos?
Qualquer um; ambos são suportados em todos os lugares atuais. O hex de 8 dígitos é mais compacto e mantém a cor inteira em um token só, o que combina com design tokens e variáveis. rgba() é mais fácil de ler e de editar à mão, e é o que a maioria das folhas de estilo existentes já contém. O único argumento real é a consistência com o código ao redor.
Por que o hex do designer não bate com o RGB que meu conta-gotas de tela informa?
Gerenciamento de cor. Um conta-gotas de tela amostra os pixels depois que o perfil do monitor foi aplicado, então um monitor de gamute amplo informa números diferentes para a mesma cor de origem sRGB. Amostre a partir do arquivo de design, e não de uma captura de tela, ou configure o conta-gotas para sRGB, e os dois voltam a bater.