Pular para o conteúdo principal

ADR-015 — Redesign v3 com identidade e luminosidade independentes

  • Status: Accepted para direção visual; capabilities funcionais continuam condicionadas aos seus CRs/IAs
  • Data: 2026-08-24
  • Decisores: Product Owner, Product & Engineering
  • Evolui: ADR-013; não apaga seu histórico nem altera marca/assets oficiais

Contexto

Os protótipos T1–T9 aprovados introduzem duas dimensões ortogonais: identidade visual Raiz | Neutro e luminosidade dark | light. O sistema vigente representa apenas luminosidade e fixa o laranja RaizFC como primary. Implementar seletores locais em cada tela criaria estado divergente, flash de tema e quatro paletas não testadas.

Decisão

  1. O tema canônico é { identity: 'raiz' | 'neutral', luminosity: 'dark' | 'light' }.
  2. Novos usuários e ausência de preferência iniciam em neutral/dark, conforme a decisão final do protótipo.
  3. identity=raiz usa #EA580C como primary; neutral/dark usa #E8E4DC; neutral/light usa #2A2520.
  4. Luminosidade governa canvas, surfaces, texto e bordas. Identidade governa primary, seleção, foco e marcas themable; não altera conteúdo, ordem, permissão nem estado esportivo.
  5. Escudos e marcas de entidades não são recoloridos. A marca institucional do shell é a exceção explícita: usa as variantes oficiais brand/themeable para acompanhar identidade e luminosidade, preservando a geometria e a costura do símbolo.
  6. Preferência antiga dark|light migra para raiz/<valor> para não mudar silenciosamente a identidade escolhida por usuários existentes. Somente ausência de preferência usa o novo default.
  7. Leitura é estrita: shape v3 inválido, valor legado desconhecido ou storage corrompido é tratado como ausência e renderiza neutral/dark. O valor bruto não é logado nem regravado; somente uma escolha válida do usuário ou a migração reconhecida escreve no storage.
  8. Web evita flash por bootstrap/hydration seguro; mobile carrega a preferência antes de liberar a composição principal ou usa skeleton semanticamente neutro.
  9. O seletor real pode viver em Onboarding/Perfil e no painel único Tema do shell. Todos consomem o mesmo provider persistente. ThemeDevControls, toggles externos e modais sem comportamento real dos JSX não entram em produção.
  10. Os quatro modos precisam de contraste, visual regression, reduced motion e testes de persistência equivalentes.

Compatibilidade e rollback

A implementação usa leitura compatível do valor legado e escrita somente no shape v3 após migração. Rollback conserva a luminosidade e ignora temporariamente identity; não apaga a preferência v3. Componentes consomem tokens semânticos, nunca fazem branch por nome de cor.

Consequências

  • ADR-013 continua fonte histórica de tipografia, marca, hero e dark-first; seu modelo de dois temas é substituído somente no eixo de tema.
  • SPEC-UX-VISUAL-001, SPEC-UX-TOKENS-001, SPEC-UX-COMPONENTS-001 e SPEC-UX-A11Y-001 evoluem em conjunto.
  • Cards/OG só adotam identidade Neutro quando a spec do renderer definir snapshot e cache; não se presume migração automática.
  • Assets novos exigem proveniência/licença e review visual antes de assets/.
  • Nenhuma capability de domínio do protótipo é autorizada por este ADR.