---
fonte: 01-canonicos/seed-composicao.md
versao_da_fonte: v2.1
secao: 01
titulo: "A lei de origem — CP1 (o SH16 vira lei · executa o SUP-1 do confronto)"
sequencia: 3 de 17
bytes_do_corpo: 4352
md5_do_corpo: 1debbd66f0ecfb1adf47f82e2cec481a
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
---
## 1. A lei de origem — CP1 (o SH16 vira lei · executa o SUP-1 do confronto)

> **CP1 — CONTRATO DE MONTAGEM DE TELA: A TELA É UM CANVAS COM PEÇAS SOBRE ELE.**
> A tela é um **canvas**, não um fundo branco: `surface-subtle`. Toda peça é
> `surface-raised`, com **`radius-lg`** e separação do canvas pelo **par sombra+anel**
> (CP17 — o anel de 1px vive na declaração de sombra, na tinta do papel `border-subtle`),
> e **flutua sobre o canvas com calha `sp-3`**. **Nada encosta em nada.** Exceções são
> **nomeadas por arquétipo** (§3) — nunca implícitas.

**Origem (fato, gate do Rafael em 2026-08-14):** *"no ClickUp cada caixa é montada
separadamente na tela; da forma que você apresentou são blocos colados."* Medido nas capturas:
varredura vertical no ClickUp dá card branco → borda 1px `#E4E4E4` → **14 a 15px** de canvas
`#F9F9F9` → borda do card seguinte. No nosso shell da época, a varredura horizontal dava
`#006C62` → `#FFFFFF` **em um pixel**. Nenhum token novo — é consumo: `surface-subtle` é o
canvas, `surface-raised` a peça, `radius-lg` o raio, `sp-3` a calha.

**A primeira exceção nomeada, herdada do SH16 original:** **âncoras de navegação** (o rail)
encostam na borda da janela e vão de topo a base, sem raio externo — são âncora, não peça
sobre o canvas. É assim na referência medida.

> **⛔ SUPERSEDE DESTA EXCEÇÃO (gate visual do Rafael, 2026-08-15, sobre o preview v0.3 do
> shell):** *"a barra esquerda não seria com cantos arredondados? a apresentação dela seria de
> forma descolada, como uma barra flutuante, um bloco montado como os outros — todos
> independentes, igual o ClickUp usa."* **A exceção morre: o rail é PEÇA sobre o canvas como as
> demais** — `radius-lg`, calha `sp-3` nos quatro lados, flutuante. O CP1 fica SEM exceções
> nomeadas por ora ("exceções são nomeadas por arquétipo" permanece como mecanismo). Fato vs.
> inferência, declarado: a redação original dizia "é assim na referência medida" com base na
> varredura das capturas; o veredito do gate diz que a apresentação do ClickUp é de blocos
> independentes — **o gate do Rafael é a instância que decide marca e apresentação, e o
> supersede vale pelo veredito, não por re-medição**. Diferença de mecanismo declarada com o
> número: o rail-peça NÃO leva o anel/borda das peças brancas — as brancas precisam do 1px
> porque medem **1,21** contra o canvas; o gradiente do rail mede **5,82/8,62** (claro) e
> **2,70/1,82** (escuro) contra o canvas — a própria cor é a fronteira, e um traço claro sobre
> superfície escura seria ruído. Executado no shell no preview **v0.4** (MANIFESTO v7.1), onde
> a mudança também expôs e corrigiu um defeito latente: a barra branca do item ativo desenhava
> **fora do box do rail** desde o SH15-b (probe de pixel: x=-3 com o box em x=0; `overflow`
> clipa o eixo x junto) — corrigida para a borda interna e provada em cor renderizada
> (`rgb(255,255,255)` no pixel).

**Proveniência e supersede (SUP-1 do confronto, executado aqui):** o texto do SH16 vivia em
comentário CSS de três artefatos (`seed-shell-preview.html` l.136–153, `validacao/gen-shell.py`,
`validacao/shell-template.html`) e no MANIFESTO v6.5, ausente de todo canônico de lei (errata
E-CF-01 do confronto). Passa a ser lei **aqui**, com o §46 do `seed-componentes.md` v0.65
referenciando. *Alternativa descartada:* mantê-lo como SH16 dentro do §46 — o contrato não é
regra do shell, é regra do sistema; o shell é apenas onde ele foi descoberto, e mantê-lo lá
garantiria que o site e o e-mail nunca o encontrassem.

**Uma palavra da redação original morre aqui (supersede interno, motivado por medição):** o
SH16 dizia *"borda `border-subtle` de 1px"*. A separação passa a ser o **par sombra+anel**
(CP17). O 1px e a tinta são os mesmos — muda o **mecanismo**: o anel entra na declaração de
sombra (`0 0 0 1px`) e o slot `border` fica livre para estado. Motivo medido nesta edição:
`border-subtle` `#E3EBF0` mede **1,11** contra o canvas `surface-subtle` `#F2F6F9` e **1,21**
contra a peça branca — **a borda sozinha nunca foi a separação**; quem separa é o par. É o
mesmo achado do C15-c do ClickUp (borda a 1,23, visível só por causa da sombra) e é o que o
PN21a já fazia dentro do painel.

---

