Skip to content

Conversor de HEX para RGB

Converta qualquer código de cor HEX para RGB no seu navegador — hex de 3, 6 e 8 dígitos com alfa, 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 às formas de hex de 3/4/6/8 dígitos, correção de decodificação do par alfa e exatidão bit-a-bit do round-trip entre HEX e RGB pela faixa 0-255. — Go Tools Engineering Team · May 27, 2026

O que é um Conversor de HEX para RGB?

Um conversor de hex para RGB é um pequeno utilitário que transforma um código de cor hex (`#FF5733`) nos três valores inteiros de canal que ele representa (`rgb(255 87 51)`). HEX e RGB 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 qualquer ferramenta de cor. HEX é o formato conciso de copiar e colar que Figma, Sketch, Photoshop e todo PDF de guia de marca exportam por padrão — 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. 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 esperam — três inteiros 0-255 separados (ou floats normalizados 0-1) que mapeiam diretamente para os subpixels vermelho, verde e azul de um LCD ou para os fósforos de um CRT. Converter entre eles é mecânico: divida o hex em três pares de 2 dígitos e leia cada par como um número base 16. 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 RGB, grátis.

**O próprio formato RGB merece um olhar mais próximo.** O sRGB padrão de 24 bits codifica cada canal como um inteiro sem sinal de 8 bits de 0 a 255 — 256 valores por canal, 16.777.216 cores no total (256³). O padrão de referência é a IEC 61966-2-1, a especificação sRGB de 1996 ancorada nos primários de fósforo de CRT que dominavam as telas da época. O CSS expõe o RGB pela função `rgb()` em três variações sintáticas. A forma original do CSS 1 usa separadores por vírgula: `rgb(255, 87, 51)`. O CSS Color 4 (Candidate Recommendation do W3C desde 2022) adicionou uma forma moderna separada por espaços: `rgb(255 87 51)`, com um canal alfa opcional depois de uma barra: `rgb(255 87 51 / 0.5)`. As duas formas são intercambiáveis e vêm em todo navegador evergreen. O RGB também aceita canais em porcentagem: `rgb(100% 33% 20%)` é equivalente a `rgb(255 87 51)`, às vezes preferido em folhas de estilo escritas à mão por legibilidade. O alfa especificamente tem uma função `rgba()` separada para suporte legado — `rgba(255, 87, 51, 0.5)` é a forma canônica que funciona em todo lugar até o IE 9. O CSS Color 4 também adicionou uma sintaxe `color(srgb 1 0.341 0.2)` para endereçamento explícito de sRGB, e funções paralelas `color(display-p3 ...)` e `color(rec2020 ...)` para valores de gama ampla que o hex não consegue codificar.

A matemática da conversão vai nos dois sentidos de forma limpa. **HEX para RGB**: 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)`, `parseInt(hex.slice(3, 5), 16)`, `parseInt(hex.slice(5, 7), 16)`. Para a forma abreviada de 3 dígitos `#RGB`, expanda cada dígito duplicando-o (`#F73` → `#FF7733`) antes de parsear — isso *não* é left-pad. Para alfa de 8 dígitos `#RRGGBBAA`, parse o par final do mesmo jeito e divida por 255 para obter o float alfa 0-1. Para a forma abreviada alfa de 4 dígitos `#RGBA`, expanda cada dígito primeiro (`#F738` → `#FF773388`). **RGB para HEX** é o inverso: 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. Ambas as direções são bit-exatas em qualquer sentido: 16² = 256, exatamente correspondendo à faixa de byte 0-255 que cada canal ocupa, então um round-trip HEX → RGB → HEX produz a entrada original verbatim sem deriva de float.

