Skip to content

Front refactor: SP2 — landing no design novo (build pblico)#143

Merged
BrunooMoniz merged 3 commits into
mainfrom
front/view-landing
Jun 18, 2026
Merged

Front refactor: SP2 — landing no design novo (build pblico)#143
BrunooMoniz merged 3 commits into
mainfrom
front/view-landing

Conversation

@BrunooMoniz

Copy link
Copy Markdown
Owner

Landing redesenhada (Refined Editorial) como export Next sem basePath (build:public). Infra inerte pro app build. Deploy do landing (zinom-site) feito separado.

🤖 Generated with Claude Code

BrunooMoniz and others added 3 commits June 18, 2026 11:37
No-basePath public landing export, separate from the /app build:
- next.config.ts: split .next cache via NEXT_DIST_DIR; document the two builds
- package.json: build:public (MARKETING_BUILD=1, no basePath) → export-landing
- scripts/export-landing.mjs: stage out/ → out-public/ with /_next assets,
  preserve favicon.svg/privacidade/termos/plano from zinom-site/public,
  assert index.html references /_next/ with no /app prefix
- marketing.css: landing.css ported, re-tokenized to Refined Editorial (teal
  #2f5d50, Inter/JetBrains Mono self-hosted, warm paper bg)
- icons.tsx: ICONS map ported to React SVG components (no innerHTML)
- useReveal.ts: watchVisible() ported (IO + scroll/resize fallback, reduced-motion)
- hooks/marketing-access.ts: register/request-invite via raw same-origin fetch
- lib/marketing/{feed,chat}-scenario.ts: pure scripted demo data

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
All landing sections ported faithfully from zinom-site/public (index.html +
landing.js) as React, zero inline scripts:
- Nav (desktop links + CTAs, hamburger w/ aria, scroll shadow, Escape/resize close)
- Hero (eyebrow, <em>memória</em> title, lede, hero-eq) + SourcesStrip (5 chips)
- AccessCard (#acesso): invite/waitlist tabs → /portal/register, /portal/request-invite;
  ?invite/?email prefill, ?error=link top note, ok/field-err states
- HowItWorks (#como): animated diagram (6 nodes rotate `lit` @1400ms) + 3 steps
- Pricing (#planos): 4 plans (Free/Essencial/Pro featured/Ilimitado) w/ off feats
- CtaBand + Footer (4 cols, all links incl. mailto/privacidade/termos/MCP)
- icons.tsx: + ICON_SVG raw strings for the imperatively-built demo nodes

page.tsx is the build switch: MARKETING_BUILD=1 renders <Landing/> at / with the
SEO metadata (title/description/favicon, lang pt-BR from root layout); otherwise
the /app/ → /inicio/ redirect (moved to AppRedirect client child). "Entrar" →
/app/login/. export-landing reads the distDir export (EXPORT_DIR).

Public build verified: out-public/index.html references /_next/ with no /app
prefix; Inter + JetBrains Mono self-hosted under _next/static/media (no CDN).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- lib/marketing/feed-scenario.test.ts: chunkTargetUpTo matches the cumulative
  +18/+27/+28/+52 from landing-feed.js; payoff hits 0.94/0.87/0.71
- lib/marketing/chat-scenario.test.ts: 4 scenarios valid (user→…→answer, steps 1..4)
- components/marketing/useReveal.test.tsx: reduced-motion shows immediately;
  off-screen stays hidden
- e2e-landing/landing.spec.ts + playwright.landing.config.ts: serves the staged
  out-public/ at root (as the worker would). Asserts SEO meta/lang/favicon,
  no /app/_next requests, anchor targets, nav hamburger (open/Escape/link close),
  access card invite 200→#sent / 400→field-err, waitlist, ?invite&?email prefill,
  ?error=link note, demos run (#fl-count-n>0, #chat-body .msg), no-overflow 360/1440.

All green: unit 225/225 (9 new), landing e2e 12/12.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@BrunooMoniz BrunooMoniz merged commit c64651f into main Jun 18, 2026
3 checks passed
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.

1 participant