Distância entre cor e complementar
A distância entre cor e complementar transforma uma relação conhecida do círculo cromático em uma medida reproduzível.
Executar grátis
Informe uma cor hexadecimal ou RGB; a calculadora deriva a complementar HSL exata a 180 graus, converte ambas de sRGB para CIELAB D65 e apresenta a separação Delta E 76. Um índice normalizado de força da harmonia facilita ordenar ou comparar resultados, enquanto cor original, complementar, canais RGB, códigos hexadecimais e coordenadas Lab tornam cada etapa verificável. Uma validação rigorosa rejeita entradas incompletas ou fora da faixa, sem alterá-las silenciosamente.
Informe uma cor e defina a complementar com consistência
Envie uma cor como código hexadecimal de três ou seis dígitos, expressão rgb(r, g, b) ou três canais RGB separados por vírgulas. O sinal de cerquilha inicial e a caixa das letras hexadecimais não mudam o resultado. Os canais RGB devem ser números inteiros de 0 a 255; portanto, sintaxe malformada, porcentagens, decimais, canais ausentes e valores fora da faixa sRGB exibível são recusados como entrada inválida. Depois da análise, a calculadora converte os canais RGB de origem para HSL e gira a matiz em exatamente 180 graus, preservando saturação e luminosidade. Essa definição corresponde ao ponto oposto clássico no círculo HSL e deixa a operação explícita, sem depender de um julgamento artístico não declarado. O valor HSL girado volta a canais sRGB inteiros antes da medição, acompanhando as cores que telas comuns e fluxos CSS conseguem representar. Entradas acromáticas são um caso importante: como o cinza tem saturação zero, girar sua matiz nominal não cria uma cor visivelmente diferente. Sua complementar continua sendo o mesmo cinza e a distância medida é zero. Entradas idênticas sempre produzem saídas idênticas, pois o cálculo não usa rede, aleatoriedade, relógio, consulta de perfil nem estado oculto.
Interprete a distância Lab e a força da harmonia
A resposta exibe original e complementar normalizados como valores hexadecimais de seis dígitos em maiúsculas, canais RGB inteiros e coordenadas CIELAB. A conversão começa pela linearização dos canais sRGB padrão, faz o mapeamento pela matriz sRGB convencional para CIE XYZ, usa o branco de referência D65 adotado pelo sRGB e aplica a função de transferência CIELAB. O valor delta_e_76 é a distância euclidiana entre os dois trios Lab: zero indica que as cores renderizadas coincidem, e números maiores representam maior separação perceptual segundo esse modelo. Delta E 76 foi escolhido de propósito porque este endpoint mede um par determinístico, sem aplicar pesos de tolerância específicos de um setor. O campo harmony_strength leva a distância para uma escala prática de 0 a 100, dividindo Delta E por dois e limitando o resultado a 100. Trata-se de um indicador comparativo, não de uma lei universal de beleza. As categorias simplificam a triagem: abaixo de 15 é fraca; de 15 a menos de 35, moderada; de 35 a menos de 65, forte; e 65 ou mais, muito forte. Complementares saturadas costumam ter pontuação alta; cores suaves e neutras, menor. Preserve delta_e_76 quando precisar da medição bruta e use a nota ou categoria em painéis, filtros e regras simples de design.
Use a métrica com responsabilidade em sistemas de design
Esta calculadora ajuda quando um gerador de paletas, criador de temas, sistema de gráficos ou pipeline de tokens de marca precisa de mais do que o hexadecimal da cor complementar. Sua equipe pode derivar complementares por uma convenção estável, classificar cores de origem pela separação perceptual gerada e guardar as coordenadas Lab junto aos tokens para auditoria. O preço da API é US$ 0,002 por item bem-sucedido, e a execução no navegador atende a verificações interativas rápidas. As falhas de validação evitam que textos de cor defeituosos se transformem em dados de paleta aparentemente plausíveis. Não confunda força da harmonia com contraste de acessibilidade: Delta E estima diferença de cor, enquanto texto legível requer cálculo de contraste de luminância, tamanho da fonte e contexto. Uma nota muito forte também não garante adequação a determinada marca, cultura, estado de interface ou processo de impressão. O cálculo trabalha com sRGB de tela; cores impressas, tintas especiais, valores de gamut amplo e amostras medidas precisam de um perfil de cor explicitamente gerenciado. Considere o resultado uma evidência entre contraste, hierarquia, equilíbrio de saturação e avaliação humana. Quando a reprodução for importante, registre o campo method: ele identifica todo o caminho de rotação HSL, CIELAB D65 e Delta E 76, impedindo confusão com CIE94, CIEDE2000 ou outra regra de complementaridade.
Casos de uso
Classificar cores de destaque geradas
Meça cada cor da marca em relação à complementar derivada e priorize pares com a separação perceptual desejada.
Auditar a geração de tokens
Armazene hexadecimal, RGB, Lab, método e distância normalizados para reproduzir e conferir depois um token complementar.
Ensinar relações entre cores
Demonstre por que cores saturadas e cinzas neutros se comportam de maneira diferente ao medir a mesma rotação de matiz de 180 graus.
Perguntas frequentes
Como a cor complementar é calculada?
A origem é convertida de sRGB para HSL, a matiz gira 180 graus, saturação e luminosidade permanecem fixas, e o resultado volta a sRGB inteiro.
O que significa Delta E 76?
É a distância em linha reta entre original e complementar no CIELAB. Zero indica nenhuma separação Lab; valores maiores indicam maior separação perceptual modelada.
Como a força da harmonia é calculada?
A calculadora divide Delta E 76 por dois e limita o resultado a 100. A nota é um indicador comparativo consistente, não uma avaliação estética objetiva.
Uma pontuação alta garante contraste acessível?
Não. Distância perceptual e contraste de luminância respondem a questões diferentes. Use uma calculadora de contraste WCAG para texto e acessibilidade de interfaces.
Quanto custa um cálculo pela API?
Cada item de API processado com sucesso custa US$ 0,002. A entrada inválida é rejeitada claramente, sem ser ajustada silenciosamente à faixa permitida.
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/complement-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#336699"}'const res = await fetch("https://api.kit.forhosting.com/color/complement-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#336699"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/complement-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#336699"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/complement-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#336699"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#336699"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/complement-distance", 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": "#336699"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.complement_distance",
"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. |