Skip to content

fix(#617): redesign onboarding/create screen - #665

Open
Hussman256 wants to merge 1 commit into
Miracle656:mainfrom
Hussman256:fix/onboarding-redesign-617
Open

fix(#617): redesign onboarding/create screen#665
Hussman256 wants to merge 1 commit into
Miracle656:mainfrom
Hussman256:fix/onboarding-redesign-617

Conversation

@Hussman256

Copy link
Copy Markdown
Contributor

Summary

Closes #617.

Restyles app/page.tsx to match the redesign spec. All logic (passkey register → fee-payer → factory deploy) is unchanged.

Changes

app/globals.css

  • Added @keyframes pulse-ring + @keyframes pulse-ring-2 — two staggered gold rings expanding outward
  • Added .biometric-pulse class using ::before / ::after pseudo-elements

app/page.tsx

  • Pulse ring: 96×96 .biometric-pulse container wrapping <VeilMark size={64} />
  • Headline: Lora-italic <h1>"Your passkey is your wallet."* — with "your wallet." in the .hl gold highlight
  • Lede: "No seed phrase. No password. Just your biometric — securing a smart contract wallet on Stellar."
  • CTAs: id="onboarding-create" and id="onboarding-recover" for testability
  • Footnote: "Secured by WebAuthn on Stellar" — fixes mis-ID (tutorial-titlewebauthn-footnote)
  • Dead markup removed: empty {/* Main card */} comment block

Acceptance criteria

✅ Centered hero with pulse ring + gold-highlighted Lora headline
✅ Create / Recover CTAs; WebAuthn footnote
✅ Onboarding tutorial + create flow unchanged
✅ Dead markup removed

- 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
Hussman256 requested a review from Miracle656 as a code owner August 26, 2026 22:07
@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

@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.

Miracle656 added a commit that referenced this pull request Aug 27, 2026
…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.
@Miracle656

Copy link
Copy Markdown
Owner

Heads up — I merged #664, and this PR's changes are fully contained in it: the same app/globals.css (+33/-0) and app/page.tsx (+101/-79), identical churn. #664 carried those two files plus the #629 fee-payer work, so #617 is closed by that merge.

That means there is nothing left for this branch to apply — it would be a no-op or a conflict against main now.

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.

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.

Redesign the Onboarding / Create screen

2 participants