---
fonte: 01-canonicos/seed-composicao.md
versao_da_fonte: v2.1
secao: 07
titulo: "Cor em composição — CP22 a CP24 *(decisões de MARCA — **`estável`**, gate visual aprovado em 2026-08-14: G3 e G4)*"
sequencia: 9 de 17
bytes_do_corpo: 5537
md5_do_corpo: 7e3225f8d7418e26745559e94364162e
gerado_por: 06-validacao/geradores/gen-camada-ia.py
nota: fatia GERADA — o corpo abaixo é byte a byte o trecho do canônico; edite o canônico, nunca esta fatia. Canônico inteiro em https://ds.seed.eng.br/01-canonicos/seed-composicao.md
---
## 7. Cor em composição — CP22 a CP24 *(decisões de MARCA — **`estável`**, gate visual aprovado em 2026-08-14: G3 e G4)*

> **CP22 — REGRA DE ADMISSÃO DE COR DE ENTIDADE (executa o SUP-5, na forma que a decisão Q1
> escolheu: PALETA FECHADA com tinta declarada por cor, verificável em teste estático).**
> Cor de entidade (área do ERP, cliente, categoria) só é admitida se passar **4,5:1** com uma
> das **duas tintas declaradas**: `entity-ink-dark` = `cinza-900` `#242E34` · `entity-ink-light`
> = branco. A verificação acontece **na definição da paleta**, nunca em render.
>
> **Medição desta edição (todas as 6 famílias × 10 stops, 60 pares × 2 tintas):** o resultado
> é uma lei limpa de rampa —
>
> | Faixa de stop | Tinta admitida | Pior par medido |
> |---|---|---|
> | **50–400** (todas as famílias) | `cinza-900` | 5,03 (vermelho-400) — todos ≥4,5 ✓ |
> | **500** (todas as famílias) | **NENHUMA** — zona de cruzamento de luminância | 4,30 (turquesa-500 × cinza-900) e 4,30 (vermelho-500 × branco) — ambos <4,5 |
> | **600–900** (todas as famílias) | branco | 4,60 (turquesa-600) — todos ≥4,5 ✓ |
>
> **O stop 500 de qualquer família é inadmissível como fundo de entidade, por medição.** É a
> mesma zona (~L 0,18 relativa) que o estudo declarou instável. *Precedente interno:* a regra
> do amarelo (*"`#FAD61D` → SEMPRE texto escuro"*, `marca-seed.md` §3.6) já era uma declaração
> de tinta-por-cor; esta regra a generaliza. *Alternativa descartada (era o desenho hex-livre
> do SUP-5):* cálculo de luminância em render + portão no cadastro — custo em render, texto
> mudando entre chips vizinhos, e instabilidade na zona de cruzamento; com paleta fechada, o
> próprio estudo manda a tabela estática. **Registrado também em `marca-seed.md` v5.2 §3.6-b**
> (é lei de marca: decide o que pode ser cor da SEED).

> **CP23 — A PALETA DE ENTIDADE: SEIS POSIÇÕES** *(`estável` — gate visual aprovado em 2026-08-14, G3)*.
>
> | Posição | Fundo | Tinta declarada | Medido |
> |---|---|---|---|
> | E1 | `turquesa-400` `#11B0A0` | `entity-ink-dark` | **5,11** |
> | E2 | `dourado-400` `#D49400` | `entity-ink-dark` | **5,30** |
> | E3 | `azul-400` `#01B3E0` | `entity-ink-dark` | **5,63** |
> | E4 | `turquesa-800` `#005048` | `entity-ink-light` | **9,37** |
> | E5 | `azul-700` `#006783` | `entity-ink-light` | **6,43** |
> | E6 | `dourado-700` `#7B5500` | `entity-ink-light` | **6,68** |
>
> Três famílias × dois registros (vivo-com-tinta-escura · profundo-com-tinta-branca) — a
> distinção entre vizinhos vem de matiz E claridade, a mesma lógica do espalhamento da
> categórica. **Exclusões, cada uma com o porquê:** magenta e violeta (lei (e) da §3c:
> *"exclusivos de dado — aparecerem em UI é defeito"*) · **vermelho** (semântica reservada de
> perigo/feedback — entidade vermelha leria como erro permanente) · **amarelo** (acento
> oficial de marca, §3.4; e a proibição *"nunca amarelo e dourado na mesma peça"* colidiria
> sempre que duas entidades aparecessem lado a lado) · **turquesa-600** (é o `action-primary`
> — entidade vestida de botão primário) · **cinza** (é o neutro do C19: estado sem carga não
> recebe croma). **Acima de 6 entidades: repete-se a cor e distingue-se pelo GLIFO** — o
> quadrado de entidade leva glifo, não letra (decisão registrada no MANIFESTO v6.4, mantida) —
> **nunca nasce uma sétima cor.**

> **CP24 — MARCADOR DE "AGORA": `turquesa-600`, FIXO NOS DOIS TEMAS** *(`estável` — gate
> visual aprovado em 2026-08-14, G4; adota o contrato de quatro peças do C16, com a cor
> decidida por medição — e a invariância entre temas foi conferida em COR RENDERIZADA na
> camada de render, não só declarada)*.
> As quatro peças (pílula de horário · linha · ponto de junção · círculo no dia) e a espessura
> por lente (1px no gantt denso, 3px no calendário) entram como contrato; **a cor é
> `turquesa-600` `#098475`, o mesmo hex nos dois temas** — medido nesta edição contra as cinco
> superfícies canônicas: página clara **4,60** · sutil clara **4,23** · página escura **4,05**
> · sutil escura **3,72** · peça escura **3,31** — todos ≥3,0 (non-text, SC 1.4.11), com um
> único hex.
>
> **Correção declarada de uma decisão do gate desta fase:** a resposta às perguntas do
> confronto dizia `turquesa-400`; medido, o `turquesa-400` dá **2,71** contra superfície clara
> e **reprova**. A medição mudou a decisão — é para isso que a regra "todo par novo é medido
> antes de entrar na spec" existe. **Vermelho segue descartado** (num painel de O&M vermelho é
> falha; *"um usuário pode ler 'agora' como 'erro'"* — C16) e **amarelo também** (§3.4: acento
> de marca não é cor de trabalho). O marcador **não conta** como a âncora de ênfase do §3.5-c:
> é hairline, não superfície. Em telas sobre o passado (relatório histórico, fechamento de
> mês), o marcador **não aparece** — marcar o agora ali é ruído (C16).
>
> **Com esta decisão, a classe "INVARIANTE DE TEMA" ganha nome e três membros declarados**
> (era o achado do C14): **SH15** (chrome do rail) · **DG12** (tinta sobre dado) · **CP24**
> (marcador de agora). A classe existe porque nos três casos o objeto contrastado não inverte
> com o tema. O `action-primary` **NÃO** entra na classe — fixá-lo derrubaria o par dark
> `turquesa-300`+`turquesa-900` a 7,39 (AAA) por um par não medido (veredito do confronto,
> mantido).

---

