Composição
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.mdv0.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-sunkene 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.