---
fonte: 01-canonicos/seed-composicao.md
versao_da_fonte: v2.1
secao: 07e
titulo: "Escala de figura — CP32 *(F7.3/2026-08-16 · a lei que já tinha guarda antes de ter texto)*"
sequencia: 13 de 17
bytes_do_corpo: 2929
md5_do_corpo: 2f30d7760c621d78c2f238aea652776d
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
---
## 7e. Escala de figura — CP32 *(F7.3/2026-08-16 · a lei que já tinha guarda antes de ter texto)*

> **CP32 — DENSIDADE DE DADO NÃO É FUNÇÃO DA LARGURA DA TELA.** Uma figura de dado (gráfico,
> mapa, diagrama) renderiza **na escala em que foi projetada**: *1 unidade de `viewBox` = 1px*.
> Para ocupar mais espaço, alarga-se a **ÁREA DE PLOTAGEM** — mais coordenadas dentro do
> `viewBox` —, **nunca o desenho inteiro**. Tela maior mostra **mais dado**, jamais **dado maior**.

**Por que esta lei existe, com o número que a produziu.** O `banco-dataviz-dm.html` declarava
`viewBox="0 0 500 202"` com `svg{width:100%}` dentro de um cartão de aproximadamente 1080px:
fator de escala real **2,16×**. O browser escala a tipografia junto, e o resultado medido foi
banda do bullet 18 unidades → **39px**, rótulo da usina 11 → **24px**, valor 11 → **24px**,
rótulo de eixo 10 → **22px**. O gráfico lia como pôster. E o efeito era progressivo: quanto maior
a tela, maior o desenho — o inverso do contrato de um monitor de dado.

**Em unidades de `viewBox` estava tudo certo**, e é por isso que nenhuma auditoria de token, de
contraste ou de composição via alguma coisa: **nenhum instrumento media o FATOR DE ESCALA entre
coordenada e pixel**. O gate visual do Rafael encontrou em segundos aquilo que cinco camadas
automatizadas atravessaram. A guarda `suite-escala-figura.mjs` (87 verificações) nasceu dessa
lacuna.

**Corolário — PICTOGRAMA NÃO É FIGURA DE DADO.** Ícone em botão, rail, chip ou rótulo escala junto
com o texto, de propósito: ele é tipografia, não plotagem. O corte operacional usado pelo
propagador é `viewBox` ≤ 120 unidades **ou** estar dentro de um controle.

**Dois corolários que vieram de defeitos medidos na mesma família:**

1. **Texto dentro de SVG NÃO recebe papel tipográfico.** Lá a unidade é a do `viewBox`; aplicar
   `--seed-txt-*-size` a um `<text>` mistura duas réguas.
2. **Papel de TÍTULO nunca entra no `body`.** Vira herança global e o peso 700 vaza para dentro do
   SVG — empurrou um rótulo de eixo para 532px num `viewBox` de 500.

**Como esta lei chegou aqui.** Ela vigorava desde 2026-08-15 e existia apenas como cabeçalho de
script e como registro no MANIFESTO (dívida **A-P2**, aberta na v8.4). O caminho de entrada estava
declarado: *o `seed-composicao.md` está sob gate; a lei entra nele na promoção*. A promoção veio em
2026-08-16, e ela entra junto. **Guarda sem lei escrita é guarda que ninguém sabe por que existe** —
e é a primeira a ser desligada quando incomoda.

**Relação com CP27 e CP28, que não se confundem:** o CP27 diz que **densidade responde ao
contêiner** e o CP28 que **reflow responde à viewport**. O CP32 é o terceiro eixo: **a figura de
dado não responde a nenhum dos dois em ESCALA** — ela responde em ÁREA. Ganhar largura significa
ganhar coordenada, nunca ganhar tamanho.

---

