Skip to content

Conversor de RGB para Hex

Converta RGB para hex no seu navegador — inteiros, porcentagens e alfa via rgba, todos suportados. Grátis, instantâneo, sem cadastro, suas cores nunca saem da página.

Sem rastreamento Roda no navegador Grátis
Toda conversão de cor acontece localmente no seu navegador. Nenhum dado é enviado para qualquer servidor.
Gama: sRGB Display P3 Rec2020
Contraste contra:
AA AA-Lg AAA AAA-Lg · APCA Lc
Simulação de daltonismo (8 tipos)
Protanopia (cego para vermelho)
Deuteranopia (cego para verde)
Tritanopia (cego para azul)
Acromatopsia (total)
Protanomalia (deficiência de vermelho)
Deuteranomalia (deficiência de verde)
Tritanomalia (deficiência de azul)
Acromatomalia (parcial)
Tints / Shades / Tones / Harmonies

Tints

Shades

Tones

Harmonies

Copiar como código
Referência de cores comuns
Revisado para conformidade com CSS Color 4, suporte de entrada RGB com inteiros + porcentagem + alfa, correção de emissão de alfa em hex de 8 dígitos e exatidão bit-a-bit do round-trip entre RGB e HEX pela faixa 0-255. — Go Tools Engineering Team · May 27, 2026

O que é um Conversor de RGB para Hex?

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.

// Serialize {r, g, b, alpha} → canonical hex string
// Emits 6-digit #RRGGBB when alpha === 1, 8-digit #RRGGBBAA otherwise.
function formatHex({ r, g, b, alpha = 1 }) {
  const pair = (v) => Math.round(v).toString(16).padStart(2, '0').toUpperCase();
  const rgb = pair(r) + pair(g) + pair(b);
  if (alpha >= 1) return `#${rgb}`;
  const a = pair(alpha * 255);
  return `#${rgb}${a}`;
}

console.log(formatHex({ r: 255, g: 87, b: 51 }));              // '#FF5733'
console.log(formatHex({ r: 59, g: 130, b: 246 }));             // '#3B82F6'
console.log(formatHex({ r: 255, g: 87, b: 51, alpha: 0.5 })); // '#FF573380'
console.log(formatHex({ r: 5, g: 0, b: 0 }));                  // '#050000' — padStart matters

Principais Recursos

Todas as Formas de Entrada RGB Interpretadas de Forma Idêntica

Moderno separado por espaços `rgb(255 87 51)`, legado separado por vírgulas `rgb(255, 87, 51)`, canais em porcentagem `rgb(100% 34% 20%)`, alfa moderno via barra `rgb(255 87 51 / 0.5)` e legado `rgba(255, 87, 51, 0.5)` todos interpretam de forma idêntica. O parser normaliza toda forma de entrada para a mesma tupla RGB interna antes da serialização hex, então você pode colar qualquer forma que sua fonte produzir — o triplo inteiro do Photoshop, um `rgba()` de folha de estilo, uma tupla da Canvas API — sem reformatação manual.

Saída Hex em Maiúscula nas Formas de 6 ou 8 Dígitos

O campo HEX expõe o valor como `#FF5733` para cores opacas e `#FF573380` para as com alfa (forma de 8 dígitos). Maiúscula por padrão para consistência com a maioria dos guias de marca; um replace mecânico inverte para minúscula se seu style guide exigir. As duas formas são CSS válido e vêm em todo navegador evergreen. A forma alfa de 8 dígitos chegou em todos os principais navegadores em 2018; para fallback no IE 11, a forma legada `rgba()` ainda está bem ali no campo RGB.

Bit-Exato, Sem Deriva de Float

RGB → HEX é matemática inteiro-para-string: `value.toString(16).padStart(2, '0')` produz o par hex canônico de 2 dígitos com zero envolvimento de float. A direção inversa (`parseInt(pair, 16)`) é igualmente exata. Um round-trip RGB → HEX → RGB → HEX produz a entrada original verbatim, indefinidamente. A fonte-de-verdade interna em OKLCH significa que mesmo a cadeia mais longa RGB → HSL → OKLAB → HEX permanece bit-estável, o que conversores legados roteando por HSL não garantem.

Canal Alfa Codificado de Forma Limpa

RGB com alfa (`rgb(255 87 51 / 0.5)` ou `rgba(255, 87, 51, 0.5)`) emite a forma hex de 8 dígitos (`#FF573380`) automaticamente. O float alfa multiplica por 255 e arredonda para o inteiro mais próximo antes da codificação em hex: `0.5 × 255 = 128 = 0x80`. A saída cai de volta para hex de 6 dígitos quando o alfa é igual a 1 para evitar vazar pares `FF` no final em folhas de estilo. Útil para migração de design tokens onde valores alfa em `rgba()` precisam fazer round-trip para a forma moderna de hex de 8 dígitos.

Oito Outros Formatos Visíveis Simultaneamente

O mesmo RGB que você cola também alimenta HSL, HSV, HWB, OKLCH, OKLAB, CMYK e a cor nomeada CSS mais próxima — todos visíveis de relance na mesma página. Você nunca fica trancado em RGB → hex apenas. Se um colega de equipe precisar da tripla OKLCH para um token Tailwind v4, da cor nomeada mais próxima para prosa de documentação ou da aproximação CMYK para um orçamento de impressão, os valores já estão lá com seus próprios botões Copiar.

