Simular protanomalia em uma cor
Visualize uma cor como alguém com sensibilidade reduzida ao vermelho a vê: o vermelho vivo #e74c3c vira #416f3e na intensidade padrão de 0.6. Vá de 0, sem mudança, até 1, quase protanopia, antes de fechar cores de marca ou de gráficos. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
A protanomalia é uma forma comum de tricromacia anômala em que os cones de comprimento de onda longo (L) da retina têm sensibilidade reduzida à luz vermelha. Designers, auditores de acessibilidade e educadores costumam precisar de uma prévia rápida e determinística de como uma cor de marca, uma série de gráfico ou um estado de interface pode parecer quando a discriminação do vermelho enfraquece — não protanopia completa, e sim uma mistura parcial entre a visão normal e uma projeção protânica. Esta ferramenta para simular protanomalia em uma cor aceita uma cor hex ou RGB mais uma severidade opcional de zero a um, converte a cor para o espaço de cones LMS, aplica parcialmente uma transformada protânica no estilo Viénot que reconstrói o canal L a partir de M e S, converte de volta para RGB e devolve o hex simulado, os canais e a string CSS. Severidade zero deixa a cor inalterada; severidade um aproxima protanopia completa; o padrão de zero vírgula seis modela uma protanomalia moderada típica.
O que a simulação de protanomalia significa e como a transformada protânica parcial funciona
A visão de cor humana normal é tricromática: três tipos de cones (L, M e S) amostram o espectro em comprimentos de onda longos, médios e curtos. Na protanomalia o fotopigmento do cone L está deslocado ou é menos eficaz, de forma que os vermelhos parecem mais escuros ou menos saturados e os pares vermelho–verde são mais difíceis de separar do que na visão normal, embora ainda funcionem três classes de cones — ao contrário da protanopia, em que o canal L está efetivamente ausente.
Um modelo de engenharia prático não precisa de um espectro fisiológico completo: mapeia o RGB do display para LMS, substitui a coordenada L por uma combinação linear de M e S que aproxima o plano protanópico (classicamente L igual a dois vírgula zero dois três quatro quatro vezes M menos dois vírgula cinco dois cinco oito um vezes S segundo matrizes no estilo Viénot, Brettel e Mollon) e depois mapeia LMS de volta para RGB. A simulação dicromática completa usa apenas essa substituição.
A protanomalia é modelada misturando o LMS original com o LMS protânico por um peso de severidade s no intervalo unitário: L-linha igual a (um menos s) vezes L mais s vezes L-protânico, enquanto M e S permanecem no caminho original antes da transformada inversa. Essa aplicação parcial é determinística, barata e suficiente para prévias de UI, auditorias de paleta e demos didáticas. Não é ferramenta de diagnóstico clínico e não substitui testes com pessoas com deficiência de visão de cores.
Casos de uso
Auditorias de design system e tokens de marca
Pré-visualize como cores primária, de perigo e de gráfico mudam sob protanomalia moderada antes de fixar tokens hex em uma biblioteca de componentes.
Ensino de deficiência de visão de cores
Mostre aos alunos uma comparação determinística lado a lado de swatches originais versus protanomalia simulada, com severidade ajustável de leve a protânica completa.
Perguntas frequentes
O que é protanomalia e como é simulada aqui?
Protanomalia é sensibilidade reduzida do cone L (vermelho). Esta ferramenta mapeia RGB para LMS, reconstrói L a partir de M e S como em uma projeção protânica, mistura com o LMS original pela severidade e converte de volta para RGB.
O que o parâmetro severity faz?
Severity é um peso de mistura em [0, 1]. 0 devolve a cor original; 1 aplica projeção de protanopia completa; o padrão 0.6 modela protanomalia moderada típica.
Quais formatos de cor são aceitos?
Hex (#RGB ou #RRGGBB), CSS rgb()/rgba(), texto r,g,b simples, ou inteiros r, g, b separados 0–255.
Isto é um teste médico ou diagnóstico?
Não. É uma aproximação de engenharia para prévias de design e educação, não uma avaliação clínica da visão de cores.
Qual a diferença entre protanomalia e protanopia?
Na protanomalia os cones sensíveis ao vermelho ainda funcionam, mas respondem fraco: os vermelhos parecem mais escuros ou apagados e fica difícil separar pares de vermelho e verde. Na protanopia esse tipo de cone praticamente não atua; a intensidade 1 se aproxima dela.
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/sim-protanomaly \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#e74c3c","hex":"valor-ejemplo"}'const res = await fetch("https://api.kit.forhosting.com/color/sim-protanomaly", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#e74c3c",
"hex": "valor-ejemplo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/sim-protanomaly",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#e74c3c",
"hex": "valor-ejemplo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/sim-protanomaly", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#e74c3c","hex":"valor-ejemplo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#e74c3c","hex":"valor-ejemplo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/sim-protanomaly", 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": "#e74c3c",
"hex": "valor-ejemplo"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.sim_protanomaly",
"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. |
Notas técnicas
Contrato de entrada, formato da resposta e comportamento de erro
Informe a cor como string hex como #e74c3c ou #e74, como CSS rgb(r,g,b), como texto r,g,b simples, ou como campos inteiros separados r, g e b de zero a duzentos e cinquenta e cinco. Os canais são arredondados a inteiros de zero a duzentos e cinquenta e cinco após o clamp para que clientes pintem swatches sem nova escala. Exemplo: um vermelho vivo perto de #e74c3c na severidade padrão desloca-se para um tom mais opaco e menos dominado pelo vermelho que ainda mantém alguma diferença de comprimento de onda longo em relação à protanopia completa na severidade um. Envie por POST um corpo JSON com uma cor de origem e uma severidade opcional. Os aliases hex, value, text, input e code são aceitos para a forma string; red, green e blue aliasam os campos de canal. A severidade padrão é zero vírgula seis quando omitida e deve ser um número finito entre zero e um inclusive quando presente; os aliases amount, strength e severity são aceitos. Cor ausente por completo, strings vazias, lixo não hex, canais fora de zero a duzentos e cinquenta e cinco, canais fracionários e severidade fora do intervalo unitário falham com invalid_input e uma mensagem que nomeia o problema. Essas falhas de validação não são cobradas. Em caso de sucesso o corpo inclui input_hex e input_rgb da origem resolvida, a severidade numérica usada, simulated_hex e simulated_rgb da cor filtrada, os canais individuais simulated_r, simulated_g e simulated_b, uma string css rgb(), method protanomaly_partial_lms, deficiency protanomaly, uma string de fórmula curta que descreve a mistura LMS e uma mensagem legível.
Onde um simulador de cor protanomalia vale o investimento
Plataformas educacionais que ensinam deficiência de visão de cores podem mostrar swatches lado a lado — normal versus simulado — sem embutir filtros de imagem pesados. Validação falha não consome saldo. Revisores de acessibilidade podem processar em lote tokens de marca e séries de gráficos pela API e sinalizar pares que colapsam sob sensibilidade vermelha reduzida antes do envio. Como a implementação é parse puro tier A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída. Combine os resultados com checagens de contraste no original e no simulado quando precisar de fluxos orientados a WCAG; este endpoint só transforma uma amostra de cor e não pontua razões de contraste nem regiões de imagem.
Casos de integração
CI de acessibilidade para paletas
Filtre em lote JSON de paletas em pipelines e falhe builds quando estados críticos ficarem excessivamente semelhantes após a transformada protânica parcial.
Perguntas técnicas
Quanto custa o simulador de cor protanomalia?
A ferramenta do navegador é gratuita. Pedidos API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.