Converter cor RGB para hexadecimal
Transforme vermelho, verde e azul num só código de cor em maiúsculas: 255, 128, 0 vira #FF8000. O resultado sempre tem os seis dígitos completos, então os códigos ficam fáceis de comparar, guardar e colar no CSS. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Resistência (Ω)
- 255
- G
- 128
- B
- 0
- Hex
- #FF8000
Converta uma cor RGB para o formato hexadecimal de seis dígitos usado em CSS, sistemas de design, ferramentas gráficas e diversos arquivos de dados. Informe vermelho, verde e azul como números inteiros de 0 a 255; o conversor retorna um código no formato #RRGGBB. O cálculo é determinístico e não estima, limita nem corrige silenciosamente valores inválidos. Se algum canal estiver ausente, for fracionário ou ficar fora do intervalo aceito, a solicitação retorna um erro de entrada claro. Por isso, a ferramenta atende tanto a verificações manuais rápidas quanto a fluxos automatizados repetíveis nos quais a cor precisa ser exata.
Entenda como RGB se transforma em uma cor hexadecimal
Uma cor RGB armazena três intensidades de luz independentes: vermelho, verde e azul. Cada canal aceita 256 valores inteiros, começando em 0 e terminando em 255. Uma cor hexadecimal de seis dígitos representa exatamente a mesma informação com dois dígitos de base 16 para cada canal.
O primeiro par pertence ao vermelho, o segundo ao verde e o último ao azul. O decimal 0 se torna 00, o decimal 255 se torna FF, e os valores intermediários são convertidos e preenchidos até dois caracteres quando necessário. Por exemplo, vermelho 255, verde 128 e azul 0 produzem #FF8000.
O sinal de cerquilha identifica o valor como cor em CSS e em muitas ferramentas de design, enquanto os seis caracteres seguintes preservam os três canais de oito bits sem perda de precisão. O conversor sempre retorna a forma completa de seis dígitos, mesmo quando uma notação CSS mais curta poderia descrever a mesma cor. Esse formato fixo facilita comparar, armazenar, testar e transferir resultados, pois toda resposta válida tem o mesmo comprimento e a mesma ordem de canais.
As letras são fornecidas em maiúsculas, embora CSS interprete códigos hexadecimais maiúsculos e minúsculos como a mesma cor.
Forneça canais válidos e interprete os erros
Envie um objeto com r, g e b, atribuindo a cada campo um número inteiro de 0 a 255, inclusive. Os três campos são obrigatórios, porque a ausência de um canal deixaria a cor incompleta. Zero é válido e significa que a primária correspondente não contribui com luz; 255 também é válido e indica intensidade total.
Valores como 12.5 são rejeitados porque, neste contrato, um canal RGB de oito bits deve ser inteiro. Números negativos e valores acima de 255 também são rejeitados em vez de limitados. Limitar poderia esconder uma leitura defeituosa de sensor, uma fórmula de planilha incorreta, um controle de interface mal configurado ou uma regra anterior de validação quebrada; portanto, um erro visível é mais seguro em automações.
Quando houver falha, verifique o canal indicado, corrija o valor na origem e envie novamente o trio completo. Uma resposta válida contém apenas o campo hex, com a cerquilha inicial e exatamente seis dígitos hexadecimais. Como o algoritmo não usa rede, aleatoriedade nem relógio, os mesmos valores r, g e b sempre geram o mesmo resultado.
Use o resultado em fluxos de design e desenvolvimento
O código retornado pode ser colocado diretamente em propriedades CSS como color, background-color, border-color e fill. Ele também atende a formatos comuns de tokens de design, arquivos de configuração de temas, paletas de gráficos, modelos de e-mail e documentação de cores de marca. Profissionais de design podem converter canais copiados de um editor de imagens antes de adicionar uma amostra a uma biblioteca de componentes.
Equipes de desenvolvimento podem transformar colunas RGB de uma base de dados ou planilha em textos padronizados antes de exportar um tema. Pipelines de dados se beneficiam dos erros estritos, pois um canal inválido interrompe a conversão em vez de introduzir uma cor plausível, porém incorreta. Para tarefas ocasionais, a interface no navegador permite conferir um trio sem escrever código.
Mantenha a cerquilha ao usar o resultado em CSS; se outro sistema exigir somente seis caracteres, remova-a sem alterar os pares. Esta capacidade não calcula transparência, perfis, diferenças perceptivas, HSL, CMYK ou nomes de cores.
Casos de uso
Preparar cores CSS
Converta canais RGB de uma especificação visual em códigos #RRGGBB fixos para folhas de estilo e componentes.
Padronizar tokens de design
Reúna campos separados de vermelho, verde e azul em um valor hexadecimal consistente para temas e catálogos de tokens.
Validar paletas importadas
Rejeite canais fora do intervalo vindos de planilhas ou bancos e gere códigos exatos para todas as entradas válidas.
Perguntas frequentes
Quais valores RGB são aceitos?
Cada canal r, g e b deve ser um inteiro de 0 a 255, incluindo os dois limites.
O resultado inclui a cerquilha?
Sim. O campo hex usa o formato #RRGGBB completo, com a cerquilha inicial e seis dígitos.
Códigos hexadecimais em maiúsculas e minúsculas são diferentes?
Não. CSS ignora a capitalização das letras; o conversor retorna maiúsculas para manter a consistência.
Posso digitar um decimal como 12.5?
Não. Cada canal precisa ser um número inteiro de 0 a 255, então 12.5 é recusado, assim como valores negativos e acima de 255. Corrija o canal indicado e digite os três valores de novo.
Por que o resultado nunca usa a forma curta de três dígitos?
Todo resultado usa a forma completa de seis dígitos, mesmo quando existe uma notação CSS mais curta. Tamanho e ordem fixos deixam os códigos mais fáceis de comparar, guardar e testar.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/color/rgb-to-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":128,"b":0}'const res = await fetch("https://api.kit.forhosting.com/color/rgb-to-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 128,
"b": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb-to-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 128,
"b": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb-to-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":128,"b":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":128,"b":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb-to-hex", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"r": 255,
"g": 128,
"b": 0
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_to_hex",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Forneça canais válidos e interprete os erros
Valores textuais não são tratados como números, o que mantém o contrato da API previsível e impede que coerções acidentais alterem entradas ambíguas.
Use o resultado em fluxos de design e desenvolvimento
Suítes de testes podem usar o endpoint para criar valores esperados exatos para controles de cor e código de serialização. Para automação, cada solicitação de API custa US$ 0,002 e usa o mesmo cálculo determinístico.
Perguntas técnicas
O que acontece quando um canal fica fora do intervalo?
A conversão falha com um erro invalid_input. Os valores nunca são limitados nem reiniciados.
Quanto custa uma conversão pela API?
Cada solicitação de API custa US$ 0,002. O conversor determinístico no navegador serve para verificações interativas.