Ir para o seletor de cores

Código de cor hex explicado: como funciona o #RRGGBB

Um código de cor hex como #1e90ff são três pares de dígitos hexadecimais: a quantidade de luz vermelha, verde e azul, cada uma de 00 (nada) a ff (máximo, 255). Acrescente um quarto par para definir a opacidade: 80 significa cerca de 50%, ff significa totalmente sólido.

6 min de leitura

Como funciona um código de cor hex

Toda cor na tela é uma mistura de luz vermelha, verde e azul. Um código hex escreve a intensidade de cada luz com dois caracteres depois do sinal #: primeiro o vermelho, depois o verde, depois o azul. Esse é o padrão #RRGGBB.

Os caracteres são hexadecimais, um jeito de contar com 16 dígitos: de 0 a 9 e depois a (10), b (11), c (12), d (13), e (14) e f (15). Um par cobre 256 valores, de 00 (0) a ff (255), exatamente a faixa do rgb().

Para transformar um par em número comum, multiplique o primeiro dígito por 16 e some o segundo. Abaixo está o #1e90ff, a cor CSS dodgerblue, em quatro formatos e depois calculado par a par.

Exemplo: #1e90ff
FormatoValor
HEX
RGB
HSL
OKLCH
ParCanalCálculoValor
1eVermelho1 × 16 + 1430
90Verde9 × 16 + 0144
ffAzul15 × 16 + 15255

Então #1e90ff é rgb(30, 144, 255): um pouco de vermelho, bastante verde e azul no máximo, o que resulta em um azul-celeste vivo. Três pares de 256 valores dão 16.777.216 cores possíveis.

Hex abreviado de 3 e 4 dígitos

Quando os dois dígitos de cada par são iguais, dá para escrever cada par uma vez só. #ffcc00 vira #fc0, e o navegador duplica cada dígito de volta. #1e90ff não tem forma curta, porque 1e e 90 não são pares repetidos.

A forma curta cobre só 4.096 das 16,7 milhões de cores. Uma versão de quatro dígitos acrescenta a opacidade do mesmo jeito, então #f008 significa #ff000088.

CurtoCompletoCor
#fff#ffffffBranco
#000#000000Preto
#f00#ff0000Vermelho
#fc0#ffcc00Amarelo quente
#abc#aabbccAzul acinzentado
#f008#ff000088Vermelho com 53% de opacidade

Opacidade em hex: hex de 8 dígitos com alfa

Um código de oito dígitos acrescenta um quarto par para o alfa, a opacidade: #RRGGBBAA. 00 é totalmente transparente e ff é totalmente sólido. Todos os navegadores atuais suportam isso no CSS, assim como a forma curta #RGBA de quatro dígitos.

Para obter o par, multiplique a opacidade por 255, arredonde para um número inteiro e converta para hex. 50% dá 127,5, que arredonda para 128, escrito como 80. Veja a tabela completa aplicada ao #1e90ff.

OpacidadeAlfa (0–255)Par hex#1e90ff com alfa
100%255ff#1e90ffff
95%242f2#1e90fff2
90%230e6#1e90ffe6
85%217d9#1e90ffd9
80%204cc#1e90ffcc
75%191bf#1e90ffbf
70%179b3#1e90ffb3
65%166a6#1e90ffa6
60%15399#1e90ff99
55%1408c#1e90ff8c
50%12880#1e90ff80
45%11573#1e90ff73
40%10266#1e90ff66
35%8959#1e90ff59
30%774d#1e90ff4d
25%6440#1e90ff40
20%5133#1e90ff33
15%3826#1e90ff26
10%261a#1e90ff1a
5%130d#1e90ff0d
0%000#1e90ff00

CSS

.overlay {
    background: #00000080;
}

.overlay-same {
    background: rgb(0 0 0 / 50%);
}

Dois detalhes. Primeiro, 80 é 128 de 255, ou seja, 50,2%, não exatamente 50%: o alfa em hex tem só 256 passos, então a maioria das porcentagens redondas é uma aproximação. Segundo, o Android coloca o alfa na frente. Em um recurso de cor do Android, #801e90ff significa o mesmo que #1e90ff80 no CSS.

Como ler um código hex no olho

Dá para adivinhar uma cor sem converter nada. Olhe o primeiro dígito de cada par, porque ele carrega quase toda a informação.

Nome CSSHexRGBComo ler
tomato#ff6347255, 99, 71Vermelho no máximo, um pouco de verde e azul: vermelho claro e quente
gold#ffd700255, 215, 0Vermelho e verde altos, sem azul: amarelo
chocolate#d2691e210, 105, 30Vermelho na frente, verde pela metade, azul baixo: marrom alaranjado
darkturquoise#00ced10, 206, 209Verde e azul altos, sem vermelho: ciano
dodgerblue#1e90ff30, 144, 255Azul na frente, verde no meio: azul-celeste
mediumorchid#ba55d3186, 85, 211Vermelho e azul altos, verde baixo: roxo
teal#0080800, 128, 128Verde e azul pela metade: ciano-escuro
navy#0000800, 0, 128Só azul, pela metade: azul-escuro
slategray#708090112, 128, 144Quase iguais, azul um pouco à frente: cinza-azulado
  • O maior primeiro dígito é a luz dominante. #d2691e tem d no vermelho, 6 no verde e 1 no azul, então é um marrom alaranjado.
  • Dois canais altos se misturam: vermelho e verde dão amarelo, verde e azul dão ciano, vermelho e azul dão magenta ou roxo.
  • Três pares iguais dão um cinza. #333333 é cinza-escuro, #999999 é cinza-claro. Pares quase iguais, como em #708090, dão uma cor apagada, acinzentada.
  • Dígitos altos no geral indicam uma cor clara, dígitos baixos, uma cor escura. Quando os três pares são c0 ou mais, a cor é pálida. Quando os três são 30 ou menos, ela é bem escura.
  • O verde parece muito mais claro que o azul com o mesmo número. #00ff00 tem luminosidade OKLCH de 0,866, #0000ff só 0,452.