**Por que hex vs RGB?** Hex é mais curto, nativo das ferramentas de design e o formato que seu olho aprende com o tempo — a maioria dos devs front-end identifica `#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 o único dos dois que aceita alfa e porcentagens de forma limpa. Os dois formatos coexistem porque resolvem problemas diferentes. Folhas de estilo web e guias de marca tendem ao hex porque o custo de copiar e colar domina. Chamadas de desenho em canvas, processamento de imagem, APIs de LED de hardware e qualquer código que faça aritmética por canal tendem ao RGB porque indexar em uma tupla é mais rápido do que fatiar uma string. A troca entre eles acontece dezenas de vezes em um projeto web típico — colar um hex do Figma, converter para inteiros RGB para uma chamada `ctx.fillStyle = ...`, converter de volta para hex para uma definição de variável CSS.

O fluxo HEX → RGB 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 hex e RGB. Os spokes de direção única miram intenções específicas de busca no Google: o caminho inverso conversor de RGB para hex, 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 códigos hex nunca são enviados, nunca registrados e zero requisições de rede disparam enquanto você digita. Confira no DevTools.

// Parse any hex shape (3/4/6/8-digit) into an RGB tuple [r, g, b, a]
// All channels in 0-255 range; alpha in 0-1.
function parseHex(input) {
  let h = input.trim().replace(/^#/, '');
  // Expand 3-digit and 4-digit shorthand by duplicating each digit
  if (h.length === 3 || h.length === 4) {
    h = h.split('').map(c => c + c).join('');
  }
  if (!/^[0-9a-fA-F]+$/.test(h) || (h.length !== 6 && h.length !== 8)) {
    throw new Error(`Invalid hex: ${input}`);
  }
  const r = parseInt(h.slice(0, 2), 16);
  const g = parseInt(h.slice(2, 4), 16);
  const b = parseInt(h.slice(4, 6), 16);
  const a = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;
  return [r, g, b, a];
}

console.log(parseHex('#FF5733'));   // [255, 87, 51, 1]
console.log(parseHex('#F73'));       // [255, 119, 51, 1]
console.log(parseHex('#FF573380'));  // [255, 87, 51, 0.5019607843137255]

Principais Recursos

Todas as Cinco Formas de Hex Interpretadas de Forma Idêntica

3 dígitos `#F73`, alfa de 4 dígitos `#F738`, 6 dígitos `#FF5733`, alfa de 8 dígitos `#FF5733CC`, mais a variante sem `#` para cada uma (`F73`, `FF5733`, etc.). O parser normaliza todas para a mesma tupla RGB interna antes da exibição, então você pode colar qualquer forma que sua fonte use sem expandir manualmente a forma abreviada antes. A capitalização também é normalizada — `#ff5733` e `#FF5733` produzem saída idêntica.

Saída RGB na Sintaxe Moderna Separada por Espaços

O campo RGB expõe o valor na forma moderna do CSS Color 4: `rgb(255 87 51)` para cores opacas, `rgb(255 87 51 / 0.5)` para as com alfa. Ambas as formas funcionam em todo navegador evergreen (Chrome 65+, Safari 13+, Firefox 52+). A forma antiga com vírgulas `rgb(255, 87, 51)` está a um replace mecânico de distância se seu alvo precisa dela; a sintaxe moderna é preferida em código novo porque alinha com as outras sintaxes funcionais do CSS Color 4.

Bit-Exato, Sem Deriva de Float

HEX → RGB é matemática inteiro-para-inteiro: `parseInt(hex, 16)` retorna um valor exato 0-255 sem envolvimento de float. A direção inversa (`.toString(16).padStart(2, '0')`) é igualmente exata. Um round-trip HEX → RGB → HEX → RGB → HEX produz a entrada original verbatim, indefinidamente. A fonte-de-verdade interna em OKLCH significa que mesmo a cadeia mais longa HEX → RGB → HSL → OKLAB → HEX permanece bit-estável, o que conversores legados roteando por HSL não garantem.

Canal Alfa Decodificado de Forma Limpa

Hex de 8 dígitos e 4 dígitos com alfa (`#RRGGBBAA` e `#RGBA`) são interpretados corretamente. O par final mapeia para um float alfa 0-1: `00` → 0, `80` → 0,502, `FF` → 1. A saída usa a sintaxe de barra do CSS Color 4 (`rgb(255 87 51 / 0.5)`) por padrão; a forma legada `rgba(255, 87, 51, 0.5)` está a um replace de distância. Útil para migração de design tokens onde valores alfa podem ter ficado enterrados em códigos hex de 8 dígitos.

Oito Outros Formatos Visíveis Simultaneamente

