Componentes
0. Fundamentos de componente
seed-componentes.md v1.43 · §00seção 2 de 9800-fundamentos-de-componente-valem-para-todos-os.md · MD5 9a87a77fTítulo completo no canon: Fundamentos de componente (valem para todos os blocos)
- Toda cor via token semântico (
--seed-action-primary), nunca primitivo, nunca hex. Dark mode vem de graça. - Estados obrigatórios em todo componente interativo: default · hover · active/pressed · focus-visible · disabled · loading (quando houver operação assíncrona). Componente sem os 6 documentados não é "pronto".
- Foco sempre visível:
box-shadow: var(--seed-focus-ring)— nuncaoutline: nonesem substituto. - Alvo de toque ≥44×44px no tamanho padrão (WCAG 2.2 / mobile). Tamanhos densos (sm) são para interfaces desktop de alta densidade.
- Motion produtivo: transições de estado usam
--seed-dur-productive-fast(100ms) com--seed-ease-productive. Nada de animação expressiva em micro-interação.- ⭐
--seed-ease-out=cubic-bezier(.2,.8,.4,1)— FIXADO em 2026-08-26, por medição. Esta spec o usava quatro vezes (thumb do switch 120 ms · toast 160 ms · barra de progresso 200 ms · modal/drawer) e nunca dizia o valor, então o acervo tinha dois:.2,.8,.4,1em 3 artefatos e.2,.7,.3,1em 2. - ⚠ A medição mostrou que os dois são a mesma curva. Resolvendo o bézier em 21 instantes de um movimento de 120 ms, a diferença máxima é 1,5% do percurso e, em tempo, 0,3 ms. A 60 Hz um quadro dura 16,7 ms — 0,3 ms é 1/56 de um quadro. Não existe monitor onde essa diferença apareça. Escolheu-se a de maior uso, que também é a que faz o conserto ser de 2 arquivos e não de 3.
- ⭐⭐ E o mesmo teste respondeu a pergunta que ninguém tinha feito:
--seed-ease-outdeve existir, ou era apelido de--seed-ease-productive? Contra oproductive, a diferença é 36,8% do percurso e 24,9 ms — quase um quadro e meio, 83 vezes maior que a diferença entre as duas candidatas. São curvas diferentes de verdade, então o token merece existir. Sem o número, essa pergunta se responderia por gosto.
- ⭐
- Status de maturidade por componente:
rascunho→estável→depreciado. - Microcopy é parte do componente — cada spec define as regras de texto no tom SEED (direto, acolhedor, sem floreio).
- Responsivo por padrão (v0.7 — diretriz de paridade mobile/app, 2026-08-02). Todo componente especifica seu comportamento em superfície de toque: o que empilha, o que vira full-width, o que muda de tamanho. Largura sempre fluida dentro do layout (breakpoints oficiais nos tokens v1.2 §2.9; pior caso de teste: 360px). Hover é progressivo, nunca portador único de informação — não existe hover no toque; toda informação apresentada em hover precisa de equivalente acessível por toque/foco. Campos usam
--seed-fs-field-touch(16px) empointer: coarse. Motivo: apps serão produzidos e o uso mobile supera o desktop; nenhum bloco nasce desktop-first.