You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
UI: pódio solo mostra quadrados vazios/quebrados (adaptar Results a < 3 jogadores · §III.7) #11
Feedback da persona O Iniciante (discussion #9, detalhe visual final, jogado em produção solo): "no fim da partida solo, os dois quadrados do pódio (2º/3º) ficam vazios/escuros — parecem espaços quebrados." É um anti-clímax no pico emocional da tela de resultado, e todo jogador solo bate nisso.
Causa (Results.tsx:61-68): o pódio renderiza sempre 3 colunas fixas [1,0,2]; quando podium[idx] é undefined (menos de 3 jogadores), cai no fallback if (!p) return <div className="card" style={{height}} /> — um retângulo escuro vazio. Com 1 jogador, sobram dois cards vazios; com 2, sobra um.
Escopo (1 fatia · §III.7 Results/Pódio)
Adaptar a tela de resultado a ranked.length < 3:
Solo (1 jogador): não mostrar pódio de 3 lugares com buracos — dar um resultado "herói" centrado para o único corredor (medalha 🥇 + stats), sem placeholders vazios.
2 jogadores: pódio de 2 lugares (sem o card vazio do 3º).
3+: comportamento atual, intacto.
Critérios de aceitação (verificáveis)
Partida solo → tela de resultado sem nenhum card vazio/escuro; o único jogador aparece com destaque claro (medalha + WPM/precisão/erros/tempo).
Partida com 2 jogadores → sem card vazio do 3º lugar.
Partida com 3+ jogadores → layout de pódio inalterado (sem regressão visual).
A lista completa (ranked.map, Results.tsx:121) e o botão "ver ranking global" continuam funcionando.
prefers-reduced-motion respeitado (sem novas animações que ignorem o gate); pnpm typecheck + pnpm build verdes.
Dica de abordagem
Ramificar por ranked.length antes do bloco do pódio (Results.tsx:60). Para solo, um componente/branch de "resultado único" reaproveitando o card de 1º lugar centralizado. Para 2, montar o array de colunas dinamicamente em vez do fixo [1,0,2]. Coerência de tokens/springs com o resto da tela (§I motion).
Origem: feedback da persona em #9. Referência de spec: docs/UI-AAA-OVERHAUL.md §III.7 (Results / Pódio).
Resolvido em #26. Results agora ramifica por ranked.length: solo ganha card herói centrado (medalha + WPM/precisão/erros/tempo, sem placeholders vazios), dupla mostra pódio de 2 colunas, 3+ fica inalterado. Animações novas respeitam prefers-reduced-motion via useReducedMotion(). Gate verde (typecheck+build+validate-metrics 24/24+validate-persistence 33/33). Sem parecer do Conselho nesta issue.
Activity
caioross commentedon Jul 12, 2026
Resolvido em #26.
Resultsagora ramifica porranked.length: solo ganha card herói centrado (medalha + WPM/precisão/erros/tempo, sem placeholders vazios), dupla mostra pódio de 2 colunas, 3+ fica inalterado. Animações novas respeitamprefers-reduced-motionviauseReducedMotion(). Gate verde (typecheck+build+validate-metrics 24/24+validate-persistence 33/33). Sem parecer do Conselho nesta issue.