Por que #808080 não é o cinza médio

#808080 fica exatamente no meio em números: 128 de 255 em cada canal. Mas ele não parece estar no meio entre o preto e o branco. A luminosidade OKLCH dele é 0,600, então ele é percebido a 60% do caminho até o branco.

Os valores hex já vêm codificados com a curva do sRGB, que acompanha o olho de forma aproximada, mas não exata. #808080 emite cerca de 21,6% da luz do branco, e os modelos perceptuais colocam o meio visual mais abaixo: o OKLCH em #636363, o CIELAB em #777777.

CinzaO que éL do OKLCHContraste no brancoContraste no preto
#808080Meio numérico, 1280.6003.95:15.32:1
#777777Meio do CIELAB, L* 500.5694.48:14.69:1
#767676Cinza mais claro com 4.5:1 no branco0.5664.54:14.62:1
#636363Meio do OKLCH, L 0.50.5006.01:13.50:1

Isso importa para texto. Cinza #808080 sobre branco dá 3,95:1 e reprova no WCAG AA para texto corrido. #767676 é o cinza mais claro que passa em 4,5:1, e #777777, um passo mais claro, já reprova com 4,48:1.

Maiúsculas ou minúsculas, com ou sem #

Códigos hex não diferenciam maiúsculas de minúsculas. #1E90FF, #1e90ff e #1E90ff são a mesma cor no CSS, no SVG e nas ferramentas de design. Escolha um estilo e mantenha-o em todo lugar, para que uma busca no código encontre todos os usos. Minúsculas são a escolha mais comum no CSS.

O sinal # faz parte da sintaxe do CSS, não da cor. O Figma e muitas ferramentas de design mostram o código sem ele, e linguagens de programação costumam escrevê-lo como número com o prefixo 0x, como no Flutter, em que Color(0xFF1E90FF) começa pelo par do alfa.

Como descobrir o código hex de uma cor na tela

Use um conta-gotas: uma ferramenta que lê a cor sob o cursor e mostra o código dela. Existem opções gratuitas e quase sempre já instaladas.

  • Chrome e Edge: abra o DevTools com F12, clique em qualquer quadradinho de cor no painel Estilos e use o ícone de conta-gotas para capturar uma cor da página.
  • PickShade: o seletor de cores da página inicial tem um botão de conta-gotas no Chrome e no Edge que captura cores de qualquer lugar da tela.
  • Windows: instale o Microsoft PowerToys e pressione Win + Shift + C para abrir o Seletor de Cores.
  • macOS: abra o Medidor de Cor Digital em Aplicativos, Utilitários. Mude para sRGB e escolha Visualizar, Exibir Valores, Como Hexadecimal.
  • Figma, Photoshop e a maioria dos apps de design: pressione I para o conta-gotas.
  • Em uma foto ou captura de tela: abra no seletor de cores de imagem e clique em qualquer pixel. A imagem fica no seu dispositivo.

Um valor capturado pode diferir em algumas unidades do original, porque as telas aplicam perfis de cor e as imagens são comprimidas. Quando você precisar do valor exato, copie-o do arquivo de design ou do CSS, não de uma captura de tela.

Perguntas e respostas

O que é um código de cor hex?

Um código de cor hex é um código de seis dígitos como #1e90ff que descreve uma cor pela quantidade de luz vermelha, verde e azul que ela tem. Cada par de dígitos hexadecimais vai de 00 (0) a ff (255), então #1e90ff é rgb(30, 144, 255).

Como adicionar opacidade a uma cor hex?

Acrescente um quarto par de dígitos no final: #RRGGBBAA. Multiplique a opacidade por 255, arredonde e converta para hex: 50% vira 80, 25% vira 40 e 75% vira bf. Por exemplo, #1e90ff80 é o dodgerblue com cerca de 50% de opacidade.

Quanto é 50% de opacidade em hex?

50% de opacidade em hex é 80, como em #00000080 para um preto semitransparente. 80 equivale a 128 de 255, ou seja, 50,2%, porque o alfa em hex tem 256 passos e os 50% exatos ficam entre 7f e 80.

Qual é a diferença entre hex e RGB?

Não há diferença na cor, só na notação. O hex escreve os valores de vermelho, verde e azul como pares em base 16, o rgb() os escreve como números decimais de 0 a 255, então #ff6347 e rgb(255, 99, 71) são o mesmo vermelho tomate.

Códigos de cor hex diferenciam maiúsculas de minúsculas?

Não. #FF6347, #ff6347 e #Ff6347 são a mesma cor no CSS, no HTML, no SVG e nas ferramentas de design. A maioria dos projetos CSS usa minúsculas, mas qualquer estilo funciona desde que seja consistente.

Qual é o código hex do cinza médio?

#808080 é o meio numérico, mas parece mais claro que a metade, com luminosidade OKLCH de 0,600. Um cinza que parece estar no meio entre o preto e o branco fica entre #636363 (L 0,5 no OKLCH) e #777777 (L* 50 no CIELAB).

Experimente no PickShade

Guias relacionados