Componentes
Histórico da §49 — seed-componentes.md
Título completo no canon: Histórico da seção §49 — Detalhe de registro — painel e modal (não é regra)
Base (3 rodadas encadeadas + rodada zero, 2026-08-15). Rodada zero — leitura visual: confirmada na §13.4 antes de qualquer spec. Regra da fase. R1 canon: Carbon dá a régua por VOLUME, não por gosto — modal quando um subconjunto pequeno é editável; se há campos suficientes para exigir rolagem, painel lateral ou página inteira; e o side panel existe para manter o usuário em contexto com a página. Fiori dá o object page (seções e subseções com navegação por âncora ou aba) e duas réguas operacionais que entraram inteiras: a paginação entre irmãos só aparece quando a lista de origem tem ao menos dois itens, e ao excluir o item corrente seleciona-se o anterior — se não sobra nada, fecha. Fiori também manda usar o mesmo layout em exibição e edição: o conteúdo não muda de lugar. R2 mercado/stack: Radix Dialog entrega os dois regimes (modal e não-modal) com controle fino de foco, o que barateia a decisão PD1 — é o mesmo primitivo. Nota de fronteira registrada: o Radix foi adquirido pela WorkOS e a cadência caiu em alguns componentes; o Base UI é hoje a camada de primitivos mais ativa, e o shadcn/ui é o consumo dominante. Não muda decisão aqui; muda o que vigiamos. R3 normas / fora do circuito: o cabeçalho fixo do C50 é risco de norma, não detalhe estético — a falha F110 do WCAG 2.2 descreve exatamente o sticky que cobre o elemento focado, e o SC 2.4.11 é AA; o conserto canônico é
scroll-padding. O hover do C53 é a armadilha maior: o Spectrum corrigiu este caso em novembro de 2025 trocandovisibility:hiddenporopacity:0, porquevisibility:hiddenedisplay:noneremovem da árvore de acessibilidade e o botão deixa de ser alcançável por Tab. O "Expandir" do C54 precisa dearia-expanded+aria-controlse de rótulo que nomeie o quê.