Um conversor de RGB para hex é um pequeno utilitário que transforma três valores inteiros de canal 0-255 (`rgb(255 87 51)`) no código hex de 6 caracteres que codifica a mesma cor (`#FF5733`). RGB e hex são os dois formatos em torno dos quais toda folha de estilo web, ferramenta de design e pipeline de pixel de imagem foi construída desde o fim dos anos 1990, e a conversão entre eles é a operação mais comum em ferramentas de cor — em par com sua direção inversa, essa transformação exata roda milhões de vezes por dia em todo plugin do Figma, pré-processador CSS, build de design tokens e UI de seletor de cor na web. RGB é o formato endereçado por canal que APIs de hardware, chamadas de desenho em canvas, manipulação de buffer de imagem, atributos de cor OpenGL e a maioria dos SDKs gráficos reportam nativamente — três inteiros 0-255 separados que mapeiam diretamente para os subpixels vermelho, verde e azul de um LCD ou para os fósforos de um CRT. Hex é o formato conciso de copiar e colar que Figma, Sketch, Photoshop e todo PDF de guia de marca esperam como saída — uma string base 16 de 6 caracteres que cabe confortavelmente em uma propriedade customizada CSS e se lê de relance quando seus olhos aprendem os padrões. Converter entre eles é mecânico: converta cada inteiro para um par base 16 de 2 dígitos e concatene com um `#` na frente. Esta ferramenta roda essa conversão ao vivo enquanto você digita, sem botão "Converter" para clicar, e expõe todo outro formato de cor comum (HSL, OKLCH, OKLAB, HSV, HWB, CMYK, mais as 148 cores nomeadas do CSS) ao lado da saída HEX, grátis.
**O próprio formato hex merece um olhar mais próximo.** O hex CSS padrão vem em quatro formas legais. A forma canônica de 6 dígitos `#RRGGBB` empacota três canais de 8 bits em 6 dígitos base 16 — 16.777.216 cores no total (256³). A forma abreviada de 3 dígitos `#RGB` é uma forma comprimida onde cada dígito é duplicado para formar o equivalente de 6 dígitos: `#F73` expande para `#FF7733`, *não* `#000F73` (essa é uma das regras mais erradas na sintaxe de cor do CSS). A forma alfa de 8 dígitos `#RRGGBBAA` acrescenta um par alfa de 2 dígitos numa escala 0-`FF`, com `00` totalmente transparente e `FF` totalmente opaco. A forma abreviada alfa de 4 dígitos `#RGBA` espelha a abreviada de 3 dígitos duplicando cada dígito, incluindo o dígito alfa. O hex é case-insensitive — `#ff5733` e `#FF5733` interpretam de forma idêntica, embora a maioria dos guias de marca escolha uma convenção de caixa e mantenha. A escolha de base 16 é conveniente porque um dígito hex = nibble = 4 bits, dois dígitos = byte = 0-255, então um par único de 2 dígitos mapeia limpinho para um canal de 8 bits sem desperdício de padding.
A matemática da conversão vai nos dois sentidos de forma limpa. **RGB para HEX**: para cada canal, chame `value.toString(16).padStart(2, '0')` para obter o par hex de 2 dígitos (o `padStart` importa — sem ele, o valor de canal 5 seria serializado como `'5'` em vez de `'05'`, produzindo hex inválido), depois concatene. Para RGB com alfa (`rgb(R G B / A)` ou `rgba(R, G, B, A)`), multiplique o float alfa 0-1 por 255, arredonde para o inteiro mais próximo, codifique em hex como um 4º par e emita a forma de 8 dígitos. **HEX para RGB** é o inverso: parse o hex de 6 dígitos `#RRGGBB` como três números base 16 de 2 dígitos via `parseInt(hex.slice(1, 3), 16)`, etc. As duas direções são bit-exatas: 16² = 256, exatamente correspondendo à faixa de byte 0-255 que cada canal ocupa, então um round-trip RGB → HEX → RGB produz os inteiros originais verbatim sem deriva de float.
**Por que HEX em vez de RGB no CSS?** Três motivos. O hex é mais curto — `#FF5733` tem 7 caracteres contra `rgb(255, 87, 51)` com 16 caracteres, uma diferença relevante quando empacotado em uma propriedade customizada CSS ou em um objeto de configuração do Tailwind. O hex não tem bugs de espaços em branco — minificadores CSS, serializadores JSON e ferramentas de linha de comando todos lidam com uma string de 7 caracteres limpamente, sem precisar se preocupar com correspondência de parênteses ou escape de vírgulas. E o hex é o formato que todo o ecossistema de ferramentas de design fala nativamente — o painel de cor do Figma, as amostras do Sketch, o seletor de cor do Photoshop, todo PDF de guia de marca, todo callout de cor de um shot do Dribbble — todos exportam hex por padrão. O caminho de copiar e colar do designer para o desenvolvedor tem formato de hex, e é por isso que a conversão RGB-para-HEX é tão frequente: desenvolvedores recebem RGB de uma ferramenta não-design (uma chamada de canvas, um conta-gotas de screenshot, um sensor de hardware) e precisam transformá-lo na forma hex que o resto da stack espera.
O fluxo RGB → HEX desta ferramenta é uma direção de uma família de 5 spokes que compartilham o mesmo conversor de cor unificado por baixo. O conversor de cores unificado dedicado é o hub — ele mostra todos os 9 formatos simultaneamente editáveis e é a ferramenta certa quando seu fluxo precisa de mais do que apenas RGB e hex. Os spokes de direção única miram intenções específicas de busca no Google: o caminho inverso conversor de hex para RGB para a direção inversa (pegando um hex do Figma e extraindo os inteiros 0-255), o conversor de hex para HSL para o espaço cognitivo legado de designer, o conversor de hex para OKLCH para design systems perceptualmente uniformes modernos (Tailwind v4 e shadcn agora padronizam OKLCH) e o conversor de hex para CMYK para aproximações de preparação de impressão. Todos os cinco spokes e o hub compartilham o mesmo motor de parsing e a mesma matemática de conversão, então os resultados são garantidamente idênticos pela família toda. Cada conversão roda localmente no seu navegador — seus valores RGB nunca são enviados, nunca registrados e zero requisições de rede disparam enquanto você digita. Confira no DevTools.