Status: Approved · v2 · SPEC-UX-PUBLIC-TORCIDA-001
depends_on: SPEC-DOMAIN-TORCIDA-001
used_by: IS-MVP-01.5, IS-MVP-08.2
Página pública da torcida
Entidade própria vinculada ao time, com identidade, membros, conteúdo, apoio e sponsors sem competir com a página do time.
Objetivo
Entidade própria vinculada ao time, com identidade, membros, conteúdo, apoio e sponsors sem competir com a página do time.
Pontos de entrada
- Página do time.
- Busca.
- Feed.
- Território.
- Card compartilhável.
Hierarquia da tela
- Hero com identidade da torcida e time vinculado.
- Status de aprovação e território.
- Ações Seguir, Entrar/Solicitar entrada, Apoiar e Compartilhar.
- Resumo público de membros e atividade.
- Posts oficiais.
- Próximos jogos do time destacados pela torcida.
- Apoiadores e sponsors.
- Sobre, regras de entrada, contato e denúncia.
Componentes e comportamento
Team Link
Time vinculado sempre claro e clicável.
Join CTA
Muda conforme open, approval_required, invite_only e membership atual.
Approval State
Pending/rejected não se apresenta como torcida oficial ativa; owner recebe orientação privada.
Members
Lista pública limitada ou agregado conforme configuração.
Wallet Public Surface
Nunca mostra saldo; apenas CTA Apoiar e apoiadores permitidos.
Ações do usuário
| Ação | Pré-condição | Resultado | Falha/alternativa |
|---|---|---|---|
| Entrar | Autenticado | Active ou pending | Invite-only/duplicado |
| Apoiar | Approved | Checkout | Não aprovada/restrita |
| Seguir | Autenticado | Follow | Idempotente |
| Abrir time | Público | Página do time | Merged |
| Denunciar | Autenticado | Report | AuthIntent |
Estados obrigatórios
| Estado | Representação | Ação disponível |
|---|---|---|
| Approved | Completa | — |
| Pending approval | Página limitada para owner/aviso | Aguardar |
| Rejected | Motivo privado e orientação | Reenviar |
| Suspended/ended | Banner e histórico | — |
| No posts/members | Empty contextual | Gestão quando permitido |
Autenticação e permissões
- Leitura pública apenas quando approved ou política específica.
- Gestão por membership.
- Members privados não expostos.
Responsividade
- Ações empilhadas no mobile.
- Desktop usa hero com time vinculado ao lado.
- Sponsors abaixo de conteúdo principal.
Acessibilidade
- Join state textual.
- Contadores com labels.
- Não usar apenas escudos/cores para identificar time.
Eventos de produto e observabilidade
- torcida_viewed
- torcida_join_started
- torcida_support_started
- torcida_followed
- team_link_opened
Dados e endpoints
- GET /torcidas/:slug.
- POST /torcidas/:id/join.
- GET /torcidas/:id/members.
- GET sponsors/supporters/posts.
Critérios de aceite
- Time vinculado evidente.
- JoinMode completo.
- Pending/rejected tratados.
- Sem saldo público.
- Visual próprio e profissional.
Pós-MVP
- Votação, eventos e mensalidade.
Decisões registradas
- Várias torcidas por time.
- Torcida é entidade gerenciável e possui wallet.
Machine summary
spec: SPEC-UX-PUBLIC-TORCIDA-001
screen_or_flow: Página pública da torcida
required_states:
- loading
- success
- empty
- error
must_use:
- contracts
- service
- hook
- design_tokens
must_not:
- direct_fetch
- direct_fixture_import
- hardcoded_brand_colors