Mescle duas cores com o modo Sobreposição
Este mesclador combina uma cor base e uma cor de mesclagem pela operação Sobreposição comum em programas gráficos.
Executar grátis
Cada canal vermelho, verde e azul é avaliado separadamente: canais escuros da base usam multiplicação, enquanto canais claros usam trama. Informe cores hexadecimais de três ou seis dígitos e receba um hexadecimal normalizado, canais RGB numéricos e uma string RGB pronta para CSS. O cálculo é determinístico, dispensa o envio de imagens e valida as duas entradas antes de gerar a resposta.
Como a Sobreposição escolhe a fórmula
Sobreposição é um modo que aumenta o contraste, não uma média entre duas cores. A calculadora primeiro converte cada componente hexadecimal em um valor de zero a um. Em seguida, examina separadamente os componentes vermelho, verde e azul da base. Quando o valor base é igual ou inferior à metade, o componente segue a multiplicação: duas vezes a base vezes a mesclagem. Acima da metade, ele segue a trama: um menos duas vezes a distância restante de ambos os componentes até um. A escolha ocorre de forma independente em cada canal; por isso, um resultado pode multiplicar o vermelho e aplicar trama ao azul. O valor normalizado volta ao intervalo de 0 a 255 e é arredondado para o inteiro mais próximo. Essa sequência explícita torna a saída reproduzível e corresponde à definição convencional sem alfa usada por ferramentas gráficas. A posição das entradas importa: trocar base e mesclagem pode mudar o ramo selecionado e produzir outra cor.
Informe as cores e entenda a resposta
Forneça uma cor base e uma cor de mesclagem em notação hexadecimal. São aceitos tanto seis dígitos, como #336699, quanto três dígitos, como #369. O sinal # inicial é opcional, mas canais alfa, nomes de cores, funções CSS e espaços entre dígitos são rejeitados. Valores curtos são expandidos antes do cálculo, e entradas válidas retornam com seis dígitos maiúsculos para manter registros e testes consistentes. A resposta inclui o hexadecimal mesclado, um objeto RGB com campos inteiros e uma string rgb(...) que você pode colar em CSS. Ela também repete as entradas normalizadas e identifica o modo. A validação ocorre antes de qualquer cálculo. Se um campo estiver ausente, não for texto, contiver caractere inválido ou tiver tamanho incorreto, a solicitação retorna erro de entrada inválida, sem tentar adivinhar. Esse rigor ajuda em sistemas de build, nos quais uma cor aparentemente aceitável, mas não intencional, seria mais difícil de encontrar do que uma falha clara.
Use resultados determinísticos no seu fluxo de design
Use esta calculadora quando uma especificação indicar Sobreposição, mas você precisar de uma cor plana concreta em vez de um arquivo com camadas. Ela ajuda a gerar tokens de tema, conferir o resultado de um editor gráfico, criar valores esperados para testes de renderização ou calcular uma alternativa para sistemas que não preservam modos de mesclagem. Como a operação trabalha apenas com canais, ela não analisa pixels, opacidade, perfis de cor, gradientes nem a arte ao redor. Caso uma camada tenha transparência, componha o alfa separadamente ou use um fluxo de imagens que compreenda a pilha completa. O cálculo usa diretamente os canais RGB codificados; não lineariza a luz sRGB nem faz mistura perceptual. Isso é intencional, pois corresponde à fórmula convencional esperada por designers. O uso no navegador é grátis, e solicitações automatizadas à API custam US$ 0,002 cada. Os dois caminhos executam o mesmo cálculo puro, sem rede, aleatoriedade ou relógio; portanto, entradas válidas idênticas sempre produzem a mesma saída.
Casos de uso
Achate um token de design
Transforme uma base e uma camada Sobreposição em um único hexadecimal estável para um tema ou uma biblioteca de componentes.
Confira um programa gráfico
Compare o resultado de uma ferramenta com um cálculo independente por canal durante a validação visual.
Crie dados para testes
Gere resultados RGB determinísticos para testes unitários de mesclagem e capturas entre plataformas.
Perguntas frequentes
Quanto custa uma solicitação à API?
Cada solicitação à API custa US$ 0,002. Você também pode executar o mesmo cálculo gratuitamente no navegador.
A ordem das entradas importa?
Sim. A base determina se cada canal usa multiplicação ou trama; portanto, inverter as cores pode alterar o resultado.
Quais formatos de cor são aceitos?
Aceitam-se cores RGB hexadecimais de três ou seis dígitos, com ou sem # inicial. Alfa, nomes e funções CSS não são aceitos.
Como os canais são arredondados?
Cada resultado normalizado é multiplicado por 255, arredondado para o inteiro mais próximo e formatado como hexadecimal maiúsculo.
A ferramenta mescla imagens ou transparência?
Não. Ela combina apenas duas cores RGB opacas; grades de pixels, composição alfa, gradientes e perfis de cor não fazem parte desta capacidade.
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/overlay \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":"#336699","blend":"#FFCC00"}'const res = await fetch("https://api.kit.forhosting.com/color/overlay", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": "#336699",
"blend": "#FFCC00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/overlay",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": "#336699",
"blend": "#FFCC00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/overlay", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":"#336699","blend":"#FFCC00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":"#336699","blend":"#FFCC00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/overlay", 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
{
"base": "#336699",
"blend": "#FFCC00"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.overlay",
"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. |