Pular para o conteúdo principal

Status: Approved · v2.1 · SPEC-UX-AUTH-001

depends_on: SPEC-DOMAIN-AUTH-001, SPEC-DOMAIN-TERRITORY-001

used_by: IS-MVP-02.1, IS-MVP-02.2, IS-MVP-02.3, IS-MVP-19.4, IS-MVP-19.30

Autenticação, onboarding e login contextual

Fluxos curtos e confiáveis que preservam a intenção do visitante sem transformar onboarding em questionário longo.

Objetivo

Fluxos curtos e confiáveis que preservam a intenção do visitante sem transformar onboarding em questionário longo.

Pontos de entrada

  • Entrar pelo Perfil.
  • Ação protegida em página pública.
  • Convite deep link.
  • Sessão expirada durante ação.

Hierarquia da tela

  1. Escolha entrar/criar conta.
  2. Formulário mínimo.
  3. Onboarding em passos curtos: identidade, distrito, preferências.
  4. Revisão da ação contextual quando aplicável.
  5. Retorno ao destino original.

Componentes e comportamento

Auth Form

E-mail ou telefone, senha, mostrar/ocultar, recuperação. Erros no campo quando seguro.

Onboarding Progress

Poucos passos; permite voltar sem perder dados. Distrito obrigatório.

Favorite Team

Opcional; explica que Torcer é público e gera Follow.

Suggestions

Times/torcidas relacionadas pré-marcados apenas quando claramente relacionados; território/campeonato desmarcados por padrão.

Intent Review

Antes de executar apoio identificado, torcer, aceitar convite ou denunciar, exibe resumo quando houver consequência relevante.

Ações do usuário

AçãoPré-condiçãoResultadoFalha/alternativa
CadastrarDados válidosConta pending_onboardingDuplicidade/validação
EntrarCredencial válidaSessão/restauração de intentInválida/suspensa
Concluir onboardingDistrito válidoConta activeDistrito inativo
Executar intentIntent válidoAção e retornoExpirado/conflito
Recuperar senhaIdentificadorResposta neutraSempre neutra

Estados obrigatórios

EstadoRepresentaçãoAção disponível
SubmittingBotão bloqueado e feedbackCancelar quando seguro
Field errorMensagem próxima ao campoCorrigir
Account suspendedMensagem e suporteAbrir suporte
Intent expiredAção não executadaVoltar ao contexto
OfflineDados preservados localmente quando seguroTentar novamente

Autenticação e permissões

  • Cadastro/login são públicos.
  • Onboarding autenticado.
  • Intent revalida alvo e permission no backend.

Responsividade

  • Mobile usa teclado/tipos corretos e evita conteúdo oculto.
  • Desktop centraliza formulário com contexto visual discreto.
  • Deep link retorna corretamente em ambos.

Baseline visual T1

  • Login, cadastro, recuperação, reset e onboarding usam a mesma composição editorial T1 em web e mobile, sem transformar o formulário-base em card quando o protótipo não apresenta uma superfície elevada.
  • O lockup horizontal oficial aparece antes do título com largura visual de 150 px no desktop e 130 px no mobile, preservando proporção, contraste, texto alternativo/nome acessível e a variante correta para cada modo.
  • O runtime usa somente assets com proveniência em assets/new_brand/** ou assets/redesign-v3/**; o base64 embutido no harness do protótipo nunca é copiado.
  • Campos de nome, identificador e senha usam ícones outline da mesma família licenciada do App Shell; os ícones são decorativos, não substituem labels persistentes e não reduzem a área útil ou o alvo de 44 px.
  • O fundo é o token background, sem gradiente radial decorativo. Bordas, superfícies auxiliares e caixas de estado só existem quando comunicam estado real, AuthIntent ou agrupamento funcional previsto.
  • A largura de leitura segue o protótipo: 420 px no desktop e largura disponível no mobile, com padding de 40 px/24 px e sem overflow a partir de 320 px.
  • Google, divisor ou e qualquer espaço reservado permanecem ausentes enquanto EP-MVP-19.5 estiver gated.
  • Convergência visual exige screenshots reais lado a lado para as cinco superfícies, nos quatro modos, em web e mobile; teste por presença de token/string não substitui essa evidência.

Acessibilidade

  • Labels persistentes, autocomplete seguro, mensagens associadas a campos.
  • Não depender de placeholder.
  • Foco no primeiro erro.

Eventos de produto e observabilidade

  • auth_started
  • register_submitted
  • login_succeeded
  • onboarding_step_completed
  • auth_intent_executed
  • auth_intent_failed

Dados e endpoints

  • POST auth/register/login/refresh/logout.
  • POST onboarding/complete.
  • POST auth/intents e execute.
  • POST forgot/reset password.

Critérios de aceite

  • Distrito obrigatório.
  • Ação original preservada.
  • Onboarding opcional não bloqueia por preferências.
  • Erros não vazam existência de conta.

Pós-MVP

  • SSO, MFA e magic link.

Decisões registradas

  • Todo cadastrado nasce supporter.
  • Favorite team opcional.
  • AuthIntent é parte do MVP.

Machine summary

spec: SPEC-UX-AUTH-001
screen_or_flow: Autenticação, onboarding e login contextual
required_states:
- loading
- success
- empty
- error
must_use:
- contracts
- service
- hook
- design_tokens
must_not:
- direct_fetch
- direct_fixture_import
- hardcoded_brand_colors