Contraste WCAG + APCA Embutido

Passe uma tupla RGB e a linha de contraste imediatamente a pontua contra branco e preto usando WCAG 2.1 (piso regulatório: 4,5:1 para corpo de texto, 7:1 para AAA) e APCA Lc (sucessor proposto do WCAG 3: alvo `|Lc| ≥ 75` para corpo de texto). Útil quando você acaba de converter uma tupla RGB para hex e quer verificar se a cor de marca resultante é realmente legível como cor de corpo de texto antes de embarcar.

Copiar como CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Abaixo do seletor, a seção Copiar como código transforma a cor atual em snippets prontos para colar em cinco plataformas: propriedade customizada CSS (`--color-brand: #FF5733`), token `@theme` do Tailwind v4, literal `Color(red:green:blue:)` do SwiftUI, constante `Color(0xFFFF5733)` do Jetpack Compose, `Color(0xFFFF5733)` do Flutter. A sintaxe exata que cada plataforma espera, pronta para jogar em um asset catalog iOS, um arquivo de tema Android ou um `ThemeData` do Flutter.

100% No Navegador — Sem Upload, Sem Rastreamento

Todo parsing de RGB, serialização hex, pontuação de contraste e geração de paleta roda localmente no seu navegador. Seus valores RGB nunca são transmitidos, nunca registrados em servidor, nunca analisados. Zero requisições de rede enquanto você digita — confira no DevTools. Seguro para paletas de marca não anunciadas, design tokens internos, mockups em rascunho sob NDA e qualquer outro trabalho de cor confidencial.

Hash de URL Compartilhável para a Cor Exata

A cor atual codifica para o hash da URL como `#hex=ff5733` automaticamente a cada mudança. Copie a URL, cole em uma thread do Slack ou uma issue do GitHub, e qualquer um que abrir cai na mesma tupla RGB com o mesmo resultado hex. O hash vive apenas na sua barra de endereço e nunca é transmitido ao servidor (navegadores não incluem fragmentos de URL em requisições HTTP), então mesmo compartilhar o link não vaza a cor para terceiros.

Alternativas ao Conversor de RGB para Hex

RapidTables RGB to Hex

ferramenta de navegador

O resultado padrão do Google para "rgb to hex" — um formulário de mão única com três caixas de número RGB entrando, hex saindo, sem outros formatos visíveis. Útil para consultas pontuais vindas de busca. Não tem OKLCH, verificação de contraste, detecção de gama, tratamento de alfa e a visão simultânea de múltiplos formatos. Esta ferramenta vence em todo eixo, exceto no caso minimalista de conversão única.

ColorHexa

ferramenta de navegador

Páginas SEO de longa data por cor com metadados profundos: conversões, paletas, harmonias, gradientes para qualquer RGB consultado. UI datada (começo dos anos 2010), sem suporte a OKLCH, sem contraste APCA, sem tratamento de gama ampla. Forte para descoberta SEO de uma cor específica via Google; mais fraco para fluxos ativos de conversão onde digitar em uma UX de campos unificados é mais rápido.

Calculadora RGB da W3Schools

ferramenta de navegador

Toggle HEX/RGB/HSL amigável para iniciantes em uma página focada em ensino, onipresente em resultados de busca. Sem OKLCH, sem tratamento de alfa além de rgba, sem recursos avançados. Útil como referência ao lado do conteúdo explicativo da W3Schools. Esta ferramenta vence em todo outro eixo: mais formatos, matemática perceptual, recursos de gama + contraste + CVD, exportação moderna de código para Tailwind v4 / SwiftUI / Compose / Flutter.

Color Picker do DevTools do Navegador

recurso embutido do navegador

Chrome, Firefox e Safari DevTools todos vêm com um color picker que converte RGB para hex inline quando você clica em uma amostra de cor no painel CSS. Grátis, sem instalação, sempre disponível. Não tem OKLCH, não tem URLs compartilháveis, não tem exportação de código para plataformas não-web (SwiftUI, Compose). Vá para o DevTools quando já estiver depurando CSS; vá para esta ferramenta quando precisar de saída cross-platform.

Medidor de Cor Digital do macOS

app nativo do macOS

Vem com todo Mac desde o OS X — passe o mouse sobre qualquer pixel e leia os valores RGB / hex / lineares. Excelente para amostrar cores de pixel de qualquer app na tela. Não aceita triplos RGB colados para conversão; é um amostrador de tela, não um conversor. Use o botão EyeDropper no seletor desta ferramenta (apenas navegadores Chromium) para a mesma capacidade de amostragem de tela dentro do navegador.

ConvertingColors

ferramenta de navegador

Páginas SEO por cor cobrindo muitos espaços (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB). Não tem suporte moderno a OKLCH e a UX de edição em campos unificados. Páginas de conteúdo auto-geradas parecem fazenda de conteúdo, mas os dados de conversão estão corretos. Bom para garimpar metadados de cor individuais via Google; esta ferramenta é mais rápida para fluxos ativos.

Exemplos de RGB para Hex

Entrada de rgb() CSS → hex para SwiftUI

rgb(255 87 51)

