---
fonte: 01-canonicos/seed-composicao.md
versao_da_fonte: v2.1
secao: 02
titulo: "Vocabulário mínimo de blocos — CP2"
sequencia: 4 de 17
bytes_do_corpo: 5734
md5_do_corpo: 52bfad3c8b428f7625c4909cb17cc086
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
---
## 2. Vocabulário mínimo de blocos — CP2

> **CP2 — SETE TIPOS DE BLOCO. Toda tela da SEED se monta a partir deles; um elemento que
> não é nenhum dos sete não existe no contrato e é drift por definição.**
>
> **⚠ SUPERSEDE do CP2 v1.x ("SEIS TIPOS") — decisão do Rafael em 2026-08-15 (F7.1, consolidado
> aprovado com "aprovo").** O fechamento em seis foi verificado contra o que existia então: os
> três estudos, os três patterns e os 45 componentes. O **mapa de cobertura** (`mapa-cobertura-ds.md`
> v0.3) confrontou o vocabulário contra os arquétipos que o DS ainda **não** tinha — e três
> estruturas não se descreviam com os seis. Duas viram exceção nomeada (abaixo do quadro) e uma
> exigiu tipo novo: a **trilha**. *Fato vs. inferência declarado:* o racional original não estava
> errado para o escopo medido; ficou incompleto quando o escopo cresceu (D5: o DS serve qualquer
> produto SEED — site, app, ERP, chat —, não só o ERP).

| Tipo | Definição | O que admite dentro | O que ele NUNCA é |
|---|---|---|---|
| **Canvas** | O fundo da tela ou de uma região. `surface-subtle` por padrão; variantes nomeadas por arquétipo (leitura = `surface-page` sem peça; mapa = superfície de terceiro) | Peças, réguas e faixas pousam sobre ele. Canvas de ferramenta livre pode levar fundo pontilhado (§3, arquétipo vazio) | Acionável ou selecionável — *"sempre que o contêiner for acionável, ele precisa ser a superfície, não o fundo"* (C33, custo declarado) |
| **Peça** | O cartão que carrega conteúdo: bloco do painel, cartão de formulário, a tabela inteira (não a linha), o cartão de solução do site | Componentes dos §1–§45 e blocos de dado do DG/DM/DP. Peça compõe-se de componentes; nunca de outra peça (peça dentro de peça é o agrupador do feed — exceção nomeada C33) | Colada em outra peça (CP1) ou na borda da janela (exceto arquétipos com exceção nomeada) |
| **Âncora de navegação** | Chrome estrutural que ancora a tela: rail, topbar. Encosta na borda, atravessa a dimensão inteira, sem raio externo | Itens de navegação (SH3), zonas da topbar (SH10) | Peça sobre o canvas · portadora de conteúdo (o título da tela vive no conteúdo — SH10) |
| **Régua** | Elemento fino que mede ou situa: régua de tempo (PN48), cabeçalho fixo de tabela (DT6), barra de pílulas/toolbar (§42), trilha (§36) | Rótulos, pílulas, contadores | Decorativa — régua que não mede o que a faixa desenha é o defeito do PN48 pré-correção |
| **Faixa** | Seção horizontal full-bleed que empilha verticalmente: as faixas da página institucional (§47), o hero (MK13/PN21c), a faixa de modelos do hub | Conteúdo em coluna central; uma faixa pode conter peças | Sobreposta a outra faixa · aninhada |
| **Trilha** *(tipo novo — F1/2026-08-15)* | **Agrupador vertical transparente**: a coluna do quadro/Kanban, a raia do gantt, a faixa de pessoa da carga de trabalho. Não tem superfície própria — nem fundo, nem raio, nem separação; o que se vê são as PEÇAS dentro dela e o rótulo com contador (C26) no topo | Peças (cartões) empilhadas com calha declarada pelo arquétipo; cabeçalho com rótulo + contador; alvo de soltura (CP30) | **Peça** — trilha não se separa do canvas porque não é superfície; chamar de peça esvaziaria a definição de peça · **Canvas** — não é fundo de tela, é agrupador dentro dele · Portadora de fundo cromático (o croma vem das peças, CP19) |
| **Sobreposição** | O que flutua acima da tela na escala 60<65<70<75<80 (§31.2): modal, drawer, toast, popover, tooltip | O que a spec de cada um admite (MD5: nenhum componente nasce dentro do modal) | Empilhada fora da escala · usada como layout permanente |

*Racional do fechamento em sete:* os três estudos de referência, os patterns nossos e os 45
componentes se descreviam com seis; o **mapa de cobertura** acrescentou os arquétipos ausentes
(quadro/Kanban, carga, chat, busca, configurações, autenticação, documento, feed) e só a coluna
de agrupamento vertical exigiu tipo novo. *Alternativa descartada:* vocabulário aberto ("cada
arquétipo nomeia os seus") — reproduziria a dispersão que esta fase existe para matar.
*Alternativa descartada para a trilha:* declará-la exceção dentro de "peça" — rejeitada porque
peça é definida por SE SEPARAR do canvas, e a trilha não se separa de nada.

**As DUAS exceções nomeadas do CP2, escritas — exceção não declarada vira suposição de alguém
depois:**

> **CP2-a — CANVAS INTERATIVO.** O quadro do CP2 diz que canvas *nunca* é acionável. Há um caso
> em que é: **canvas de ferramenta livre** (mapa operável, área de desenho), onde clicar/arrastar
> no fundo É a interação. Condições, todas obrigatórias: (1) o canvas declara papel e nome
> acessível; (2) toda ação disponível por clique no fundo tem **caminho equivalente por teclado e
> por ponteiro único** (CP30); (3) o fundo não carrega informação que só a cor transmita.
> *Fato que motiva:* o mapa já vive assim no §48 (PN51–PN54) sem regra escrita — a exceção
> existia na prática e não no contrato, que é a definição de drift.

> **CP2-b — SUPERFÍCIE INVERTIDA (C33).** O padrão é peça clara sobre canvas mais escuro. No
> **feed/atividade** a hierarquia inverte: o agrupador consome `surface-sunken` e os itens
> internos são as peças claras. **Condição de admissão, medida:** a inversão só vale quando o
> **item é acionável e o agrupador NÃO é** — *"sempre que o contêiner for acionável ou
> selecionável"*, volta o caso base (C33). O agrupador invertido **não leva sombra**: o delta de
> superfície agrupa, não separa.

---

