Skip to content

feat: adotar direção visual da issue #7 - #8

Draft
prof-ramos wants to merge 4 commits into
mainfrom
feat/issue-7-visual-direction
Draft

feat: adotar direção visual da issue #7#8
prof-ramos wants to merge 4 commits into
mainfrom
feat/issue-7-visual-direction

Conversation

@prof-ramos

@prof-ramos prof-ramos commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Resumo

Adota na landing principal a direção visual aprovada na issue #7 — violeta noturno, magenta, verde ácido, Anton no marketing e Archivo nas superfícies operacionais — sem substituir a arquitetura canônica nem importar o protótipo como dependência.

Closes #7

Principais mudanças

  • nova camada de tokens semânticos, tema escuro explícito e tipografia Anton + Archivo;
  • hero refeito para comunicar público, problema, centralização operacional e condição de piloto antes da rolagem;
  • DashboardPreview preservado e adaptado como demonstração responsiva, com rótulos permanentes “Demonstração do produto” e “Dados fictícios”;
  • problemas, pilares, fluxo, público, piloto, FAQ, CTA final, footer e páginas auxiliares adaptados ao novo sistema;
  • copy auditada para não apresentar hipóteses como funcionalidades disponíveis;
  • formulário real, schema, endpoint, idempotência, honeypot, Blob privado e lazy-loading preservados;
  • trava síncrona adicional para impedir duas tentativas ativas antes da atualização visual do botão;
  • metadata, Open Graph, manifest, themeColor, documentação e contexto de produto atualizados;
  • nenhuma dependência ou versão da stack alterada.

Antes e depois

Desktop — antes Desktop — depois
Landing anterior em desktop Landing nova em desktop
Mobile — antes Mobile — depois
Landing anterior em mobile Landing nova em mobile

Matriz de claims

Promessa Decisão Justificativa
Infraestrutura para vendas, promoters, check-in e prestação de contas Reformulada Sempre qualificada como proposta em validação
Pix no WhatsApp e planilhas paralelas Mantida Problema/substituto documentado, sem prevalência estatística
Comissão, check-in e fechamento rastreável Reformulada Exibidos como fluxos em validação ou previstos para o piloto
Retorno em até 48 horas úteis Mantida Compromisso já documentado na base
Offline/sync, preços automáticos, Pix/cartão, bloqueio de duplicidade, ranking, metas, tempo real e repasses automáticos Removida Disponibilidade não confirmada
Estorno conciliado, divisão/histórico auditável como produto disponível Removida Permanece somente a hipótese futura, identificada como tal
Eventos, receita, vendas, conversão ou urgência reais Removida Mockup rotulado como fictício e oculto da árvore acessível
Preço, taxa ou previsibilidade de custo Removida Modelo comercial ainda aberto

A matriz completa e o inventário de portabilidade estão em docs/issue-7/implementation-notes.md.

Validação local executada

Gate automatizado

pnpm install --frozen-lockfile  OK, lockfile inalterado
pnpm check                     OK
  Prettier                     OK
  ESLint                       OK
  TypeScript                   OK
  Next.js production build     OK

Rotas geradas: /, /_not-found, /api/subscribe, /manifest.webmanifest, /obrigado, /opengraph-image, /privacidade, /robots.txt e /sitemap.xml.

Formulário e endpoint

Caso Resultado observado
JSON malformado 400
Schema inválido 400, erros por campo
Idempotency-Key inválida 400
Origem inválida 403
Corpo acima de 16 KiB 413
Honeypot preenchido 200, sem chegar à persistência
Token ausente 503, mensagem sanitizada
Duplo clique uma tentativa ativa
Falha e retry do mesmo payload botão reabilitado e mesma chave reutilizada

O sucesso com Blob privado e a idempotência contra a persistência real dependem do Preview com BLOB_READ_WRITE_TOKEN.

