Simulador de protanopia
Veja uma cor como alguém sem cones do vermelho funcionando a veria: o vermelho forte #e63946 vira #6c6545. Ajuda a pegar estados vermelhos e verdes que se confundem em gráficos, botões e etiquetas de status. 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
- Cor
- #e63946
- Hex de entrada
- #e63946
- Hex simulado
- #6c6545
- Deficiência
- protanopia
O simulador de protanopia mostra como uma cor sRGB opaca é transformada para uma pessoa sem resposta funcional dos cones sensíveis aos comprimentos de onda longos, condição muitas vezes chamada de cegueira ao vermelho. Informe um valor hexadecimal ou canais RGB inteiros e receba os valores de origem normalizados e simulados nos dois formatos. O cálculo lineariza sRGB, aplica uma matriz fixa de projeção de Brettel-Vienot-Mollon, limita o resultado à gama exibível e o codifica novamente em sRGB de oito bits. É uma simulação reproduzível para design e documentação, não uma avaliação médica.
Examine uma cor específica da interface
Use o valor sRGB exato empregado no seu sistema de design, folha de estilos, gráfico ou arquivo exportado. A entrada pode ser hexadecimal de três ou seis dígitos, uma expressão CSS rgb() ou três canais inteiros separados por vírgulas. A resposta inclui a cor de origem normalizada e o resultado simulado em hexadecimal e RGB, prontos para uma anotação de design, um teste ou uma ferramenta comparativa.
Trate a amostra transformada como evidência visual, não como aprovação ou reprovação de acessibilidade. A experiência também depende de contraste, tamanho, contexto, rótulos, padrões e estados interativos. Portanto, um alerta vermelho e uma confirmação verde devem contar também com texto ou ícones.
Avalie cada token semântico com o mesmo método, pois misturar fórmulas diferentes pode criar diferenças causadas pelas ferramentas, e não pelas próprias cores.
Entenda o processamento determinístico da cor
O cálculo primeiro valida e normaliza a cor em três canais sRGB de oito bits. Como esses valores são codificados com gama, eles são convertidos para luz linear antes da transformação. Em seguida, o trio linear é multiplicado por uma matriz fixa de três por três associada ao método de simulação dicromática de Brettel, Vienot e Mollon.
A operação pode gerar canais fora do intervalo exibível, especialmente para cores muito saturadas; por isso cada valor é limitado entre zero e um. Depois, aplica-se a função padrão de codificação sRGB, arredonda-se para o inteiro mais próximo e formata-se o resultado. Não há rede, aleatoriedade, relógio, perfil pessoal nem configuração oculta.
Outros espaços de cor, matrizes ou critérios de mapeamento de gama podem gerar resultados diferentes e devem ser identificados como métodos distintos.
Interprete o resultado com responsabilidade
Use a simulação como uma perspectiva dentro de uma análise mais ampla. Ela pode mostrar que séries vermelhas e verdes ficam parecidas, que um botão destrutivo perde destaque ou que indicadores dependem demais da tonalidade. Nesse caso, melhore a interface original: acrescente rótulos, ícones, formas, padrões, bordas ou separação espacial e verifique o contraste conforme a norma aplicável.
Analise também os estados de foco, seleção, erro, sucesso, desativação e ponteiro. O modelo não representa variações individuais, telas, iluminação ambiente nem todos os contextos de visão; tampouco diagnostica protanopia, mede acuidade visual ou certifica conformidade. Produtos relevantes ainda se beneficiam de avaliação humana.
Em fluxos automatizados, registre a cor original, o resultado, o nome do método e a decisão tomada, evitando que uma amostra simulada seja confundida mais tarde com um token oficial da marca.
Casos de uso
Revisar tokens de design
Transforme cores de alerta, sucesso, destaque e gráficos com um método estável antes de lançar o sistema de design.
Verificar visualizações de dados
Compare séries simuladas e adicione rótulos, padrões ou marcadores quando a tonalidade deixar de separá-las.
Perguntas frequentes
Quanto custa uma simulação?
Cada chamada processa uma cor como um item.
Quais entradas são aceitas?
Use #RGB, #RRGGBB, rgb(r, g, b) ou três canais inteiros separados por vírgulas, todos entre 0 e 255.
Por que sRGB é linearizado primeiro?
A matriz representa uma transformação em luz linear. Aplicá-la diretamente aos valores de tela com gama mudaria o cálculo.
O resultado certifica acessibilidade?
Não. Ele simula uma transformação de cor; acessibilidade também depende de contraste, contexto, pistas redundantes e estados.
Isto é um exame médico?
Não. A ferramenta não diagnostica protanopia nem prevê a percepção individual; é um auxílio determinístico para design e engenharia.
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-protanopia \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#e63946"}'const res = await fetch("https://api.kit.forhosting.com/color/sim-protanopia", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#e63946"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/sim-protanopia",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#e63946"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/sim-protanopia", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#e63946"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#e63946"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/sim-protanopia", 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": "#e63946"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.sim_protanopia",
"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. |
Casos de integração
Criar testes de regressão
Armazene valores RGB simulados e determinísticos para que futuras alterações de paleta recebam uma revisão focada.