Saída HEX: `#FF5733`. O fluxo clássico cross-platform — uma folha de estilo CSS declara uma cor de marca na sintaxe moderna `rgb()`, o time iOS precisa do hex para jogar em uma extensão SwiftUI `Color(hex:)` ou em um asset catalog. Cada canal converte independentemente: `255 → FF`, `87 → 57`, `51 → 33`, concatenados com um `#` na frente. O mesmo hex também cola limpinho no Android Compose, Flutter e Figma — hex continua sendo a língua franca para handoff de cor cross-platform em 2026.

Inteiros RGB do Photoshop de designer → variável CSS

rgb(59 130 246)

Saída HEX: `#3B82F6`. O Color Picker da Adobe reporta RGB como três inteiros 0-255 (no Photoshop, Illustrator e InDesign); o time front-end precisa do hex para jogar em uma propriedade customizada CSS como `--color-brand: #3B82F6`. Esse triplo específico é o `blue-500` do Tailwind — `59 = 0x3B`, `130 = 0x82`, `246 = 0xF6`. Colar aqui uma vez produz o hex correspondente mais a tripla OKLCH para migração de tokens Tailwind v4, tudo em um passo só.

RGB com alfa → hex de 8 dígitos

rgb(255 87 51 / 0.5)

Saída HEX: `#FF573380`. O float alfa multiplica por 255 (`0.5 × 255 = 127.5`, arredondado para 128), depois converte para um par hex de 2 dígitos (`128 = 0x80`) acrescentado depois do hex RGB. O hex CSS de 8 dígitos com alfa chegou nativamente a todos os navegadores evergreen em 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Para suporte a navegadores pré-2018, a forma legada `rgba(255, 87, 51, 0.5)` ainda está disponível; a conversão é mecânica e preserva a mesma cor exatamente.

Canais RGB em porcentagem → hex

rgb(100% 50% 0%)

Saída HEX: `#FF8000`. O CSS Color 4 permite canais em porcentagem — cada porcentagem mapeia para a faixa 0-255 com `valor × 255 / 100`, depois arredonda para o inteiro mais próximo (`50% × 255 = 127.5 → 128 = 0x80`). Formas de porcentagem e inteiro são intercambiáveis e produzem saída hex idêntica. A sintaxe de porcentagem às vezes é preferida em folhas de estilo escritas à mão pela legibilidade quando proporções de canal importam mais que valores inteiros brutos; a saída hex normaliza ambas as entradas para a mesma string canônica de 6 dígitos.

Conversões Comuns de RGB → Hex

Tabela de referência das 10 tuplas RGB mais convertidas e seus equivalentes hex — primárias puras, secundárias puras e duas cores de marca do mundo real da paleta Tailwind.

Preto

rgb(0 0 0) #000000