Acessibilidade e responsividade

  • Lighthouse local desktop e mobile: Accessibility 100, Best Practices 100, SEO 100 e Agentic Browsing 100; 53/53 auditorias aprovadas;
  • 320, 375, 390, 768, 1024 e 1440 px sem overflow horizontal;
  • reflow equivalente a 200% (viewport CSS de 640 px para janela de 1280 px) sem perda de conteúdo;
  • skip link, navegação por teclado, abertura do menu com foco, Escape e retorno do foco aprovados;
  • formulário com oito mensagens associadas e foco no primeiro campo inválido;
  • foco global: outline sólido de 3 px, offset de 3 px;
  • contraste mínimo medido: borda de controle 4,11:1; texto secundário 6,75:1; ação 5,68:1; foco 16,97:1;
  • guard de prefers-reduced-motion presente no CSS compilado e marquee com fallback sem animação;
  • console local sem erros, warnings ou issues.

Performance e estabilidade

  • trace local desktop: LCP 167 ms e CLS 0,00, sem throttling e sem dados de campo;
  • .next/static/chunks: 1.288 KiB antes e depois;
  • .next/static/media: 96 → 156 KiB pela dupla tipográfica Anton + Archivo;
  • .next/server/app: 1.264 → 1.304 KiB;
  • Server Components preservados e PilotFormLazy mantido fora do bundle inicial;
  • nenhum header de segurança removido e X-Powered-By continua ausente.

Preview Deployment

  • URL: webingressos-page-git-fe-b8e008-gabriel-ramos-projects-c715690c.vercel.app
  • deployment dpl_Gnm6MeRvFuCdxBgJYRTveBAzh14Z: READY;
  • CI quality, Vercel e Vercel Preview Comments: aprovados;
  • /, /obrigado, /privacidade, robots, sitemap e manifest: 200; rota inexistente: 404;
  • 320, 375, 390, 768, 1024 e 1440 px: sem overflow, hashes quebrados ou link para /dashboard;
  • console do Preview: sem erros, warnings ou issues da aplicação;
  • Lighthouse Preview mobile: Accessibility 100, Best Practices 100 e Agentic Browsing 100; SEO 66 somente porque a proteção da Vercel injeta x-robots-tag: noindex;
  • Lighthouse Preview desktop em snapshot autenticado: 100 nas quatro categorias;
  • trace Preview: CLS 0,00; não há dados de campo/CrUX e o ambiente protegido não reportou LCP no trace;
  • envio real: 503; os logs registram apenas [lead] storage configuration missing, sem PII. BLOB_READ_WRITE_TOKEN não está configurado no Preview, portanto persistência privada e idempotência contra o Blob continuam bloqueadas externamente.

Riscos residuais

  • o teste local de movimento reduzido validou CSS compilado e fallback, mas o navegador usado não expôs emulação ativa da preferência;
  • a troca de uma família para duas aumenta os arquivos de fonte em aproximadamente 60 KiB;
  • o Preview está protegido por Vercel Authentication e recebe noindex da plataforma; isso explica a única falha de SEO na auditoria por navegação;
  • sucesso real, indisponibilidade temporária/rate limit do Blob e verificação do Blob privado exigem configurar BLOB_READ_WRITE_TOKEN no ambiente Preview;
  • Core Web Vitals de campo não existem para este Preview; o trace autenticado confirmou CLS 0,00, mas não reportou LCP;
  • política de privacidade ainda depende de revisão jurídica e rate limiting distribuído continua fora desta issue.

Rollback

  1. não fazer merge enquanto CI, revisão visual, acessibilidade básica e formulário real no Preview não estiverem aprovados;
  2. antes do merge, fechar o PR ou reverter estes quatro commits na branch;
  3. após merge autorizado, usar Revert no PR e promover o deployment anterior da Vercel se surgir regressão crítica;
  4. preservar os contratos de POST /api/subscribe, variáveis de ambiente e Blob durante qualquer rollback.

@vercel

vercel Bot commented Aug 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
webingressos-page Ready Ready Preview Aug 9, 2026 7:10am

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 404674b8-921c-42fd-a898-4ae788c6f4b0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adotar a direção visual do webingressos-58 na landing principal

1 participant