ShareLoopStage: implement wireframe Frame 5 as React component#64
Open
federicodeponte wants to merge 7 commits intofix/restore-pr44-nav-consolidationfrom
Open
ShareLoopStage: implement wireframe Frame 5 as React component#64federicodeponte wants to merge 7 commits intofix/restore-pr44-nav-consolidationfrom
federicodeponte wants to merge 7 commits intofix/restore-pr44-nav-consolidationfrom
Conversation
Implements the two-column share-back loop section (Frame 5 of 5) from the locked wireframe as a production React component. Visual contract preserved: - 19 CSS tokens mapped to var(--v0-*) (100% token fidelity, zero hardcoded hex) - 5 CSS @Keyframes converted to framer-motion (appleSpring, staggered delays) - 1 looping animation (btnGlow) preserved as CSS — framer repeat:Infinity produces slightly different timing feel for pulse animations - isMounted SSR guard on all entrance animations (no opacity:0 in SSR HTML) - useReducedMotion gate on all animations + looping glow - mascotDataUri() used for both sender and receiver mascots - No Tailwind, no hardcoded hex, no createAvatar() direct calls Wireframe: /root/floom-internal/relay-oss-prep-archive-2026-05-06/wireframes-final-cleanup/page-hero-scroll-v2-5.html Token audit: all 19 tokens verified against globals.css TypeScript: zero errors on ShareLoopStage.tsx Not auto-merging: Federico must visually approve before landing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
<ShareLoopStage />— the two-column sender/receiver share-loop demonstration section from wireframepage-hero-scroll-v2-5.html(Frame 5 of 5). This component does not yet appear in any page; it is ready to drop intoLandingPage.tsxafter Federico's visual approval.Wireframe source
/root/floom-internal/relay-oss-prep-archive-2026-05-06/wireframes-final-cleanup/page-hero-scroll-v2-5.htmlToken mapping (19 tokens, 100% fidelity)
--cream-2var(--v0-cream-2)--emeraldvar(--v0-emerald)--emerald-2var(--v0-emerald-2)--emerald-softvar(--v0-emerald-soft)--emerald-tintvar(--v0-emerald-tint)--inkvar(--v0-ink)--ink-2var(--v0-ink-2)--mutedvar(--v0-muted)--muted-2var(--v0-muted-2)--linevar(--v0-line)--glass-bgvar(--v0-glass-bg)--glass-bordervar(--v0-glass-border)--glass-shadow-herovar(--v0-glass-shadow-hero)--radius-card-lgvar(--v0-radius-card-lg)--radius-pillvar(--v0-radius-pill)--font-displayvar(--v0-font-display)--font-monovar(--v0-font-mono)--font-bodyvar(--v0-font-body)--creamvar(--v0-cream)Zero hardcoded hex values in component or CSS file.
Animation mapping (5 animations)
fadeInLeft 0.5s ease 0.1smotion.div initial:{opacity:0,x:-20}+appleSpring delay:0.1fadeInRight 0.5s ease 0.2smotion.div initial:{opacity:0,x:20}+appleSpring delay:0.2connectorPop cubic-bezier(0.23,1,0.32,1) 0.4sscale:0.5→1+appleSpring delay:0.4mascotPop cubic-bezier(0.23,1,0.32,1) 1.2sscale:0.4→1 opacity:0→1+appleSpring delay:1.2toastIn cubic-bezier(0.23,1,0.32,1) 0.8sy:-8→0+appleSpring delay:0.8btnGlow 2s ease infiniterepeat:Infinityproduces different pulse feel)Verification
npx tsc --noEmit— zero errors on ShareLoopStage.tsxcreateAvatar()direct callsmascotDataUri()used for both mascotsuseReducedMotion()gates all entrance animations + looping glowisMountedguard prevents SSR opacity:0 flash (P0 pattern from commit 4fc87ff)Deviations from wireframe
mascotDataUri()helper (CLAUDE.md anti-slop rule: never callcreateAvatar(bigSmile, ...)directly).type="button", no actual share sheet or QR modal. These need product decisions before wiring.slug,skillName,skillDescprops with those as defaults.Integration path
To render in the landing page, import and add after the hero card section:
Do NOT land without Federico's visual approval.
What's still not amazing
btnGlowpulse animation is CSS (not framer-motion) — this means it can't be paused on hover or intersection like framer animations can. Acceptable for v0, but not ideal.publishedCountin LandingPage.🤖 Generated with Claude Code + /wireframe-to-react skill