fix(#617): redesign onboarding/create screen - #665
Conversation
- Hero: centered biometric pulse ring (two-ring gold animation) wrapping the VeilMark at 96px, defined as .biometric-pulse in globals.css - Headline: Lora-italic h1 with 'your wallet.' highlighted via .hl gold underlay - Lede: single sentence explaining no seed phrase, biometric, Stellar - CTAs: Create wallet (btn-gold, id=onboarding-create) and Recover existing wallet (btn-ghost, id=onboarding-recover) - Footnote: 'Secured by WebAuthn on Stellar' id=webauthn-footnote (was mis-IDed as tutorial-title) - Removed dead empty-card comment block - Onboarding tutorial + registering/deploying/done flow unchanged
|
@Hussman256 is attempting to deploy a commit to the miracle656's projects Team on Vercel. A member of the Team first needs to authorize it. |
…ility-629 Verified the one property that mattered here: **the chosen fee-payer does not change.** `lib/feePayer.ts` is the file where a wrong answer strands a user's funded `G…` address, so I diffed the selection path rather than trusting the summary. `effectiveMode = pinned ?? (existing ? 'legacy' : null)` is unchanged, and the branch is the same: ```ts if (effectiveMode) chosen = candidates.find(c => c.mode === effectiveMode) ?? candidates[0]! else chosen = (await pickFundedCandidate(candidates)).chosen ?? candidates[0]! ``` Same semantics as before. The only change is that `pickFundedCandidate` now returns the per-candidate probe results alongside its choice, so Settings can show them — additive, not behavioural. `isFeePayerPrfDowngrade()` encodes #629's condition correctly: PRF was attempted, did not succeed, and we landed on `legacy`. That is exactly the silent downgrade the issue was about, and surfacing it with the probe log and a copyable bug report is more than the issue asked for. Verified locally against a clean `main`: merges without conflict, `tsc --noEmit` clean, `next build --webpack` completes. One note on the description: it says the `/settings/fee-payer` page "was already fully implemented but completely unreachable". It is not on `main` — this PR creates it (+203/-0). No matter for the merge, but worth knowing the page is new code rather than previously-reviewed code. **#665 is fully contained in this PR** — the same `globals.css` (+33/-0) and `app/page.tsx" (+101/-79). I have left it open rather than closing it on your behalf; see my comment there.
|
Heads up — I merged #664, and this PR's changes are fully contained in it: the same That means there is nothing left for this branch to apply — it would be a no-op or a conflict against I am not closing it on your behalf. Your call: close it as included in #664, or if you meant this one to be the canonical #617 PR and #664 to be #629-only, say so and I will sort the attribution out. The work is merged either way — I just want the record to reflect what you intended. Thanks for both; the fee-payer diagnostics in #664 went further than the issue asked for. |
Summary
Closes #617.
Restyles
app/page.tsxto match the redesign spec. All logic (passkey register → fee-payer → factory deploy) is unchanged.Changes
app/globals.css@keyframes pulse-ring+@keyframes pulse-ring-2— two staggered gold rings expanding outward.biometric-pulseclass using::before/::afterpseudo-elementsapp/page.tsx.biometric-pulsecontainer wrapping<VeilMark size={64} /><h1>— "Your passkey is your wallet."* — with"your wallet."in the.hlgold highlightid="onboarding-create"andid="onboarding-recover"for testabilitytutorial-title→webauthn-footnote){/* Main card */}comment blockAcceptance criteria
✅ Centered hero with pulse ring + gold-highlighted Lora headline
✅ Create / Recover CTAs; WebAuthn footnote
✅ Onboarding tutorial + create flow unchanged
✅ Dead markup removed