Cor média de uma lista
Cole uma lista de cores hexadecimais e receba a cor que representa todo o conjunto: #FF0000, #00FF00 e #0000FF resultam em #555555. Cada canal é uma média simples, então o resultado bate com o de uma planilha. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Cores
- #FF0000, #00FF00, #0000FF
- Hex
- #555555
- String RGB
- rgb(85, 85, 85)
- Red
- 85
- Verde
- 85
Quando um kit de marca, uma série de gráficos ou um arquivo de tokens de design entrega a você um monte de amostras hex, muitas vezes você precisa de uma só cor que represente o conjunto: uma miniatura de pasta, um chip de média da paleta, um preenchimento padrão ou uma checagem de que um token novo não puxou o grupo para um matiz surpresa. Esta calculadora de cor média de uma lista recebe códigos hex e devolve a média aritmética dos canais vermelho, verde e azul, arredondada para inteiros 0–255, mais um token hex de seis dígitos que você pode colar no CSS. O caminho é determinístico: a mesma lista sempre produz o mesmo hex.
Como a média RGB de uma lista de cores é calculada
Envie uma lista de cores hex. Cada amostra se expande em três canais inteiros no intervalo de zero a duzentos e cinquenta e cinco. A forma curta de três dígitos, como #f00, duplica cada nibble, de modo que #f00 e #FF0000 são o mesmo vermelho puro.
Uma cerquilha inicial opcional é removida antes da validação; o prefixo 0x é rejeitado para que um inteiro empacotado nunca seja confundido com um token de cor. Depois que cada amostra é analisada, o solver soma os vermelhos, os verdes e os azuis e divide cada soma pela quantidade de cores. Esse quociente é a média aritmética daquele canal.
Cada média é arredondada para o inteiro mais próximo com a regra de meio para cima em números positivos, então cento e vinte e sete ponto cinco vira cento e vinte e oito, e o resultado é limitado à faixa legal 0–255. Os três inteiros viram o hex de resultado com seis dígitos maiúsculos e cerquilha.
A média RGB linear não é um ponto médio perceptual em LAB ou HSL: um amarelo neon e um azul-marinho quase preto podem puxar a média para o pai mais claro porque o espaço de canais não é uniforme. Esse é o contrato documentado deste produto, e é a mesma média que designers já calculam em planilhas e scripts de tema. Uma única cor é uma lista válida e devolve a si mesma após a normalização.
Duas cópias do mesmo hex ainda devolvem esse hex. Vermelho puro, verde puro e azul puro juntos dão um cinza médio, porque cada canal soma duzentos e cinquenta e cinco em três amostras.
Quando uma cor precisa representar o conjunto
Sistemas de design comprimem uma paleta de marca em um chip para uma pasta, uma miniatura de componente do Figma ou um ladrilho de marketing que precisa representar muitos tokens de uma vez. Bibliotecas de gráficos escolhem uma cor padrão de série a partir dos traços já usados para que uma linha nova não choque por acaso. Tarefas de integração contínua calculam o hash do hex devolvido e falham o build quando uma mudança de token desloca a média da paleta além do que uma revisão permite.
Esta landing é a ferramenta dedicada à cor média de uma lista: não é color.mix, que mistura exatamente dois hex em uma proporção escolhida, nem um extrator de cor dominante de imagem que lê pixels de uma fotografia. Prefira-a quando a intenção de busca for resumir estas amostras, não misturar duas, não converter formatos e não puxar cores de um bitmap.
Mantenha a lista em no máximo duzentas e cinquenta e seis amostras, fixe hex e rgb nos testes e você terá uma cor-resumo reproduzível para tickets, plugins LMS e workers de borda sem montar uma biblioteca própria de gestão de cor.
Casos de uso
Chip-resumo da paleta de marca
Comprima um kit de tokens hex de marca em uma única amostra média para a miniatura de uma pasta, o cabeçalho de um guia de estilo ou um ladrilho de marketing que precise representar a paleta inteira.
Padrões de gráficos e de temas
Escolha uma cor padrão de série ou de superfície a partir dos hex já em uso, para que uma linha de gráfico ou um painel de IU novos fiquem na mesma família sem um token extra escolhido à mão.
Perguntas frequentes
Como obtenho a cor média de uma lista de cores hex?
O campo hex da resposta é a média dos canais RGB como #RRGGBB.
A média é calculada em RGB, HSL ou LAB?
Em RGB. Cada canal é a média aritmética do canal correspondente na lista, depois arredondada para um inteiro 0–255. Espaços perceptuais são outra intenção de produto.
O que acontece se uma amostra da lista for inválida?
Alfa de oito dígitos, cores CSS nomeadas e texto não hex são rejeitados e não cobrados.
Quantas cores posso incluir na média de uma vez?
De um a duzentos e cinquenta e seis tokens hex. Uma única cor devolve a si mesma após a normalização.
Por que vermelho, verde e azul puros resultam em cinza?
Cada canal soma 255 entre as três cores, e 255 dividido por três dá 85, então o resultado é #555555. É uma média direta dos canais, não um ponto médio perceptual, por isso cores brilhantes puxam a média.
Ferramentas relacionadas
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/average-color \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"colors":["#FF0000","#00FF00","#0000FF"]}'const res = await fetch("https://api.kit.forhosting.com/color/average-color", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"colors": [
"#FF0000",
"#00FF00",
"#0000FF"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/average-color",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"colors": [
"#FF0000",
"#00FF00",
"#0000FF"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/average-color", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"colors":["#FF0000","#00FF00","#0000FF"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"colors":["#FF0000","#00FF00","#0000FF"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/average-color", 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
{
"colors": [
"#FF0000",
"#00FF00",
"#0000FF"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.average_color",
"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.
Limites
max_colors | 256 |
max_color_chars | 16 |
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. |
Notas técnicas
Amostras inválidas falham com invalid_input e não são cobradas.
Contrato de entrada, validação e forma da resposta
Uma string separada por vírgula, espaço, ponto e vírgula ou barra vertical também é aceita e fatiada em tokens, o que ajuda ao colar uma paleta de um arquivo de notas. Exemplo: colors #FF0000, #00FF00 e #0000FF produz hex #555555 porque a média de cada canal é duzentos e cinquenta e cinco dividido por três, ou seja, oitenta e cinco. Exemplo: preto e branco produz #808080 porque duzentos e cinquenta e cinco sobre dois arredonda para cento e vinte e oito. Use hex quando precisar de um único token para um arquivo de estilo; use rgb quando um canvas ou um verificador de contraste esperar canais separados. Envie um corpo JSON com o campo obrigatório colors, um array de strings hex. Os aliases colours, palette, list, hexes e swatches são aceitos quando um formulário ou um script antigo usa esses nomes. Cada token deve ter três ou seis dígitos hexadecimais com cerquilha inicial opcional; formas alfa de oito dígitos, cores CSS nomeadas como tomato e strings rgb entre parênteses ficam fora do escopo e falham com invalid_input. Uma lista vazia, um campo ausente, mais de duzentas e cinquenta e seis entradas, um token com mais de dezesseis caracteres ou qualquer hex inválido dispara invalid_input nomeando o índice para o cliente destacar a linha ruim. Essas falhas não são cobradas. Em caso de sucesso, o corpo devolve hex, a amostra média principal como #RRGGBB maiúsculo de seis dígitos; rgb como objeto com inteiros r, g e b; rgb_string como linha rgb entre parênteses pronta para colar; red, green e blue como os mesmos inteiros para rótulos de formulário; count, o número de cores que entraram na média; colors, a lista de entrada normalizada; method sempre rgb_mean; e uma mensagem curta em inglês.
Onde uma API de cor média de lista justifica o uso
Como a implementação é parse puro de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002, sem tokens de modelo e sem rede de saída, e a validação falha sem consumir saldo.
Casos de integração
Checagens de deriva de paleta no CI
Fixe o hex devolvido em fixtures de integração contínua e falhe o build quando uma mudança de token deslocar a média RGB da paleta publicada.
Perguntas técnicas
Quanto custa a calculadora de cor média de uma lista?
A ferramenta do navegador é gratuita. Pedidos API usam saldo KIT pré-pago a US$ 0,002 por item bem-sucedido; entrada inválida não é cobrada.