Conversor HSL para RGB
Transforme três números HSL nos canais que uma tela usa: matiz 210, saturação 80% e luminosidade 45% dão rgb(23, 115, 207), ou seja, #1773cf em hex, pelo mesmo método que os navegadores aplicam ao hsl(). 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
- H
- 210
- S
- 80
- L
- 45
- Resistência (Ω)
- 23
- G
- 115
- B
- 207
- Canais RGB
- rgb(23, 115, 207)
HSL descreve uma cor pelo matiz na roda, a saturação como o quão vívida a cor é e a luminosidade como o quão perto ela fica do preto ou do branco. Designers e engenheiros front-end costumam escolher cores em HSL porque girar o matiz mantém saturação e luminosidade estáveis; ainda assim, navegadores, canvas, buffers de imagem e a maioria das APIs gráficas precisam, no fim, de canais vermelho, verde e azul em uma escala de zero a duzentos e cinquenta e cinco. Este conversor recebe três números —matiz em graus de zero a trezentos e sessenta, saturação e luminosidade como porcentagens de zero a cem— e devolve canais RGB inteiros, uma string CSS rgb() e um código hex em minúsculas, usando o mesmo caminho de forma fechada que os navegadores aplicam a hsl() em CSS. Matiz fora do intervalo fechado de zero a trezentos e sessenta é rejeitado com um erro de validação claro para que tokens inválidos nunca envolvam em silêncio.
Como o HSL se mapeia para vermelho, verde e azul
O matiz é um ângulo na roda de cores: zero graus é vermelho puro, cento e vinte é verde puro, duzentos e quarenta é azul puro e trezentos e sessenta fecha o círculo de volta ao vermelho. A saturação estica um cinza da luminosidade escolhida em direção à cor plenamente cromática naquele matiz; zero por cento de saturação é sempre cinza, preto ou branco acromático dependendo apenas da luminosidade.
A luminosidade vai do preto a zero por cento, passa pelo tom médio puro perto de cinquenta por cento e chega ao branco a cem por cento. O algoritmo de conversão usado aqui segue o CSS Color Module e a formulação W3C: escala saturação e luminosidade para o intervalo unitário, calcula os limites intermediários de croma p e q a partir de luminosidade e saturação e amostra três posições deslocadas no círculo unitário com o clássico auxiliar hue2rgb para os canais vermelho, verde e azul.
Quando a saturação é zero, os três canais colapsam no mesmo cinza derivado da luminosidade, o que é ao mesmo tempo um atalho de desempenho e um ganho de estabilidade numérica. Cada canal do intervalo unitário é multiplicado por duzentos e cinquenta e cinco e arredondado para o inteiro mais próximo para que o resultado corresponda às expectativas de framebuffers de oito bits e de CSS rgb().
Saturação e luminosidade devem cada uma estar entre zero e cem por cento inclusive, coincidindo com as porcentagens que os designers digitam nas folhas de estilo.
O que você envia e o que recebe de volta
Envie três números finitos nos campos h, s e l. O campo h é o matiz em graus e é obrigatório; deve ficar entre zero e trezentos e sessenta inclusive. Os campos s e l são saturação e luminosidade como porcentagens de zero a cem.
Quando o matiz está fora da faixa legal, a resposta explica que h deve estar entre zero e trezentos e sessenta graus para que o cliente possa limitar ou corrigir o token antes de tentar de novo.
Em caso de sucesso, a resposta ecoa os valores h, s e l limpos, canais inteiros r, g e b cada um de zero a duzentos e cinquenta e cinco, uma string rgb imprimível na forma rgb(R, G, B), uma string hex em minúsculas na forma #rrggbb e uma nota curta de fórmula nomeando o caminho CSS e W3C.
Verificações clássicas incluem vermelho puro com matiz zero, saturação cem e luminosidade cinquenta, gerando duzentos e cinquenta e cinco, zero, zero; cinza médio com qualquer matiz, saturação zero e luminosidade cinquenta, gerando cento e vinte e oito em cada canal; e verdes profundos perto do matiz cento e vinte com alta saturação e luminosidade moderada.
Onde a conversão HSL para RGB aparece no trabalho real
Sistemas de design guardam rampas de marca e tokens semânticos em HSL para que as equipes de produto possam girar o matiz nos temas mantendo degraus de luminosidade amigáveis ao contraste; publicar em propriedades customizadas CSS, cores nativas móveis e estilos de preenchimento de canvas ainda exige RGB e hex confiáveis. Bibliotecas de visualização de dados geram paletas categóricas avançando o matiz com saturação e luminosidade fixas e depois convertem cada passo para RGB em motores SVG, WebGL e de gráficos.
Modelos de e-mail e geradores de PDF costumam aceitar apenas hex ou rgb(), então pipelines de automação de marketing convertem as especificações HSL da marca uma vez e colocam o triplo de canais em cache. Ferramentas de jogos e editores de níveis expõem rodas de matiz aos artistas e precisam despejar RGB inteiro em definições de material e tintas de textura sem APIs exclusivas do navegador.
Fluxos de acessibilidade calculam razões de contraste em RGB ou luminância relativa; partir de HSL para ajustes perceptuais de luminosidade ainda termina nos valores de canal que este conversor fornece. Currículos e aulas de bootcamp ensinam modelos de cor lado a lado e precisam de um único oráculo confiável que combine com a renderização CSS para as chaves das tarefas.
Se mais tarde você precisar de conversão multi-formato entre HEX, LAB e CMYK, a inversa de RGB para HSL ou checagens de contraste WCAG, trate-as como intenções de busca e páginas de destino separadas em vez de sobrecarregar esta página dedicada ao conversor HSL para RGB.
Casos de uso
Tokens de design para CSS e hex
Converta rampas de marca HSL em canais RGB inteiros e códigos #rrggbb para folhas de estilo, tokens de design e tabelas de documentação que precisam bater com a renderização hsl() do navegador.
Geradores de paleta e gráficos
Avance o matiz com saturação e luminosidade fixas para paletas categóricas e obtenha RGB 0–255 estável para bibliotecas SVG, canvas e de visualização de dados.
Perguntas frequentes
Quais intervalos matiz, saturação e luminosidade aceitam?
O matiz h deve estar entre 0 e 360 graus inclusive. Saturação s e luminosidade l são porcentagens de 0 a 100.
O que acontece se o matiz estiver fora de 0–360?
Este conversor não envolve o matiz módulo 360; corrija ou limite o ângulo antes de tentar de novo.
Qual algoritmo converte HSL em RGB?
O caminho do CSS / W3C Color Module: saturação e luminosidade no intervalo unitário, intermediários p e q, amostras hue2rgb para vermelho, verde e azul, depois Math.round para inteiros 0–255.
A resposta inclui hex além de RGB?
Sim. Respostas bem-sucedidas incluem inteiros r, g, b, uma string css rgb() e um código hex #rrggbb em minúsculas para colar em folhas de estilo ou ferramentas de design.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
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/hsl-rgb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"h":210,"s":80,"l":45}'const res = await fetch("https://api.kit.forhosting.com/color/hsl-rgb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"h": 210,
"s": 80,
"l": 45
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/hsl-rgb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"h": 210,
"s": 80,
"l": 45
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/hsl-rgb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"h":210,"s":80,"l":45}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"h":210,"s":80,"l":45}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/hsl-rgb", 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
{
"h": 210,
"s": 80,
"l": 45
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.hsl_rgb",
"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
Como o HSL se mapeia para vermelho, verde e azul
O pipeline é aritmética de ponto flutuante pura, sem sementes aleatórias, sem carimbos de relógio e sem chamadas de rede, de modo que entradas HSL idênticas sempre produzem o mesmo JSON. O matiz deve estar no intervalo fechado de zero a trezentos e sessenta; valores como menos um ou quatrocentos falham com invalid_input em vez de envelopamento modular.
O que você envia e o que recebe de volta
Campos ausentes, strings não numéricas, NaN e Infinity falham com invalid_input e não são cobrados. O preço de chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde a conversão HSL para RGB aparece no trabalho real
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Pipelines em massa de tokens
Programe especificações HSL do design system em fixtures RGB e hex para temas móveis, modelos de e-mail e testes de regressão com uma API determinística.