Verifique se uma cor é quente ou fria pelo matiz
O verificador de cores quentes ou frias converte uma cor hexadecimal em seu ângulo de matiz e compara esse valor com centros fixos.
Executar grátis
O vermelho em 0 graus é o centro quente, e o ciano em 180 graus é o centro frio; vence o centro mais próximo. Os matizes exatamente no limite são classificados como frios para que o desempate seja sempre estável. A resposta inclui a cor normalizada, o matiz, a categoria e a distância angular, tornando a decisão transparente e repetível em ferramentas de design, testes e fluxos automatizados de cores.
Como é feita a decisão entre quente e fria
Este verificador usa uma definição geométrica no círculo de matiz RGB padrão. O vermelho, em 0 graus, é o centro da metade quente; o ciano, em 180 graus, é o centro da metade fria. Depois de converter a cor hexadecimal informada em um matiz, a calculadora mede a menor distância angular até o centro quente. Uma distância abaixo de 90 graus produz quente; uma distância de 90 graus ou mais produz fria. Portanto, as duas divisões ficam em 90 e 270 graus. Como essas posições estão à mesma distância dos centros, a calculadora atribui ambos os empates exatos à categoria fria. Essa regra explícita impede que aplicativos diferentes decidam de maneiras distintas no limite. O resultado informa o matiz e a distância usados, permitindo auditar a categoria em vez de aceitar uma opinião oculta. Essa classificação é uma convenção prática para cores digitais; cores vizinhas, iluminação e contexto cultural ainda podem alterar a sensação de temperatura.
Como inserir a cor e entender a resposta
Informe uma cor RGB hexadecimal com três dígitos, como #F60, ou seis, como #FF6600. O símbolo inicial é opcional, e letras maiúsculas ou minúsculas são equivalentes. A resposta expande a forma abreviada e devolve um valor de seis dígitos em maiúsculas no campo color. O campo hue_degrees mostra a posição calculada de 0 até menos de 360 graus. Category contém a classificação quente ou fria. Distance_from_warm_center indica quanto o matiz se afasta do vermelho pelo menor caminho no círculo, enquanto os dois campos de centro registram os ângulos de referência. Um resultado perto de 90 graus de distância está próximo da divisão e pode parecer sensível ao contexto, embora a resposta computacional continue estável. Preto, branco e qualquer cinza exato são rejeitados: seus canais vermelho, verde e azul são iguais, portanto o matiz é matematicamente indefinido e uma classificação baseada nele seria inventada.
Como aplicar rótulos determinísticos em um fluxo
Um rótulo determinístico ajuda quando uma paleta precisa ser filtrada, testada ou encaminhada sem repetir uma avaliação humana. Um script de design system pode classificar candidatos a cor de destaque e verificar se uma coleção quente contém apenas resultados quentes. Um catálogo pode adicionar um filtro de temperatura pesquisável às amostras cromáticas de produtos. Um gerador de gráficos pode escolher uma família contrastante consultando a categoria antes das cores de apoio. O cálculo não usa rede, escolhas aleatórias, estado armazenado nem horário atual; por isso, entradas idênticas sempre geram saídas idênticas. Na automação pela API, cada solicitação custa US$ 0,002; o executor do navegador usa o mesmo cálculo puro. Considere o rótulo uma propriedade mensurável, e não uma teoria completa da aparência das cores. Saturação e luminosidade não mudam o ângulo do matiz, mas influenciam bastante a percepção de temperatura. Para decisões artísticas refinadas, reveja depois a cor junto ao fundo e à paleta pretendidos.
Casos de uso
Organizar uma paleta digital
Separe amostras hexadecimais cromáticas em grupos quentes e frios estáveis antes da revisão final do design.
Testar tokens de design
Confirme que tokens semânticos de um tema quente ou frio continuam na metade esperada do círculo após alterações.
Etiquetar cores de produtos
Adicione uma categoria determinística às amostras cromáticas do catálogo para filtros e fluxos de merchandising.
Perguntas frequentes
Quais ângulos são considerados quentes?
São quentes os matizes cuja menor distância do vermelho em 0 graus fica abaixo de 90 graus: de 0 a menos de 90 e acima de 270 a menos de 360 graus.
O que acontece exatamente na divisão?
Os ângulos de exatamente 90 ou 270 graus empatam entre os centros. A regra determinística classifica ambos como frios.
Por que cinza, preto e branco são rejeitados?
Os canais RGB dessas cores são iguais, portanto elas não têm ângulo de matiz definido. Atribuir uma categoria contrariaria a regra.
Saturação ou brilho mudam a categoria?
Não. Eles alteram a aparência, mas esta capacidade classifica intencionalmente apenas pelo ângulo do matiz.
Quais formatos de cor são aceitos?
São aceitos RGB hexadecimal de três ou seis dígitos, com ou sem o símbolo inicial. Canais alfa e nomes de cores não são aceitos.
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/warm-or-cool \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#E85D04"}'const res = await fetch("https://api.kit.forhosting.com/color/warm-or-cool", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#E85D04"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/warm-or-cool",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#E85D04"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/warm-or-cool", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#E85D04"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#E85D04"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/warm-or-cool", 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": "#E85D04"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.warm_or_cool",
"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. |