---
fonte: 01-canonicos/seed-ds-roadmap.md
versao_da_fonte: v2.7
secao: s06
titulo: "F5 — Data visualization ✅ FECHADA 6/6 (2026-08-11 — marcos v1.8/v1.9 do ESTADO_ATUAL; `seed-dataviz.md` v0.20)"
sequencia: 7 de 15
bytes_do_corpo: 4260
md5_do_corpo: c082f0e8e88f54a39513c9ff68316f9a
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-ds-roadmap.md
---
## F5 — Data visualization ✅ FECHADA 6/6 (2026-08-11 — marcos v1.8/v1.9 do ESTADO_ATUAL; `seed-dataviz.md` v0.20)

**Arquivo canônico:** `seed-dataviz.md` — o **9º** do sistema. Existe por conflito de regra-mãe: o `seed-componentes.md` manda "componente consome semântico", e o semântico de UI carrega intenção de interface (`action-primary`, `feedback-danger`); a série 2 de um gráfico não é "ação" nem "erro" — é a segunda categoria de um dado, com leis próprias (ordem fixa, diferenciação entre vizinhas, grayscale, isenção normativa). Mesmo precedente do e-mail (EM0) e da iconografia (NM5).

| Sub-bloco | Escopo | Status |
|---|---|---|
| **DF** · Fundamento | 7 decisões estruturais: arquivo próprio (DF1) · consumidor canônico shadcn Chart sobre **Recharts v3** (DF2) · régua de acessibilidade em 4 pisos medidos (DF3) · **grayscale como gate estrutural** (DF4) · régua de validação em 4 camadas (DF5) · fronteiras (DF6) · uma fonte para os tokens (DF7) | ✅ **`estável` (2026-08-09)** |
| **DT** · Tokens de dado | Escalas v1.3 na §3c do `seed-tokens.md`: sequencial · no-data · divergente · gauge · stroke de traço fino | ✅ **`estável` (2026-08-09)** |
| **DG** · Gráficos core | **7 tipos** (barra, empilhada, agrupada, linha, área, pizza, dispersão) + estados skeleton/empty/erro; 13 decisões, mais o redesenho visual DG14–DG17 | ✅ **`estável` (2026-08-09/10)** |
| **DM** · Monitoramento | Bullet graph canônico (gauge circular só por exceção) · sparkline na tabela §40 · gráfico do alerta ET5 (SUPERSEDIDO na v0.13: o e-mail de alerta NÃO leva gráfico) · spec DM1–DM11 no §4b | ✅ **`estável` (2026-08-11 — spec escrita na v0.5, "aprovo" explícito do Rafael)** |
| **DP** · Mapas | Diretriz MG-ES-BA · spec DP1–DP14 (§4d) · malha oficial IBGE 2025 (`mgesba-2025.topo.json`) | ✅ **`estável` (2026-08-11)** |
| **DI** · Impresso/PDF + integração | Grayscale/hachura para laudo e O&M · guia de integração da stack · DI1–DI19 | ✅ **`estável` (2026-08-11 — DI-b fechado por PROVA IMPRESSA FÍSICA)** |

Ordem de produção executada: DF → DT → DG → DM → DI → DP.

~~**Pendência crítica de estado (2026-08-10):** DG14–DG17, a paleta estendida e a spec do DM
existem apenas nos previews do Drive.~~ **RESOLVIDA em 2026-08-11, no dia seguinte** — o lote de
formalização foi executado por inteiro: `seed-tokens.md` §3c **v1.5** (categórica estendida,
magenta+violeta, supersede da restrição "nenhum hex novo") promovida a `estável` na **v1.6** com
gêmeos na mesma edição e `paridade-tokens.py` de guarda · `seed-dataviz.md` **v0.5** (supersede
DG11→DG14, emendas DG15–DG17, spec DM1–DM11 escrita) · `suite-dataviz-dm.mjs` criada. *(Esta
linha só foi reconciliada aqui na v2.1, 2026-08-22 — o arquivo ficou 12 dias afirmando como
crítica uma pendência já morta; ver a nota de reconciliação do cabeçalho.)*

**Fronteiras declaradas (DF6):** dashboard/layout de painel = **F6** (a F5 entrega a peça, não o painel) · tempo real/websocket/persistência = **produto** (Lovable/Supabase) · BI exploratório ad-hoc = fora de escopo (revisável) · **gráfico em e-mail = PNG @2x hospedado no R2**, porque o runtime de e-mail não roda JS (herda EM5 e EM11).

**Réguas que a fase acrescenta ao sistema:** **(1)** o **cinza é reservado a "sem dado"** em qualquer gráfico SEED — nenhuma escala de valor pode usá-lo, e a distinção "gerou pouco × não reportou" nunca depende de cor (hachura obrigatória). Nasceu do gate do Rafael (ver log v1.9). · **(2)** **paleta categórica estendida**: a marca tem só 3
matizes livres para dado, então o dataviz ganha matizes próprios (magenta, violeta) que **nunca
aparecem em UI** — padrão IBM Carbon/GitLab; nenhuma família de matiz repete antes da 6ª posição, e
nenhum gráfico multi-série pareia tons da mesma família. · **(3)** **vida vem de renderização, não de
cor**: zero contorno, canto arredondado, curva monótona, gradiente, palco mínimo e destaque×contexto
(DG14–DG17) — a hipótese de que "mais cor = mais vida" foi testada contra 7 telas de referência e
**refutada**: os gráficos da referência são quase monocromáticos.