Preto puro. Todos os três canais em zero — a ausência de luz emitida. Código hex (#000000).

rgb(0 0 0) #000000

Preto puro em tela raramente é a escolha de design certa — experimente `#111` ou OKLCH com luminosidade 0,1-0,15 para corpo de texto mais suave.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Branco

rgb(255 255 255) #FFFFFF

Branco puro. Todos os três canais no seu valor máximo (255). A cor mais brilhante em sRGB.

rgb(255 255 255) #FFFFFF

Fundos brancos puros podem produzir cansaço visual em ambientes escuros — considere `#fafafa` ou OKLCH 0,98 para alternativas mais quentes.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Vermelho

rgb(255 0 0) #FF0000

Vermelho puro. Canal R no máximo, G e B em zero. A primeira das três primárias sRGB.

rgb(255 0 0) #FF0000

Vermelho puro é altamente saturado e raramente cabe em uma paleta de marca — a maioria das cores de marca "vermelhas" fica mais perto de #DC2626 ou #E53935.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Verde

rgb(0 255 0) #00FF00

Verde puro. Canal G no máximo, R e B em zero. Cor nomeada CSS `lime` (não `green`, que é #008000).

rgb(0 255 0) #00FF00

A palavra-chave CSS `green` resolve para #008000 (meio-brilho), não #00FF00 — uma fonte frequente de confusão. Use `lime` para o verde RGB puro.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Azul

rgb(0 0 255) #0000FF

Azul puro. Canal B no máximo, R e G em zero. A terceira primária sRGB.

rgb(0 0 255) #0000FF

Azul puro sobre fundo branco falha no contraste WCAG AA (3,7:1) — considere azuis de marca mais escuros como #1D4ED8 (Tailwind blue-700) para corpo de texto.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Ciano

rgb(0 255 255) #00FFFF

Ciano — verde e azul no máximo, vermelho em zero. Uma das três secundárias sRGB. Cor nomeada CSS `cyan` (ou equivalentemente `aqua`).

rgb(0 255 255) #00FFFF

Cyan e aqua são sinônimos exatos no CSS — ambos resolvem para #00FFFF. Escolha um e mantenha consistência pela sua folha de estilo.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Magenta

rgb(255 0 255) #FF00FF

Magenta — vermelho e azul no máximo, verde em zero. Cor nomeada CSS `magenta` (ou equivalentemente `fuchsia`).

rgb(255 0 255) #FF00FF

Magenta e fuchsia são sinônimos exatos no CSS — ambos resolvem para #FF00FF. Comum em padrões de teste e overlays de ferramentas de dev.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Amarelo

rgb(255 255 0) #FFFF00

Amarelo — vermelho e verde no máximo, azul em zero. A mais brilhante das três secundárias sRGB por luminância percebida.

rgb(255 255 0) #FFFF00

Amarelo é a cor não-branca de maior luminância em tela — texto amarelo sobre fundos brancos fica quase invisível, mesmo que o hex pareça bom no papel.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Tailwind blue-500

rgb(59 130 246) #3B82F6

A cor de marca blue-500 padrão do Tailwind CSS — o "azul web" canônico de meados dos anos 2020. Usado em incontáveis dashboards, sites de marketing e ferramentas administrativas.

rgb(59 130 246) #3B82F6

O Tailwind v4 redefine o blue-500 em OKLCH (`oklch(0.629 0.193 263.4)`) para rampas perceptualmente uniformes — o hex continua o mesmo como fallback.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Tailwind rose-500

rgb(244 63 94) #F43F5E

O rose-500 padrão do Tailwind CSS — um rosa-avermelhado de alta saturação usado comumente para botões de destaque, estados de alerta e contraste de marca.

rgb(244 63 94) #F43F5E

Rose-500 passa em WCAG AA (4,6:1) contra branco para texto grande mas falha para corpo de texto — combine com rose-600 (#e11d48) ou mais escuro para corpo de texto sobre branco.

Precisa de OKLCH em vez disso? Experimente o conversor de hex para OKLCH dedicado para saída perceptualmente uniforme.

Como Usar o Conversor de RGB para Hex

  1. 1

    Digite ou cole uma tupla RGB no campo RGB

    Jogue qualquer valor `rgb()` na entrada RGB — moderno separado por espaços `rgb(255 87 51)`, legado com vírgulas `rgb(255, 87, 51)`, com alfa via barra `rgb(255 87 51 / 0.5)` ou via a forma `rgba(255, 87, 51, 0.5)`, ou canais em porcentagem `rgb(100% 34% 20%)`. A ferramenta normaliza todas as formas de entrada para a mesma tupla RGB interna antes de calcular o hex. Caracteres inválidos, inteiros fora da faixa ou sintaxe malformada produzem um erro discreto inline; RGB válido atualiza todo outro campo de formato em tempo real.

  2. 2

    Leia o código hex do campo HEX

    O campo HEX acima do campo RGB mostra o valor hex correspondente: `#FF5733` para uma cor opaca, `#FF573380` para uma com alfa (forma de 8 dígitos). A saída usa dígitos hex em maiúscula por padrão para consistência com a maioria dos guias de marca; minúscula (`#ff5733`) está a um replace mecânico de distância e é igualmente CSS válido. A conversão é bit-exata — um round-trip RGB → HEX → RGB recupera a tupla original verbatim sem deriva de float.

  3. 3

    Clique em Copiar para pegar a string hex

    Cada card de formato tem um botão Copiar à direita. Um clique e o valor cai na sua área de transferência — o rótulo do botão brevemente pisca "Copiado!" para você saber. A string copiada inclui o `#` na frente, então cola direto em uma regra CSS, um campo de cor do Figma, uma extensão hex do SwiftUI ou um `colors.xml` do Android. Para sintaxe específica de plataforma (SwiftUI `Color(red:green:blue:)`, Compose `Color(0xFF...)`, tokens `@theme` do Tailwind v4), use a seção Copiar como código abaixo do seletor.

  4. 4

    Também visíveis: HSL, OKLCH, OKLAB, CMYK, cor nomeada

    O mesmo RGB que você cola também acende os outros campos de formato — HSL para CSS legado, OKLCH e OKLAB para design systems perceptualmente uniformes, HSV e HWB para fluxos de seletor de cor de designer, CMYK para estimativas de impressão e a cor nomeada CSS mais próxima para documentação e prosa. Você nunca fica trancado em RGB → hex apenas; se também precisar da tripla OKLCH para um bloco `@theme` do Tailwind v4, ela está bem ali no campo OKLCH com seu próprio botão Copiar.

  5. 5

    Use o seletor para ajustes visuais

    Abaixo da grade de formatos há um quadrado SL + controle deslizante de matiz + controle deslizante de alfa para exploração visual. Arraste qualquer controle e cada campo de texto atualiza em tempo real, incluindo o RGB e HEX com que você começou. Em navegadores baseados em Chromium (Chrome, Edge, Brave) o botão EyeDropper ativa a API nativa `EyeDropper` para amostrar qualquer pixel na tela, incluindo fora da janela do navegador — útil quando você quer capturar uma tupla RGB da UI de outro app sem precisar tirar um screenshot antes, depois ler imediatamente o hex.

Erros Comuns de RGB / Hex

Esquecer padStart ao Serializar RGB para Hex

Converter RGB para hex exige que `toString(16)` de cada canal seja left-padded para 2 dígitos. Sem `padStart(2, '0')`, valores de canal de um dígito produzem hex inválido: `rgb(5, 87, 51)` seria serializado como `#55733` (5 caracteres) em vez de `#055733` (6 caracteres). Muitos conversores ad-hoc pulam o pad e produzem saída quebrada para qualquer canal abaixo de 16. O idioma padrão é `value.toString(16).padStart(2, '0')` para cada um de R, G, B, depois concatene e prefixe com `#`.

✗ Incorreto
Skip padStart:
[5, 87, 51].map(v => v.toString(16)).join('') → '55733'
Produces invalid 5-character hex.
✓ Correto
Use padStart(2, '0'):
[5, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('') → '055733'
Valid 6-character hex; works correctly for all channel values 0-255.

Esquecer de Arredondar RGB em Float Antes da Codificação Hex

Quando a tupla RGB vem de um float normalizado 0-1 multiplicado por 255 (comum em OpenGL, SwiftUI, dados de imagem normalizados), o resultado frequentemente é um float como `127.5` ou `204.7`. Chamar `toString(16)` em um float produz hex decimal como `'7f.8'` ou `'cc.b333...'`, que não é hex CSS válido. Sempre use `Math.round` (ou `Math.floor`/`Math.ceil` conforme sua política de arredondamento) no float para um inteiro antes do passo `toString(16)`.

✗ Incorreto
Skip rounding:
(0.5 * 255).toString(16) → '7f.8'
Produces invalid hex with a decimal point.
✓ Correto
Round to integer first:
Math.round(0.5 * 255).toString(16).padStart(2, '0') → '80'
Valid 2-digit hex pair; matches CSS Color 4 normalization.

Confundir Ordem do Alfa em Hex de 8 Dígitos

O hex CSS de 8 dígitos é `#RRGGBBAA` — alfa é o par *final*. Algumas bibliotecas de cor (notavelmente o `Color.parseColor()` antigo do Android) usam a ordem oposta `#AARRGGBB` com alfa como o par *inicial*, o que é incompatível com hex CSS. Um valor RGB com 50% de alfa serializado em hex CSS emite `#FF573380`; emitido no formato de alfa inicial do Android seria `#80FF5733`. Sempre verifique a ordem de alfa da plataforma-alvo antes de produzir hex de 8 dígitos.

✗ Incorreto
Emit Android leading-alpha hex into CSS:
rgb(255 87 51 / 0.5) → #80FF5733 (Android format)
CSS parses as alpha=128, R=255, G=87, B=51 — wrong color entirely.
✓ Correto
Use the target platform's documented format:
for CSS: #FF573380 (alpha as last byte)
for Android Compose: Color(0x80FF5733) (alpha as first byte)
Don't cross-paste between the two without re-ordering.

Tirar a Média de Canais RGB Diretamente para Blending

Canais RGB são gama-codificados, não lineares. Tirar a média de dois valores RGB dá um ponto médio perceptualmente errado. `(255, 0, 0)` na média com `(0, 255, 0)` produz `(127, 127, 0)`, uma azeitona escura barrenta, não o ponto médio brilhante de amarelo que você esperaria de misturar luz vermelha e verde. Para blending correto, decodifique para RGB linear primeiro via a função de transferência sRGB (CSS Color 4 §11.2), tire a média em espaço linear, depois recodifique. Ou trabalhe em OKLAB / OKLCH onde a distância perceptual é uniforme.

✗ Incorreto
Average gamma-encoded RGB directly:
(rgb(255,0,0) + rgb(0,255,0)) / 2 = rgb(128, 128, 0)
Looks like dark olive, not bright yellow.
✓ Correto
Average in linear-RGB:
decode → linear-RGB → average → re-encode → rgb(188, 188, 0)
Visibly bright yellow, matching what physical light mixing produces.

Quem Usa RGB para Hex

Devs Front-end Convertendo RGB de Canvas para Hex CSS
Funções de desenho da Canvas API reportam e aceitam cores como tuplas RGB (`ctx.fillStyle = 'rgb(255 87 51)'`), mas a folha de estilo CSS ao redor quer variáveis hex (`--color-fill: #FF5733`). Colar o RGB uma vez produz o hex correspondente, pronto para jogar em uma propriedade customizada CSS. Útil ao extrair cores de marca de um gráfico ou visualização de dados renderizado em canvas para reuso em UI estática.
Designers Convertendo RGB do Photoshop para Hex do Figma
O Color Picker da Adobe (no Photoshop, Illustrator e InDesign) reporta RGB como três inteiros 0-255 em três caixas de canal. O Figma, em contraste, exibe valores de cor como hex por padrão em seus painéis de design. Cole os três inteiros do Photoshop como `rgb(...)` aqui, copie a saída hex, jogue no campo de cor do Figma. Acerta a cor original do Photoshop exatamente sem um desvio por screenshot e conta-gotas.
Devs de Hardware Convertendo RGB de Sensor LED para Hex Web
Tiras de LED endereçáveis, sensores de cor e câmeras RGB de hardware todos reportam valores de canal como inteiros 0-255. Quando as leituras precisam alimentar um dashboard web ("a lâmpada está brilhando nessa cor agora"), o código hex correspondente é o que o atributo CSS `style="background: ..."` espera. Cole o triplo RGB do sensor, copie o hex, plug na marcação do dashboard.
Devs de Jogos Exportando Cor do Unity para Mockup Web
Os construtores `Color` do Unity e `FLinearColor` do Unreal recebem floats normalizados 0-1; multiplicar cada um por 255 dá os inteiros RGB correspondentes. Cole o `rgb(...)` resultante aqui, copie o hex, jogue no mockup web ou site de marketing que precisa bater exatamente com a cor de destaque do jogo. A visão simultânea OKLCH também expõe a luminosidade perceptual para que a paleta do mockup possa ser ajustada à mão para bater com os níveis de brilho do jogo.
Engenheiros de Acessibilidade Auditando Cores de Marca do Photoshop
Quando o guia de estilo de marca reporta cores como triplos inteiros RGB ("o laranja da marca é RGB 255 / 87 / 51") mas a ferramenta de auditoria WCAG quer códigos hex, este conversor é a ponte. Cole o triplo RGB, copie o hex, rode pela auditoria. Os selos de contraste WCAG e APCA nesta ferramenta também expõem o veredito em um passo, então você não precisa pular entre três ferramentas separadas.
Devs de E-mail Migrando rgba() para Hex de 8 Dígitos
HTML moderno de cliente de e-mail suporta hex de 8 dígitos (`#FF573380`) para cores com alfa, mas templates legados frequentemente armazenam o mesmo valor como `rgba(255, 87, 51, 0.5)`. Colar o rgba() aqui e ler a saída hex de 8 dígitos torna a migração mecânica. O campo HEX mostra `#FF573380` para o caso de 50% de alfa; a forma legada `rgba()` permanece no campo RGB para contextos de fallback que ainda precisam dela.
Devs Documentando Tokens de Marca com Ambos os Formatos
Documentação de design tokens frequentemente mostra a mesma cor em ambas as formas RGB e hex: hex para o bloco de código CSS, RGB para a anotação em prosa ("o laranja da marca é `#FF5733`, equivalente a RGB 255 / 87 / 51"). Ter os dois visíveis lado a lado deixa um redator de docs copiar cada um em uma passagem em vez de rodar duas ferramentas separadas. O hash de URL compartilhável também deixa leitores clicar direto na cor exata em discussão.
Engenheiros de QA Afirmando Cores de Pixel Contra Specs Hex
Testes de regressão visual às vezes capturam cores de pixel como inteiros RGB (`expect(pixel).toMatchRgb([255, 87, 51])`), enquanto a spec subjacente é dada em hex ("botões devem renderizar como `#FF5733`"). Colar o RGB capturado aqui produz o hex correspondente, que o engenheiro de QA pode comparar diretamente com a spec. A exatidão de bit da conversão significa que a comparação não vai flicar por diferenças de deriva de float.

Matemática e Serialização de RGB para Hex

toString(16).padStart(2, '0') é a Implementação de Uma Linha
A conversão RGB-para-hex inteira cabe em uma expressão por canal: `value.toString(16).padStart(2, '0')`. O `toString(16)` do JavaScript converte um inteiro decimal para sua representação base 16. O `padStart(2, '0')` é o detalhe fácil de esquecer — sem ele, o valor de canal 5 seria serializado como `'5'` em vez de `'05'`, produzindo um hex inválido de 5 caracteres como `#55733` quando junto com os outros canais. O idioma padrão é `[r, g, b].map(v => v.toString(16).padStart(2, '0')).join('')` seguido por um prefixo `'#'`.
Normalização de Porcentagem: × 255 / 100, Depois Arredondar
O CSS Color 4 permite canais em porcentagem em `rgb()`: `rgb(100% 34% 20%)` é equivalente a `rgb(255 87 51)`. A regra de normalização é `Math.round(percent × 255 / 100)`. `50% × 255 / 100 = 127.5` arredonda para 128 (banker's rounding away from .5). A mesma regra se aplica ao alfa quando expresso como porcentagem (`rgb(255 87 51 / 50%)` ↔ `rgb(255 87 51 / 0.5)`). Formas inteira e porcentagem produzem saída hex idêntica depois da normalização; a ferramenta expõe a forma inteira canônica no campo RGB depois de renormalizar.
Alfa para Hex: Multiplicar por 255, Arredondar, Codificar como Par Final
RGB com alfa (`rgb(255 87 51 / 0.5)`) emite hex de 8 dígitos multiplicando o alfa por 255, arredondando para o inteiro mais próximo e codificando como um 4º par hex acrescentado depois do RGB. `0.5 × 255 = 127.5`, arredondado para 128 = `0x80`, saída `#FF573380`. A especificação CSS Color 4 usa banker's-rounding (arredondamento metade-para-par) para essa conversão, que a ferramenta segue. A forma de 8 dígitos cai de volta para 6 dígitos quando o alfa é exatamente 1 para evitar vazar pares `FF` no final em folhas de estilo.
Entrada RGB: CSS Color 4 Separado por Espaços e Legado com Vírgula Ambos Aceitos
O parser aceita tanto a forma moderna do CSS Color 4 `rgb(255 87 51)` quanto a forma legada CSS 1 `rgb(255, 87, 51)`. A forma moderna alinha com as outras notações funcionais do CSS Color 4 (`hsl()`, `lab()`, `oklch()`, `color()`) que todas usam separação por espaço e barra para alfa. A forma legada com vírgulas ainda tem suporte em todo navegador evergreen e permanece comum em bases de código mais antigas. As duas produzem saída hex idêntica; o serializador hex da ferramenta não se importa com qual forma de entrada chegou.
Fonte-de-Verdade Interna em OKLCH para Estabilidade de Round-Trip
Mesmo que este spoke mire em RGB → HEX especificamente, o conversor compartilhado por baixo mantém a cor canônica como uma tripla OKLCH internamente. Isso significa que round-trips RGB → HEX → HSL → OKLAB → CMYK → RGB acontecem sem deriva de float por passo; conversores legados que roteiam por HSL ou sRGB como pivô acumulam erro de arredondamento em cada conversão. A escolha de OKLCH (em vez de OKLAB) preserva o Matiz como eixo estável, então arrastar o slider de matiz não cruza acidentalmente pelo cinza. Segundo o paper OKLAB de 2020 de Björn Ottosson.
Codificação de Canal: 8-Bit Sem Sinal, Gama-Codificado em sRGB
Cada canal RGB é um inteiro sem sinal de 8 bits (0-255), codificado no espaço de cor sRGB definido pela IEC 61966-2-1 (1996). Os valores são *gama-codificados* — significando que a relação entre valor do canal e brilho percebido é não-linear, seguindo a função de transferência sRGB por trechos (aproximadamente um expoente 2,4 com um pequeno segmento linear perto de zero). Isso importa quando você está fazendo matemática de cor: tirar a média de dois valores RGB na sua forma gama-codificada dá o ponto médio perceptual errado. Para blending de cor correto, decodifique para RGB linear primeiro (CSS Color 4 §11.2), depois tire a média, depois recodifique. O modelo OKLCH interno da ferramenta torna isso transparente.

Boas Práticas para Fluxos RGB / Hex

Prefira Hex em Maiúscula em Guias de Marca, Minúscula em Código
Guias de marca, PDFs de marketing e documentação voltada para designer tipicamente usam hex em maiúscula (`#FF5733`) por consistência visual — o visual em caixa alta se lê como um identificador de marca. Código (CSS, JSON, fonte JavaScript) tipicamente usa minúscula (`#ff5733`) por convenção porque minúscula é mais rápida de digitar e mais comum em saída de linter autogerada. As duas são CSS válido e interpretam de forma idêntica; escolha uma para cada contexto e mantenha consistência. A ferramenta emite maiúscula por padrão; um replace mecânico inverte para minúscula.
Emita Hex de 8 Dígitos Apenas Quando Alfa < 1
Quando o alfa é igual a 1 (totalmente opaco), caia de volta para a forma de 6 dígitos. Um par `FF` no final (`#FF5733FF`) é CSS legal mas polui visualmente folhas de estilo e confunde alguns parsers legados a renderizar errado. A forma de 8 dígitos deve aparecer apenas quando o alfa é significativamente transparente. Esta ferramenta segue essa regra automaticamente — cores opacas emitem hex de 6 dígitos, cores com alfa emitem hex de 8 dígitos, e o corte é exato (alfa = 1.0 emite 6 dígitos; alfa = 0.9999 emite 8 dígitos para preservar os dados).
Não Tire a Média de Canais RGB Diretamente para Matemática de Cor
Canais RGB são gama-codificados — tirar a média de dois valores RGB dá o ponto médio perceptual errado. `(255, 0, 0)` na média com `(0, 255, 0)` produz `(127, 127, 0)`, uma azeitona escura barrenta, não o ponto médio visualmente brilhante de amarelo que você esperaria. Para blending de cor correto, decodifique para RGB linear primeiro (CSS Color 4 §11.2), depois tire a média, depois recodifique. Ou, melhor, trabalhe em OKLAB ou OKLCH onde a distância perceptual é uniforme — é exatamente isso que geradores de paleta de design system fazem.
Prefira Hex para Variáveis CSS, RGB para Hardware
Quando você está escrevendo uma propriedade customizada CSS ou um token de configuração do Tailwind, prefira hex — é mais conciso e cabe limpamente em JSON ou YAML. Quando o código consumidor faz aritmética por canal (chamadas de canvas, manipulação de imagem, drivers de LED de hardware, atributos de cor OpenGL), a forma de inteiro RGB é mais rápida de consumir. Os dois formatos descrevem a mesma cor; a escolha é puramente sobre quem está lendo e escrevendo, não sobre correção. A visão de campo simultâneo desta ferramenta deixa ambos igualmente baratos.
Valide a Faixa de Alfa Antes de Multiplicar por 255
Ao implementar seu próprio conversor RGB → hex de 8 dígitos, valide que o float alfa cai dentro de `[0, 1]` antes do passo `× 255`. Alfa fora da faixa (negativo ou > 1) silenciosamente produz pares hex inválidos que alguns parsers aceitam e outros rejeitam — um modo de falha frágil. Faça clamp primeiro (`Math.max(0, Math.min(1, alpha))`), depois multiplique, depois arredonde, depois codifique em hex. A ferramenta expõe um erro discreto inline para alfa fora da faixa em vez de emitir uma string hex quebrada.
Use o Hash de URL para Compartilhar Decisões de Cor ao Vivo
Cada mudança de cor atualiza o hash da URL como `#hex=ff5733` automaticamente. Copie a URL em uma thread do Slack ou uma issue do GitHub e qualquer um que abrir cai na mesma cor com o mesmo hex. Isso é mais confiável do que colar uma tupla RGB no chat — destinatários às vezes erram vírgulas ou perdem um canal ao digitar manualmente o valor — e deixa uma thread de design review referenciar uma cor exata em vez de "o laranja que discutimos terça". O hash nunca é transmitido ao servidor.

Perguntas Frequentes

Como se converte RGB para hex?
Converta cada inteiro de canal 0-255 para uma string de 2 dígitos em base 16, depois concatene com um `#` na frente. Em JavaScript: `[255, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('')` retorna `'ff5733'`. O `padStart(2, '0')` importa — sem ele, valores de dígito único como `5` seriam serializados como `'5'` em vez de `'05'`, produzindo um hex inválido. Esta ferramenta faz a conversão ao vivo enquanto você digita — cole qualquer valor `rgb()` (com ou sem espaços, com vírgula ou na sintaxe moderna por espaços, com ou sem alfa) e o campo HEX atualiza na hora com o valor `#RRGGBB` ou de 8 dígitos `#RRGGBBAA` correspondente.
O que é RGB em hex?
RGB em hex é a mesma cor codificada como uma string de 6 caracteres em base 16. As duas formas descrevem uma cor como três canais (vermelho, verde, azul) na escala 0-255, ancorados no espaço de cor sRGB. `rgb(255 87 51)` e `#FF5733` são intercambiáveis em qualquer lugar onde um `` é aceito no CSS — eles fazem round-trip sem perdas. O hex empacota a mesma informação em uma forma mais concisa que cabe limpamente em variáveis CSS e copia limpinho entre Figma, Sketch, Photoshop e código; `rgb()` mantém os canais endereçáveis como inteiros separados para chamadas de canvas e APIs de hardware.
Como obtenho o código hex a partir do RGB?
Pegue cada valor de canal (0-255), chame `toString(16)` para obter sua representação base 16, faça left-pad com zero para 2 dígitos e concatene com um `#` na frente. `rgb(255 87 51)` vira: `255 → 'ff'`, `87 → '57'`, `51 → '33'`, resultado `#ff5733`. Coloque em maiúscula se seu style guide exigir (`#FF5733`); as duas formas são CSS válido. Para RGB com alfa como `rgb(255 87 51 / 0.5)`, multiplique o alfa por 255, arredonde e acrescente o par hex de 2 dígitos resultante: `0.5 × 255 = 128 = 0x80`, resultado `#ff573380`. Esta ferramenta faz as duas transformações automaticamente.
Qual é a fórmula de RGB para hex?
Para cada canal: `value.toString(16).padStart(2, '0')`. O `toString(16)` converte o inteiro para sua representação base 16; o `padStart(2, '0')` garante que o resultado tenha exatamente 2 caracteres (necessário para valores abaixo de 16, que de outra forma seriam serializados como 1 caractere). Concatene os três resultados, prefixe com `#` e você tem o hex canônico. Matematicamente: para o canal `n` em `[0, 255]`, os dígitos hex são `Math.floor(n / 16)` e `n % 16` mapeados através de `'0123456789abcdef'`. Não há perda por arredondamento — 16² = 256, exatamente correspondendo à faixa de byte 0-255 que cada canal ocupa.
rgb(0,0,0) é igual a #000000?
Sim — exatamente. `rgb(0, 0, 0)` e `rgb(0 0 0)` (sintaxe moderna do CSS Color 4 separada por espaços) ambos serializam para `#000000`, preto puro com todos os três canais em zero. Cada par de canal codifica como `00`, concatenado para um hex de 6 caracteres `000000`. A mesma equivalência vale no outro extremo: `rgb(255, 255, 255)` ↔ `#FFFFFF` (branco puro). Qualquer triplo RGB tem exatamente uma representação canônica de hex de 6 dígitos, e qualquer hex de 6 dígitos tem exatamente um triplo RGB — o mapeamento é bijetivo por todo o espaço sRGB de 16.777.216 cores.
RGB pode ter um canal alfa?
Sim — use a forma legada `rgba()` `rgba(255, 87, 51, 0.5)` ou a sintaxe moderna do CSS Color 4 com barra `rgb(255 87 51 / 0.5)`. As duas codificam um float alfa de 0 (totalmente transparente) a 1 (totalmente opaco). Ao converter para hex, o alfa vira um 4º par de 2 dígitos acrescentado depois do RGB: multiplique por 255, arredonde, codifique em hex. `0.5 × 255 = 128 = 0x80`, então `rgb(255 87 51 / 0.5)` vira `#FF573380`. O hex de 8 dígitos com alfa chegou a todos os navegadores evergreen em 2018; antes disso, a forma `rgba()` era a única maneira de expressar alfa no CSS.
Como hex e RGB diferem?
Eles codificam a mesma cor em notações diferentes. O hex empacota três canais 0-255 em uma string base 16 de 6 caracteres (`#FF5733`); `rgb()` escreve os canais em decimal (`rgb(255 87 51)`). O hex é mais curto e nativo das ferramentas de design — Figma, Sketch, Photoshop e todo PDF de guia de marca exportam hex por padrão, e a maioria dos devs front-end reconhece `#3b82f6` como o blue-500 do Tailwind de bate-pronto. RGB é endereçamento explícito de canal, mais fácil de computar contra em JavaScript, e a única forma que aceita canais em porcentagem e alfa com sintaxe nativa. Os dois são CSS igualmente válidos e fazem round-trip sem perdas.
Quão preciso é RGB para hex?
Bit-exato. RGB → hex é matemática inteiro-para-string com zero envolvimento de float: `toString(16).padStart(2, '0')` produz o par hex canônico de 2 dígitos para todo valor em 0-255, e o inverso (`parseInt(pair, 16)`) recupera o inteiro original exatamente. Um round-trip RGB → HEX → RGB → HEX produz a tupla original verbatim, indefinidamente. 16² = 256, exatamente correspondendo à faixa de byte, então não há perda por arredondamento em nenhuma direção. Entradas RGB em porcentagem arredondam para o inteiro mais próximo primeiro (`50% × 255 / 100 = 127.5 → 128`), que é a regra padrão de normalização do CSS Color 4.

Ferramentas relacionadas

Ver todas as ferramentas →