O mesmo hex 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 hex → RGB 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 um hex e a linha de contraste imediatamente o 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 um hex de marca para RGB e quer verificar se ele é 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: rgb(255 87 51)`), 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 hex, conversão de RGB, pontuação de contraste e geração de paleta roda localmente no seu navegador. Seus códigos hex 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 no mesmo hex com o mesmo resultado RGB. 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 HEX para RGB

RapidTables Hex to RGB

ferramenta de navegador

O resultado padrão do Google para "hex to rgb" — um formulário de mão única com hex entrando, RGB 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 hex 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 um hex específico via Google; mais fraco para fluxos ativos de conversão onde digitar em uma UX de campos unificados é mais rápido.

Calculadora Hex 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 hex para RGB 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 converte valores hex colados; é 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 HEX para RGB

Cole um hex de um screenshot → tupla RGB

#FF5733

Saída RGB: `rgb(255 87 51)`. O caso de uso clássico — um designer jogou uma cor de marca no Figma, você tirou um screenshot, um conta-gotas te deu o hex e agora você precisa dos inteiros de canal para uma chamada de desenho em canvas, uma tira de LED de hardware ou matemática de pixel contra um buffer de imagem. A sintaxe separada por espaços do CSS Color 4 mostrada é a forma moderna; a forma antiga com vírgulas `rgb(255, 87, 51)` é idêntica em significado e suportada em todo navegador desde o IE 3.

Converter hex de marca do Tailwind para RGB no Photoshop

#3b82f6

Saída RGB: `rgb(59 130 246)`. O painel de cor da Adobe (no Photoshop, Illustrator e InDesign) aceita inteiros RGB na faixa 0-255 como entrada nativa — cole 59 / 130 / 246 nas três caixas de canal e você acerta exatamente o `blue-500` do Tailwind. Útil quando um designer precisa fazer um mockup de uma cor web em um app de layout voltado para impressão, ou quando você está amostrando cores de marca para uma biblioteca de amostras para edições de imagem.

Hex de 8 dígitos com alfa → rgba

#FF573380

Saída RGB: `rgb(255 87 51 / 0.5)`. O último par (`80`) decodifica como `128/255 ≈ 0.502`, exposto como canal alfa via a sintaxe de barra do CSS Color 4. A forma antiga equivalente é `rgba(255, 87, 51, 0.5)`, que ainda tem suporte em todo lugar e é o que pré-processadores mais velhos esperam. Hex de 8 dígitos chegou nativamente a todos os navegadores evergreen em 2018; antes disso, o alfa precisava ser expresso pela função `rgba()`.

Expansão de hex curto de 3 dígitos

#F73

Saída RGB: `rgb(255 119 51)`. A especificação CSS define o hex de 3 dígitos como uma forma abreviada onde cada dígito é duplicado para formar o equivalente de 6 dígitos: `#F73` expande para `#FF7733`, então R = `FF` = 255, G = `77` = 119, B = `33` = 51. Isso *não* é left-pad — `#F73` **não** é `#000F73`. Muitos iniciantes erram isso; o comportamento de expansão da ferramenta deixa a regra visível de relance.

Conversões Comuns de HEX → RGB

Tabela de referência dos 10 códigos hex mais convertidos e seus equivalentes RGB — primárias puras, secundárias puras e duas cores de marca do mundo real da paleta Tailwind.

Preto

#000000 rgb(0 0 0)

Preto puro. Todos os três canais em zero — a ausência de luz emitida. Triplo RGB (0, 0, 0).

#000000 rgb(0 0 0)

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

#FFFFFF rgb(255 255 255)

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

#FFFFFF rgb(255 255 255)

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

#FF0000 rgb(255 0 0)

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

#FF0000 rgb(255 0 0)

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

#00FF00 rgb(0 255 0)

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

#00FF00 rgb(0 255 0)

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

#0000FF rgb(0 0 255)

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

#0000FF rgb(0 0 255)

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

#00FFFF rgb(0 255 255)

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

#00FFFF rgb(0 255 255)

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

#FF00FF rgb(255 0 255)

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

#FF00FF rgb(255 0 255)

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

#FFFF00 rgb(255 255 0)

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

#FFFF00 rgb(255 255 0)

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

#3b82f6 rgb(59 130 246)

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.

#3b82f6 rgb(59 130 246)

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

#f43f5e rgb(244 63 94)

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.

