Hex para cinza por luminosidade HSL
Transforme uma cor hex em cinza do jeito HSL: em #e74c3c o canal mais alto é 231 e o mais baixo é 60, então a luminosidade é (231 + 60) / 2 = 145,5 e o cinza resultante é #929292. 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
- Cor
- #e74c3c
- Valor
- 146
- Hex de entrada
- #e74c3c
- RGB de entrada
- 231, 76, 60
- Resistência (Ω)
- 231
Um conversor de hex para tons de cinza por luminosidade (lightness) mapeia uma cor hex opaca em um único cinza neutro segundo a definição clássica de lightness em HSL: a média do canal máximo e do mínimo entre vermelho, verde e azul. Cole #e74c3c, #3498db ou a forma curta de três dígitos como #f0a; a ferramenta expande o hex, lê cada canal como inteiro de zero a duzentos e cinquenta e cinco, calcula L igual a max mais min sobre dois, arredonda para o byte de cinza mais próximo e devolve o triplo hex cinza, o valor numérico, uma string CSS rgb(), os canais max e min, e a aritmética passo a passo.
Por que a lightness HSL difere do cinza por luminosidade
Há mais de uma forma padrão de colapsar uma cor em cinza, e escolher a fórmula errada altera em silêncio o contraste, mockups de impressão e temas monocromáticos. A lightness HSL trata os canais mais claro e mais escuro como as únicas entradas que importam: L é a média do canal máximo e do canal mínimo entre vermelho, verde e azul.
O vermelho puro #ff0000, o verde puro #00ff00 e o azul puro #0000ff compartilham max duzentos e cinquenta e cinco e min zero, então os três mapeiam para o mesmo cinza médio sob lightness embora pareçam muito diferentes ao olho. A ponderação por luminosidade, em contraste, multiplica os canais por coeficientes fixos BT.601 que enfatizam o verde e desvalorizam o azul, de modo que o verde puro vira um cinza mais claro que o azul puro. Nenhum método está errado; respondem a intenções de busca distintas.
Quem digita hex para cinza por lightness, dessaturar HSL para cinza ou conversor de média max min para cinza pede a definição HSL, não a fórmula de luma de televisão. Esta página implementa apenas o caminho de lightness, documenta a fórmula em cada resposta bem-sucedida e deixa a conversão por luminosidade ao conversor irmão de cor para cinza que usa coeficientes ponderados.
Exercícios de sala e entrevistas de código frequentemente especificam lightness explicitamente como max mais min sobre dois; uma referência determinista remove a ambiguidade sobre se os canais foram normalizados primeiro para zero-um, como seminteiros são arredondados e se o hex de três dígitos foi expandido antes de tomar max e min.
Dicas práticas, limites e buscas relacionadas
Ao escrever testes unitários, cubra pelo menos um vermelho vivo, um teal dominado por verde, um azul puro que deva coincidir com o vermelho puro sob lightness, uma entrada já cinza que deva retornar a si mesma, um atalho de três dígitos e um hex inválido deliberado para que regressões de validação não passem despercebidas. Lembre-se de que a lightness trata primários puros como igualmente brilhantes: se o produto precisa de brilho percebido ponderado no verde, use o conversor de cinza por luminosidade em vez desta página.
Não envie formas com alfa como #RRGGBBAA — esta página converte apenas hex opaco e rejeita comprimentos inesperados. Cores CSS nomeadas e strings rgb() devem ser resolvidas primeiro para hex e depois passadas aqui, para que a superfície de validação seja uma única string de cor bem especificada.
Esta página atende quem busca hex para cinza por lightness, conversor de cinza por lightness HSL, média max min para cinza a partir de hex, ou dessaturar hex por lightness grátis online; não é um dessaturador de imagens completo, nem um conversor multi-espaço para LAB ou CMYK, nem um gerador de paletas.
Prefira esta capacidade quando você já tem um token hex e só precisa do hex cinza por lightness HSL e do valor inteiro; se o pipeline ainda deve emitir componentes HSL, matiz ou saturação, use um conversor hex para HSL nesses campos e esta ferramenta no passo monocromático.
Casos de uso
Tokens monocromáticos no eixo HSL
Designers colam códigos hex de marca e recebem valores hex cinza por lightness HSL para temas monocromáticos que devem seguir o comportamento CSS de dessaturar para lightness, não pesos de luminosidade.
Comparar cinzas por lightness e por luminosidade
Converta o mesmo hex com esta ferramenta e com um conversor por luminosidade para documentar como os primários puros divergem e escolha o método que o design system documenta.
Perguntas frequentes
Qual fórmula o hex para cinza por lightness usa?
Lightness HSL em canais de 8 bits: L = (max(R,G,B) + min(R,G,B)) / 2, arredondado ao inteiro mais próximo de 0 a 255. O hex cinza repete esse byte três vezes como #YY.
Como isso difere do cinza por luminosidade?
A lightness média apenas os canais mais claro e mais escuro. A luminosidade pondera R, G e B (classicamente 0.299, 0.587, 0.114). Vermelho, verde e azul puros compartilham o mesmo cinza por lightness, mas não o mesmo cinza por luminosidade.
Quais formatos de cor são aceitos?
Hex #RGB ou #RRGGBB com # inicial opcional, sem distinção de maiúsculas. Hex com alfa, cores CSS nomeadas e strings rgb() não são aceitos nesta página.
O hex para cinza por lightness é grátis?
A ferramenta do navegador é gratuita e roda localmente.
Que cinza #e74c3c dá pela luminosidade HSL?
Dá #929292. Os canais são 231, 76 e 60; a média entre o mais alto e o mais baixo é (231 + 60) / 2 = 145,5, arredondada para o valor de cinza 146.
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/grayscale-lightness \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#e74c3c"}'const res = await fetch("https://api.kit.forhosting.com/color/grayscale-lightness", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#e74c3c"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/grayscale-lightness",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#e74c3c"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/grayscale-lightness", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#e74c3c"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#e74c3c"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/grayscale-lightness", 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
{
"color": "#e74c3c"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.grayscale_lightness",
"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
Cadeias de cor inválidas — entrada vazia, comprimento hex incorreto, caracteres não hexadecimais, prefixo de programação 0x ou campo ausente — falham com um erro invalid_input claro em vez de inventar uma amostra. O caminho é análise e aritmética puramente deterministas — sem rede, sem sementes aleatórias, sem dependência de relógio — assim o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON sempre que você chamar.
Como chamar a API e o que retorna
Espaços ao redor são removidos, letras hex podem ser maiúsculas ou minúsculas, e o hash inicial é opcional. Apenas corpos hexadecimais de três ou seis dígitos são aceitos; formas de oito dígitos com alfa, cores CSS nomeadas como rebeccapurple, strings de função rgb() e campos numéricos de canal separados ficam fora do escopo deste contrato focado em string e serão rejeitados para que você note em vez de descartar alfa em silêncio ou inventar um parse. Envie um corpo JSON com uma string color obrigatória. O campo color aceita os aliases hex, value, text, input e code; exemplos válidos incluem #e74c3c, e74c3c, #abc e ABC. Em sucesso a resposta devolve input_hex e input_rgb da origem resolvida, o inteiro gray e os aliases gray_value e value, gray_hex e hex como código neutro de seis dígitos, gray_rgb como array de três elementos, css como rgb(g, g, g), max_channel e min_channel, lightness como a média pré-arredondamento com precisão de exibição fixa, formula reafirmando L igual a max mais min sobre dois, method igual a hsl_lightness, message como resumo curto em inglês e steps como array ordenado de linhas de substituição para ensino ou depuração. Validação falha — color ausente, string vazia, comprimento hex errado, caracteres não hex ou prefixo de programação 0x — retorna invalid_input e nunca é cobrada. O preço é um fixo US$ 0,002 por requisição bem-sucedida com unidade item. Prefira enviar o token exato exportado pela sua ferramenta de design, incluindo o hash se o tiver; a resposta sempre normaliza a origem para um input_hex de seis dígitos em minúsculas para que diffs posteriores fiquem estáveis entre formatos de área de transferência.
Dicas práticas, limites e buscas relacionadas
Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém baratos scripts exploratórios e validação de formulários enquanto se colam valores imperfeitos da área de transferência. Fixe o cinza arredondado e gray_hex em testes automatizados para que uma mudança futura de política de arredondamento não passe em silêncio, e documente que method é hsl_lightness ao armazenar resultados ao lado de cinzas baseados em luminosidade de outros sistemas.
Casos de integração
Testes unitários de dessaturação por lightness
Gere valores de cinza de referência a partir de fixtures hex para que motores de tema afirmem a matemática estável (max+min)/2 e detectem regressões ao trocar fórmulas de luminosidade.
Perguntas técnicas
O que acontece com uma string de cor inválida?
A API retorna invalid_input com uma mensagem descrevendo o problema (entrada vazia, comprimento hex incorreto, caracteres não hex, prefixo 0x, etc.). Validação falha não é cobrada.