Skip to content

feat: live demo, nav overlay, and 4th partner from updated design#1

Open
PrakharSingh0908 wants to merge 1 commit into
mainfrom
claude/clone-repo-locally-HmICm
Open

feat: live demo, nav overlay, and 4th partner from updated design#1
PrakharSingh0908 wants to merge 1 commit into
mainfrom
claude/clone-repo-locally-HmICm

Conversation

@PrakharSingh0908

Copy link
Copy Markdown

Summary

Implements the deltas from the latest Provekit Design System bundle (chats 6 & 7) on top of the existing Astro implementation. Three feature areas, all gated to scope:

  • Live Demo on /benchmarks (above Methodology) — interactive zero-knowledge proof generation widget. React island via @astrojs/react with framer-motion driving the step progress bars, dot pulse, byte reveal, caret blink, and section swap-ins. Locked to the Age verification scenario per the final design iteration; Poseidon ↔ SHA-256 toggle re-scales constraint count and timing. Hydrated only via client:visible.
  • Nav overlay — hamburger now opens a full-page sheet with 5 numbered nav items (hover translate + arrow rotate), Resources / Community meta columns, CTA strip, backdrop blur, ESC + backdrop click to close, body scroll lock, and a hamburger → X swap. Vanilla TS controller, no React.
  • Nethermind added as the 4th partner in EngineeringCredit.

Also adds 4 demo-specific keyframes (pk-demo-pulse, pk-demo-caret, pk-demo-byte-in, pk-demo-swap-in) with prefers-reduced-motion guards.

Files

New

  • src/components/demo/LiveDemo.tsx — React + framer-motion island, ported from mobile/MobileDemo.jsx
  • src/components/demo/LiveDemoSection.astro — panel chrome + hydration boundary
  • src/components/nav/NavOverlay.astro — full-page nav sheet markup + styles
  • src/scripts/nav-overlay.ts — open/close controller (aria-expanded, ESC, scroll lock, focus management)
  • public/figma/nethermind-logo.svg

Modified

  • astro.config.mjs@astrojs/react integration (include: ['**/*.tsx'])
  • tsconfig.jsonjsx: "react-jsx", jsxImportSource: "react"
  • package.json / pnpm-lock.yaml@astrojs/react, react, react-dom, framer-motion, @types/react, @types/react-dom
  • src/pages/benchmarks.astro<LiveDemoSection /> slotted between Hero and Methodology
  • src/components/nav/TopBar.astro — hamburger wired to overlay, hamburger ↔ X swap
  • src/components/credits/EngineeringCredit.astro — Nethermind partner row
  • src/styles/global.css — 4 demo keyframes

Bundle impact

Bundle Size gzip Pages
LiveDemo.*.js 127.5 kB 41.9 kB /benchmarks (via client:visible)
client.*.js (React DOM) 135.6 kB 43.8 kB /benchmarks (lazy)
nav-overlay.*.js 6.7 kB 2.65 kB both pages

The landing page's critical path is unchanged — React only loads when /benchmarks scrolls the demo into view.

Test plan

  • pnpm check — 0 errors (verified locally)
  • pnpm build — both pages build cleanly (verified locally)
  • pnpm test — Vitest passes
  • pnpm test:e2e — Playwright across the three viewports
  • pnpm lhci — confirm the Lighthouse budgets still hold on / (the demo bundle only affects /benchmarks)
  • Manual: open /benchmarks, click GENERATE PROOF, confirm the 4-step trace runs, bytes reveal, KPIs settle to VERIFIED; ABORT and RESET both cancel cleanly; Poseidon ↔ SHA-256 toggle rescales constraints/timing and resets state
  • Manual: open the hamburger, verify hover translate + arrow rotate on each nav item, ESC closes, backdrop click closes, body scroll is locked while open, hamburger animates to X
  • Manual: confirm Nethermind logo renders alongside world / atheon / reilabs
  • Manual: prefers-reduced-motion: reduce — demo animations and overlay transitions drop to instant

https://claude.ai/code/session_01WAsKJHJnswDKVg22V5yx5v


Generated by Claude Code

Implements the deltas from the latest Provekit Design System bundle:

- Live Demo (LiveDemo.tsx + LiveDemoSection.astro): interactive
  zero-knowledge proof generation widget on /benchmarks, above the
  methodology panel. React island via @astrojs/react with framer-motion
  driving the step progress bars, dot pulse, byte reveal, caret blink,
  and section swap-ins. Locked to the Age verification scenario per the
  final design iteration; Poseidon/SHA-256 toggle re-scales constraints
  and timing. Hydrated only on /benchmarks via client:visible.

- Nav overlay (NavOverlay.astro + nav-overlay.ts): full-page navigation
  sheet that opens from the hamburger. Five numbered items with hover
  translate + arrow rotate, two meta columns (Resources / Community),
  CTA strip, backdrop blur, ESC + backdrop click to close, body scroll
  lock, and a hamburger -> X swap. Vanilla TS controller, no React.

- Nethermind added as 4th partner in EngineeringCredit.

- 4 demo keyframes (pulse, caret, byte-in, swap-in) in global.css with
  prefers-reduced-motion guards.

Type-checks (pnpm check: 0 errors) and builds cleanly. The new React
bundle is loaded only when /benchmarks scrolls into view, so the
landing page critical path is unchanged.
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.

2 participants