Conversor de OKLCH para HEX
Este conversor de OKLCH para HEX transforma uma cor em sintaxe CSS em um valor hexadecimal sRGB de seis dígitos.
Executar grátis
Ele percorre uma rota numérica explícita das coordenadas cilíndricas OKLCH para OKLab e RGB linear e, em seguida, limita os canais que ficam fora da gama sRGB exibível. O resultado é determinístico, adequado à automação e acompanhado pelos valores RGB e OKLab, para que você possa conferir exatamente o que foi convertido sem tratar o código HEX final como uma caixa-preta.
Informe uma cor OKLCH válida
Digite a cor na notação funcional do CSS, como oklch(62.8% 0.258 29.23). A luminosidade pode ser expressa como porcentagem de 0% a 100% ou como valor sem unidade de 0 a 1. O croma precisa ser zero ou positivo. O matiz é interpretado em graus quando não há sufixo, e os sufixos usuais deg, grad, rad e turn também são aceitos. O ângulo pode ficar fora do intervalo de 0 a 360, pois será normalizado para o valor equivalente. O conversor exige as três coordenadas e não aceita alfa, a palavra CSS none, vírgulas, entrada HEX ou outra função de cor. Essas regras mantêm o contrato voltado à produção de uma cor opaca de seis dígitos e fazem dados malformados falharem de modo claro, em vez de gerar um resultado aparentemente válido por adivinhação. Todos os componentes numéricos devem ser finitos; Infinity e NaN são recusados antes do cálculo. Essa fronteira rigorosa ajuda em ferramentas de build e pipelines de dados, nos quais um formato inesperado pode espalhar uma cor de marca incorreta por diversos arquivos gerados.
Entenda o caminho da conversão
OKLCH descreve uma cor por luminosidade perceptual, croma e matiz. Primeiro, o conversor normaliza o matiz e resolve as coordenadas cilíndricas nos eixos a e b do OKLab usando cosseno e seno. Depois, aplica a transformação publicada do OKLab para obter canais sRGB lineares. Esses canais passam pela curva de transferência sRGB padrão e são quantizados em valores inteiros de vermelho, verde e azul entre 0 e 255. Cada byte vira exatamente dois caracteres hexadecimais; portanto, o resultado principal sempre segue o formato #RRGGBB. A resposta também traz as coordenadas OKLab resolvidas e os canais RGB inteiros. Esses dados intermediários facilitam a investigação quando um aplicativo de design e um pipeline de código parecem divergir. Os valores intermediários de ponto flutuante são arredondados somente no objeto OKLab apresentado; a precisão numérica completa é mantida até o cálculo dos bytes RGB finais. O algoritmo não usa rede, aleatoriedade, hora atual, formatação regional nem estado mutável, então a mesma entrada produz o mesmo JSON na API e no navegador.
Trate cores fora do sRGB
OKLCH consegue descrever cores que telas sRGB comuns e a notação HEX de seis dígitos não representam. Quando um canal RGB linear calculado fica abaixo de zero ou acima de um, o conversor o limita à fronteira mais próxima antes de aplicar a curva sRGB. A resposta define clamped como true quando isso ocorre. O corte é previsível e rápido, mas não é uma estratégia perceptual de mapeamento de gama: uma entrada muito viva pode perder nuances, mudar de matiz aparente ou chegar a um canal totalmente saturado. Considere essa marca um aviso para revisar a cor, principalmente em paletas de marca, tokens de acessibilidade e gradientes nos quais a relação entre tons vizinhos importa. Se clamped for false, todos os canais já estavam dentro do sRGB antes da codificação. Se for true e a fidelidade visual for importante, reduza o croma na origem OKLCH e converta novamente até a cor caber na gama. Esse comportamento explícito evita cálculos de canal inválidos e garante uma saída utilizável de seis dígitos sem esconder a concessão. O alfa não é preservado porque o HEX de seis dígitos representa cor opaca; use outro fluxo quando houver transparência.
Casos de uso
Exportar tokens de design
Converta valores perceptuais de paletas OKLCH em códigos HEX estáveis para sistemas que só aceitam sRGB de seis dígitos.
Validar um pipeline de cores
Confira RGB, OKLab e o indicador de corte de gama ao comparar resultados de ferramentas de design e desenvolvimento.
Gerar CSS compatível
Crie um fallback HEX determinístico para uma cor OKLCH usada em folhas de estilo, e-mails, modelos ou clientes antigos.
Perguntas frequentes
Quanto custa a conversão?
Ela pode ser executada gratuitamente no navegador desta página ou custa US$ 0,002 por solicitação via API.
Por que a saída informa clamped?
Pelo menos um canal sRGB linear calculado saiu da faixa exibível e foi limitado a zero ou um antes da codificação.
O conversor aceita transparência alfa?
Não. O destino é um código HEX opaco de seis dígitos; por isso, entradas OKLCH com componente alfa são recusadas.
Quais unidades de matiz posso usar?
Você pode omitir a unidade para graus ou usar deg, grad, rad e turn. Os ângulos são normalizados entre zero e 360 graus.
Por que outro conversor gera um HEX diferente?
As ferramentas podem adotar matrizes, arredondamentos ou mapeamentos de gama distintos. Esta usa transformação fixa, corte de canais, curva sRGB e arredondamento ao byte mais próximo.
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/oklch-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"oklch(62.8% 0.258 29.23)"}'const res = await fetch("https://api.kit.forhosting.com/color/oklch-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "oklch(62.8% 0.258 29.23)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/oklch-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "oklch(62.8% 0.258 29.23)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/oklch-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"oklch(62.8% 0.258 29.23)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"oklch(62.8% 0.258 29.23)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/oklch-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
{
"text": "oklch(62.8% 0.258 29.23)"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.oklch_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. |