#f43f5e rgb(244 63 94)

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 HEX para RGB

  1. 1

    Cole um código hex no campo HEX

    Jogue qualquer valor hex na entrada HEX — com ou sem o `#` na frente, na forma abreviada de 3 dígitos (`#F73`), forma cheia de 6 dígitos (`#FF5733`), forma abreviada alfa de 4 dígitos (`#F738`) ou forma cheia alfa de 8 dígitos (`#FF5733CC`). A ferramenta normaliza todas as cinco formas de entrada para a mesma cor canônica internamente. A capitalização não importa (`#ff5733` e `#FF5733` interpretam de forma idêntica). Caracteres inválidos ou contagem errada de dígitos produzem um erro discreto inline; hex válido atualiza todo outro campo de formato em tempo real.

  2. 2

    Leia a tupla RGB do campo RGB

    O campo RGB abaixo do campo HEX mostra o valor `rgb()` correspondente na sintaxe moderna separada por espaços do CSS Color 4: `rgb(255 87 51)` para uma cor opaca, `rgb(255 87 51 / 0.5)` para uma com alfa. Cada canal é um inteiro 0-255; o alfa é normalizado para 0-1. Os valores são bit-exatos — `parseInt('FF', 16)` retorna 255, sem aritmética de float envolvida, então um round-trip de volta para hex produz a entrada original verbatim.

  3. 3

    Clique em Copiar para pegar a string RGB

    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 é a sintaxe canônica do CSS Color 4 (`rgb(255 87 51)`); se seu alvo precisa da forma antiga com vírgulas, a conversão é mecânica (troque espaços por `, `). Para saída específica de plataforma (SwiftUI, Compose, Flutter, 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 hex 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 hex → RGB apenas; se precisar também da tripla OKLCH para jogar em 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 HEX e RGB 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 um hex da UI de outro app sem precisar tirar um screenshot antes.

Erros Comuns de HEX / RGB

Tratar Hex de 3 Dígitos como Left-Padded

A forma abreviada de 3 dígitos `#RGB` expande *duplicando cada dígito*, não fazendo left-pad com zeros. `#F73` vira `#FF7733` (laranja vibrante), não `#000F73` (azul escuro). Esse é o canto mais errado da sintaxe de cor CSS; iniciantes frequentemente assumem que a forma abreviada é algum tipo de zero-pad e acabam com cores totalmente erradas. A mesma regra se aplica à forma abreviada alfa de 4 dígitos `#RGBA` — cada dígito duplica para formar o equivalente de 8 dígitos.

✗ Incorreto
Assume #F73 left-pads to #000F73:
expected: dark blue rgb(0, 15, 115)
actual:   bright orange rgb(255, 119, 51)
✓ Correto
3-digit shorthand duplicates each digit:
#F73 → #FF7733 → rgb(255, 119, 51)
Verified by the tool's live expansion as you type.

Esquecer padStart ao Serializar RGB para Hex

Converter RGB de volta 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.

✗ 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.

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 hex web `#FF573380` (laranja a 50% de alfa) interpretado como `#AARRGGBB` vira alfa=255, R=87, G=51, B=128 — um ciano escuro em opacidade total. Sempre verifique a ordem de alfa da plataforma-alvo antes de fazer round-trip de hex de 8 dígitos.

✗ Incorreto
Paste CSS 8-digit hex into legacy Android Color.parseColor():
#FF573380 interpreted as #AARRGGBB
→ wrong color and wrong alpha entirely.
✓ Correto
Use the target platform's documented format:
for Android Compose: Color(0xFFFF5733) with alpha as first byte
for CSS: #FF573380 with alpha as last 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 HEX para RGB

Devs Front-end Convertendo Hex do Figma para Chamadas RGB em Canvas
O Figma exporta hex, mas `CanvasRenderingContext2D.fillStyle` aceita tanto hex quanto `rgb()` — e quando você está fazendo aritmética por canal (gradientes, blending, manipulação de imagem), ter os inteiros de canal direto é mais rápido do que re-parsear o hex toda vez. Cole o hex uma vez, copie a tupla `rgb(255 87 51)`, plug na chamada de canvas. Zero código de parsing de hex do seu lado.
Designers Traduzindo Hex Web para RGB no Photoshop / Illustrator
O painel de cor da Adobe aceita inteiros 0-255 em três caixas de canal como entrada nativa. Cole o hex web nesta ferramenta, leia os inteiros R / G / B, digite no Photoshop. Acerta a cor web original exatamente sem um desvio por screenshot e conta-gotas. Útil quando um designer precisa fazer um mockup de uma cor web em um app de layout Adobe voltado para impressão.
Devs de Jogos Carregando Hex de Marca em APIs RGB de Unity / Unreal
`Color` da Unity e `FLinearColor` da Unreal ambos aceitam floats normalizados 0-1. Cole o hex de marca, leia os inteiros 0-255, divida por 255 (ou use a saída de float normalizado da ferramenta via Copiar como código). A conversão é mecânica mas suscetível a erro quando feita à mão — digitar `(255, 87, 51)` em um construtor que esperava `(1.0, 0.341, 0.2)` produz uma cor branca clipada e um tweet confuso. A ferramenta expõe ambas as formas.
Devs de Hardware Programando Tiras de LED Endereçáveis
WS2812, APA102 e outras tiras de LED RGB endereçáveis aceitam canais inteiros 0-255 por LED. Cole o hex de marca para o display de produto montado na parede, leia o triplo RGB, jogue no array de cor do controlador. Útil quando o time de marketing especifica um hex e o engenheiro de firmware precisa dos valores de canal para uma chamada `pixels.setPixelColor(i, r, g, b)`.
Engenheiros de Acessibilidade Auditando Legibilidade de Cor de Marca
A verificação de contraste WCAG 2.1 aceita entradas RGB internamente. Cole o hex de marca, obtenha o RGB correspondente mais a razão WCAG contra branco e preto, mais a pontuação APCA Lc, em uma tela. Se a cor de marca falha no piso de 4,5:1 para corpo de texto, o campo OKLCH perceptualmente uniforme do lado torna fácil subir o L até o contraste passar sem perder identidade de marca.
Designers Embedando Templates de E-mail com RGB Inline
Alguns clientes de e-mail (Outlook no Windows, Gmail mobile antigo) interpretam hex de forma inconsistente em atributos HTML — `` pode renderizar como preto em certas plataformas. O fallback confiável é a forma RGB equivalente `rgb(255, 87, 51)` inline. Cole o hex de marca, copie a string RGB na sintaxe legada com vírgulas (replace manual a partir da forma moderna com espaços), jogue no atributo `style` do template de e-mail.
Devs Documentando Tokens de Marca com Ambos os Formatos
Documentação de design tokens frequentemente mostra a mesma cor em ambos os formatos: hex para o bloco de código CSS, RGB para a anotação em prosa ("o vermelho 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. O hash de URL compartilhável também deixa leitores clicar direto na cor exata em discussão.
Engenheiros de QA Verificando Snapshots de Cor de Pixel
Testes de regressão visual frequentemente afirmam valores RGB específicos contra pixels renderizados (`expect(pixel.r).toBe(255)`). Quando a spec é dada como hex ("botões devem renderizar como `#FF5733`"), o engenheiro de QA precisa dos inteiros RGB correspondentes para escrever a asserção. Cole o hex, leia R / G / B, plug no teste. A exatidão de bit da conversão significa que o teste não vai flicar por diferenças de deriva de float.

Matemática e Parsing de HEX para RGB

parseInt(hex, 16) é a Implementação de Uma Linha
A conversão hex-para-RGB inteira cabe em uma expressão por canal: `parseInt(hex.slice(1, 3), 16)` para R, `parseInt(hex.slice(3, 5), 16)` para G, `parseInt(hex.slice(5, 7), 16)` para B. O `parseInt` do JavaScript com radix 16 lê uma string hex em um inteiro decimal na faixa 0-255 sem envolvimento de float. A direção inversa (`value.toString(16).padStart(2, '0')`) é igualmente uma linha — o `padStart(2, '0')` é o detalhe fácil de esquecer que pega valores de canal de um dígito como 5 → `'05'` em vez de `'5'`.
Expansão de Forma Abreviada: Duplicação de Dígitos, não Left-Pad
A especificação CSS define a forma abreviada de 3 dígitos como `#RGB` expandindo para `#RRGGBB` duplicando cada dígito. `#F73` → `#FF7733`, *não* `#000F73`. A mesma regra se aplica à forma abreviada alfa de 4 dígitos `#RGBA` → `#RRGGBBAA`. Esse é um dos cantos mais errados da sintaxe de cor do CSS — iniciantes frequentemente assumem que `#F73` faz left-pad para `#000F73`, o que produziria uma cor totalmente diferente (um azul escuro dessaturado em vez do laranja vibrante pretendido). O comportamento de expansão da ferramenta deixa a regra visível de relance.
Alfa de 8 Dígitos: Par Final, Dividido por 255
O hex de 8 dígitos `#RRGGBBAA` codifica o alfa como um par hex de 2 dígitos depois do triplo RGB, interpretado de forma idêntica e depois dividido por 255 para produzir um float 0-1. `#FF573380` interpreta para alfa = `0x80 / 255 = 128 / 255 = 0.5019607843137255`. A especificação CSS Color 4 usa 4 casas decimais de precisão para a saída (`/ 0.502`); a ferramenta segue a mesma convenção. O hex de 8 dígitos chegou em todos os navegadores evergreen em 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Fallback pré-2018 é `rgba()`.
Saída RGB: CSS Color 4 Separado por Espaços por Padrão
A ferramenta emite `rgb(255 87 51)` (moderno separado por espaços) por padrão em vez do legado `rgb(255, 87, 51)` (CSS 1 separado por vírgula). Ambas as formas são válidas e intercambiáveis em todo navegador evergreen desde 2018. A sintaxe 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 está a um replace mecânico de distância se sua toolchain exige; `rgba()` ainda é o fallback certo para contextos IE 9-11.
Fonte-de-Verdade Interna em OKLCH para Estabilidade de Round-Trip
Mesmo que este spoke mire em HEX → RGB especificamente, o conversor compartilhado por baixo mantém a cor canônica como uma tripla OKLCH internamente. Isso significa que round-trips HEX → RGB → HSL → OKLAB → CMYK → HEX 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 HEX / RGB

Use Sintaxe RGB Moderna Separada por Espaços em Código Novo
`rgb(255 87 51)` (separado por espaços) e `rgb(255 87 51 / 0.5)` (barra para alfa) do CSS Color 4 são as sintaxes canônicas para código embarcando em 2025 e adiante. As formas legadas com vírgulas `rgb(255, 87, 51)` e `rgba(255, 87, 51, 0.5)` ainda têm suporte em todo lugar, mas são depreciadas estilisticamente no CSS Color 4. Use a sintaxe moderna em folhas de estilo novas; mantenha `rgba()` apenas para contextos de fallback IE 9-11 onde você genuinamente precisa de suporte legado.
Verifique Suporte a Hex de 8 Dígitos Antes de Embarcar Códigos com Alfa
O hex de 8 dígitos com alfa (`#FF573380`) chegou em todos os navegadores evergreen em 2018, mas pré-processadores CSS legados e algumas ferramentas de design mais antigas silenciosamente cortam o par alfa para hex de 6 dígitos. O resultado: uma cor que você esperava estar 50% transparente renderiza totalmente opaca. Antes de embarcar hex de 8 dígitos em produção, verifique se o parser-alvo lida com ele; para alvos legados, recue para a sintaxe explícita `rgba(255, 87, 51, 0.5)`, que tem suporte desde o IE 9.
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 Fonte de Design Token, RGB para Hardware
Quando você está escrevendo uma spec de design token, prefira hex (ou OKLCH) como forma canônica — eles são mais concisos e cabem 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.
Documente Alfa Explicitamente em Nomes de Token
Quando um design token inclui alfa (ex.: uma sobreposição com 50% de opacidade), não enterre o alfa em um hex de 8 dígitos como `#000000CC` — divida o token em `--color-overlay-base: #000000` e `--color-overlay-alpha: 0.8`, ou use a forma RGBA explícita. Enterrar alfa em hex torna o token ilegível para quem está escaneando o arquivo e torna ajustes de alfa por token impossíveis sem re-parsear o hex primeiro. Clareza de sistema de token vence brevidade quando o custo é uma variável extra.
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 a mesma tupla RGB. Isso é mais confiável do que colar uma string hex no chat — destinatários às vezes erram caracteres 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 converto um código hex para RGB?
Divida o hex de 6 dígitos em três pares de 2 dígitos e leia cada par como um número base 16 de 0-255. `#FF5733` vira R=`FF`=255, G=`57`=87, B=`33`=51, dando `rgb(255 87 51)`. A forma abreviada de 3 dígitos `#F73` expande duplicando cada dígito para `#FF7733` antes da divisão. Esta ferramenta faz a conversão ao vivo enquanto você digita — cole qualquer hex (com ou sem o `#`, 3 dígitos, 6 dígitos, 4 dígitos ou 8 dígitos com alfa) e o campo RGB atualiza na hora com o valor `rgb()` correspondente.
Hex é o mesmo que RGB?
Ambos codificam a mesma informação em notações diferentes. Os dois descrevem uma cor como três canais (vermelho, verde, azul) na escala 0-255, ancorados no espaço de cor sRGB. O hex empacota os três canais em uma string base 16 de 6 caracteres (`#FF5733`); a função `rgb()` os escreve em decimal (`rgb(255 87 51)`). Eles fazem round-trip sem perdas — a mesma cor vai hex → RGB → hex sem deriva. O hex é mais curto para variáveis CSS; `rgb()` suporta um canal alfa via `rgba()` e sintaxe de porcentagem do CSS Color 4.
Como se lê um código de cor hex?
Uma cor hex tem 6 dígitos hexadecimais depois do `#`, agrupados como **RR GG BB**. Cada par codifica um canal de `00` (nada, 0 em decimal) a `FF` (cheio, 255 em decimal). `#FF0000` é vermelho puro, `#00FF00` é verde puro, `#0000FF` é azul puro. Um hex de 8 dígitos (`#FF5733CC`) adiciona um par alfa no final — `CC` = 204/255 ≈ 80% de opacidade. A forma abreviada de 3 dígitos `#F73` expande cada dígito duplicando-o: `#F73` é idêntico a `#FF7733`.
Qual é a fórmula de hex para RGB?
Para cada par hex de 2 dígitos, multiplique o primeiro dígito por 16 e some o segundo: `FF` = 15×16 + 15 = 255, `57` = 5×16 + 7 = 87, `33` = 3×16 + 3 = 51. Em JavaScript: `parseInt('FF', 16)` retorna 255 diretamente. No CSS, a direção inversa é embutida no parser — `rgb(255 87 51)` e `#FF5733` são intercambiáveis em qualquer lugar onde um `` é aceito. Não há perda por arredondamento em nenhuma direção: 16² = 256, exatamente correspondendo à faixa de byte 0-255 que cada canal ocupa.
Por que usar hex em vez de RGB?
Três motivos: é mais curto (`#FF5733` vs `rgb(255, 87, 51)`), é a exportação padrão de toda ferramenta de design (Figma, Sketch, Photoshop) e é o formato que devs front-end aprendem a reconhecer de cara — a maioria identifica `#3b82f6` como o blue-500 do Tailwind sem precisar olhar. Use `rgb()` (ou a sintaxe moderna separada por espaços `rgb(R G B / A)` do CSS Color 4) quando precisar de transparência alfa, quando estiver computando uma cor a partir de valores de canal em JavaScript ou quando a sintaxe explícita de porcentagem melhorar a legibilidade em uma folha de estilo.
Códigos hex podem ter alfa?
Sim — use hex de 8 dígitos (`#RRGGBBAA`) ou a forma abreviada de 4 dígitos (`#RGBA`). O par alfa segue a mesma escala 0-`FF`: `#FF573300` é totalmente transparente, `#FF5733FF` é totalmente opaco, `#FF573380` é cerca de 50%. O hex CSS de 4 e 8 dígitos com alfa chegou nativamente a todos os navegadores evergreen em 2018 (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Para parsers mais antigos e pré-processadores CSS legados que silenciosamente cortam o par alfa, recue para `rgba(255, 87, 51, 0.5)`, que tem suporte desde o IE 9.
Quantas cores o hex consegue representar?
O hex de 6 dígitos representa exatamente **16.777.216** cores — 256 valores por canal ao cubo (256³). Com hex de 8 dígitos incluindo alfa, o espaço endereçável é 256⁴ ≈ 4,3 bilhões, mas o conteúdo de cor continua sendo 16,7M; a dimensão extra é opacidade. O olho humano distingue cerca de 10 milhões de cores, então o sRGB de 24 bits é chamado de "truecolor" desde os anos 1990. Telas modernas de gama ampla (Display P3, Rec2020) cobrem mais do espectro visível, mas o hex em si está limitado ao sRGB — use OKLCH ou `color(display-p3 ...)` para valores de gama ampla.
Como converto RGB para hex?
Inverta a fórmula: não divida nada, apenas converta cada inteiro de canal para sua representação base 16 de 2 dígitos e concatene. Em JavaScript: `[255, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('')` retorna `'ff5733'`, então prefixe com `#`. O `padStart(2, '0')` importa — sem ele, valores de dígito único como `5` seriam serializados como apenas `'5'` em vez de `'05'`, produzindo um hex inválido. Para a direção inversa na família desta ferramenta, use o conversor de RGB para hex dedicado.

Ferramentas relacionadas

Ver todas as ferramentas →