Misture duas cores por proporção
Esta ferramenta combina duas cores hexadecimais usando um peso percentual exato no espaço RGB.
Executar grátis
Você informa a primeira cor, a segunda e a contribuição percentual da segunda. A calculadora calcula separadamente a média de vermelho, verde e azul, arredonda cada resultado para um canal válido e retorna tanto um valor hexadecimal normalizado em maiúsculas quanto números RGB separados. Ela é útil quando um token de design, gráfico, tema ou ativo automatizado precisa de um resultado reproduzível, e não de uma cor escolhida visualmente. Cores e proporções inválidas são recusadas com clareza, enquanto entradas idênticas sempre geram a mesma saída.
Defina a proporção antes de misturar as cores
Considere a proporção como a contribuição percentual da segunda cor. O valor zero atribui todo o peso à primeira, portanto a saída é igual a color1. O valor cem atribui tudo a color2. Em vinte e cinco, a primeira contribui com setenta e cinco por cento e a segunda com vinte e cinco. Essa direção é importante ao criar várias amostras relacionadas, pois inverter as entradas sem inverter também a proporção altera o resultado. Informe uma abreviação hexadecimal de três dígitos, como #F00, ou um valor completo de seis, como #FF0000. O sinal inicial é opcional, mas todo caractere restante deve ser hexadecimal. A ferramenta recusa de propósito nomes CSS, funções RGB, cores de oito dígitos com alfa, campos ausentes e valores malformados, sem tentar adivinhar. Essa validação explícita torna lotes mais seguros: um erro de digitação gera uma resposta de entrada inválida em vez de uma paleta aparentemente correta. Documente a ordem das entradas nos scripts reutilizáveis para que outros responsáveis saibam qual extremo da mistura recebe o percentual declarado.
Entenda o cálculo RGB ponderado
Primeiro, o algoritmo converte cada cor hexadecimal em canais vermelho, verde e azul entre zero e 255. Para cada canal, multiplica o primeiro valor por um menos a fração da proporção, multiplica o segundo por essa fração, soma os produtos e arredonda para o inteiro mais próximo. Uma mistura de cinquenta por cento dá peso igual às duas entradas, enquanto uma de dez por cento permanece bem mais próxima da primeira. Os canais são calculados separadamente, portanto nenhuma escolha aleatória, tabela, solicitação de rede ou regra oculta interfere na resposta. Trata-se de uma média linear dos canais RGB codificados, não de uma mistura perceptual ou conversão por HSL, LAB, LCH, pigmentos ou luz com correção de gama. Por isso, o ponto médio visual entre cores de luminosidades muito diferentes talvez não pareça igualmente claro. Esse comportamento é intencional e atende programas que exigem a mistura aritmética comum em geradores de tokens e rotinas gráficas. O campo de método identifica o cálculo e simplifica auditorias futuras.
Use o resultado com segurança em design e automação
A resposta fornece a cor misturada como hexadecimal de seis dígitos em maiúsculas e como objeto RGB com canais inteiros. Ela também repete a proporção, apresenta os dois pesos normalizados e identifica o método. Use o hexadecimal diretamente em variáveis CSS, manifestos de temas, configurações de gráficos, modelos de e-mail ou arquivos de tokens. Use os canais separados quando outro programa exigir números ou quando você quiser enviar o resultado a um cálculo de contraste ou luminância. Como a operação é determinística e limitada, ela funciona bem em testes: uma solicitação fixa pode ser guardada como referência e comparada exatamente em cada execução. A versão no navegador atende trabalhos ocasionais; uma chamada de API custa US$ 0,002 quando uma esteira de compilação, sistema de conteúdo ou aplicativo precisa automatizar o mesmo comportamento. Verifique a acessibilidade caso haja texto sobre a cor produzida, pois uma proporção matematicamente correta não garante contraste suficiente. Para criar uma escala, mantenha o mesmo par ordenado e aplique uma sequência planejada de proporções, preservando extremos consistentes e amostras reproduzíveis.
Casos de uso
Gerar etapas de tokens de design
Crie tokens intermediários reproduzíveis entre duas cores de marca aprovadas com pesos percentuais documentados.
Montar variações de cores para gráficos
Misture uma cor de série com um fundo ou destaque comum sem escolher manualmente cada amostra.
Testar estados de interfaces temáticas
Produza cores estáveis de foco, seleção e desativação em esteiras automatizadas de temas.
Perguntas frequentes
O que a proporção representa?
Ela é o peso percentual de color2. O percentual restante pertence a color1.
Quais formatos de cor são aceitos?
São aceitas cores hexadecimais de três ou seis dígitos, com ou sem sinal inicial.
Como resultados fracionários de canal são tratados?
Cada canal RGB ponderado é arredondado ao inteiro mais próximo pelo arredondamento determinístico do JavaScript.
Esta é uma mistura de cores perceptual?
Não. É uma média direta de canais RGB codificados, e não uma mistura HSL, LAB ou com correção de gama.
Quanto custa uma solicitação de API?
O preço-base da API é US$ 0,002 por item; a ferramenta do navegador pode ser usada diretamente na página.
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/mix-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color1":"#FF0000","color2":"#0000FF","ratio":50}'const res = await fetch("https://api.kit.forhosting.com/color/mix-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color1": "#FF0000",
"color2": "#0000FF",
"ratio": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/mix-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color1": "#FF0000",
"color2": "#0000FF",
"ratio": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/mix-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color1":"#FF0000","color2":"#0000FF","ratio":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color1":"#FF0000","color2":"#0000FF","ratio":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/mix-ratio", 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
{
"color1": "#FF0000",
"color2": "#0000FF",
"ratio": 50
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.mix_ratio",
"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. |