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
Origem: feedback da persona O Iniciante (Discussion #14, primeira impressão) — "o texto diz 'sem cadastro, sem firula' e no topo tem um botão 'entrar com Google'. Fiquei na dúvida se eu precisava logar pra jogar."
Problema
Sinais contraditórios nos 3 primeiros segundos:
Hero afirma "Sem cadastro, sem firula" — src/components/HomeView.tsx:242 (e o H1 SEO em :222).
No canto superior há "entrar com Google" sem nenhuma pista de que é opcional — src/components/HomeView.tsx:201-206.
Para a persona Iniciante (que "tem medo de fazer errado", §0.3), essa ambiguidade cria atrito de conversão logo na entrada: ele não sabe se precisa logar para jogar (não precisa — o login só pré-preenche o nick, ver :62).
Acceptance criteria
Fica visualmente claro que jogar não exige login: microcopy tipo "opcional" perto do botão, ou o CTA principal deixando explícito "jogar sem login / sem cadastro".
O botão continua funcional para quem quiser logar (não remover o Google).
prefers-reduced-motion respeitado; sem regressão de layout no header em mobile (hidden sm:inline já em uso).
pnpm typecheck + pnpm build verdes.
Dica de abordagem
Fatia mínima: adicionar um rótulo "opcional" ou tooltip ao lado do botão entrar com Google (:201-206) e/ou reforçar no CTA de criar sala que não precisa de conta. Sem novo fluxo de auth — puro esclarecimento de copy/UI.
Resolvido em PR #85 (auto/issue-17-login-optional).
Confirmei a premissa no código: entrar só pré-preenche o nick (HomeView.tsx:76 → useAuth.ts:21,30). Dois toques, um por viewport: title/aria-label + rótulo visível "opcional" no header (via o hidden sm:inline já convencional, então o mobile não ganha elemento novo — sem risco de regressão), e uma linha de microcopy sob o campo de nick (// é só o nick — sem conta, sem e-mail) que cobre o mobile, onde o rótulo do header fica escondido. Botão do Google intacto, nenhuma animação nova.
⚠ Screenshot não foi possível: o preview da Vercel buildou, mas está atrás do deployment protection e o link de bypass falhou. No lugar, verifiquei o output do build — a microcopy do nick está no HTML pré-renderizado, e os strings do header estão no bundle client (ausentes do HTML porque todo o bloco de auth é gated por hasBrowserSupabase(), o que também deixa "entrar com Google" com 0 ocorrências — gate pré-existente, não a mudança). Falta só conferência de pixel.
Activity
caioross commentedon Jul 26, 2026
Resolvido em PR #85 (
auto/issue-17-login-optional).Confirmei a premissa no código: entrar só pré-preenche o nick (
HomeView.tsx:76→useAuth.ts:21,30). Dois toques, um por viewport:title/aria-label+ rótulo visível "opcional" no header (via ohidden sm:inlinejá convencional, então o mobile não ganha elemento novo — sem risco de regressão), e uma linha de microcopy sob o campo de nick (// é só o nick — sem conta, sem e-mail) que cobre o mobile, onde o rótulo do header fica escondido. Botão do Google intacto, nenhuma animação nova.Gate verde: typecheck · build · 54 testes · persistência 49 · métricas 37.
⚠ Screenshot não foi possível: o preview da Vercel buildou, mas está atrás do deployment protection e o link de bypass falhou. No lugar, verifiquei o output do build — a microcopy do nick está no HTML pré-renderizado, e os strings do header estão no bundle client (ausentes do HTML porque todo o bloco de auth é gated por
hasBrowserSupabase(), o que também deixa "entrar com Google" com 0 ocorrências — gate pré-existente, não a mudança). Falta só conferência de pixel.