Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
626 changes: 72 additions & 554 deletions src/components/DesktopWelcomePage.tsx

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions src/components/MembershipOffer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,36 +43,36 @@ export function MembershipOffer() {
}

return (
<section aria-labelledby="membership-title" className="rounded-[20px] border border-[#dce1d9] bg-white p-8 text-[#19231e] shadow-[0_12px_40px_-24px_rgba(30,50,40,0.25)] lg:p-10">
<section aria-labelledby="membership-title" className="rounded-[20px] border border-[#dce1d9] dark:border-[#2a342d] bg-white dark:bg-[#181e1a] p-8 text-[#19231e] dark:text-[#eef2ee] shadow-[0_12px_40px_-24px_rgba(30,50,40,0.25)] dark:shadow-[0_12px_40px_-24px_rgba(0,0,0,0.6)] lg:p-10 transition-colors">
<div className="flex items-center justify-between gap-3">
<p className="text-[11px] font-semibold uppercase tracking-[0.16em] text-[#57675b]">Do It membership</p>
<span className="rounded-full bg-[#edf3ed] px-3 py-1 text-[11px] font-medium text-[#386347]">For two people</span>
<p className="text-[11px] font-semibold uppercase tracking-[0.16em] text-[#57675b] dark:text-[#8ea293]">Do It membership</p>
<span className="rounded-full bg-[#edf3ed] dark:bg-[#202c23] px-3 py-1 text-[11px] font-medium text-[#386347] dark:text-[#82be91]">For two people</span>
</div>
<h2 id="membership-title" className="mt-6 text-2xl font-semibold tracking-tight">One commitment. Both of you.</h2>
<h2 id="membership-title" className="mt-6 text-2xl font-semibold tracking-tight text-[#19231e] dark:text-[#f4f7f4]">One commitment. Both of you.</h2>
<div className="mt-7 flex items-baseline gap-2">
<span className="text-[64px] font-semibold leading-none tracking-[-0.06em]">$15</span>
<span className="text-sm text-[#657067]">USD / month</span>
<span className="text-[64px] font-semibold leading-none tracking-[-0.06em] text-[#19231e] dark:text-[#f4f7f4]">$15</span>
<span className="text-sm text-[#657067] dark:text-[#95a498]">USD / month</span>
</div>
<p className="mt-3 text-sm text-[#657067]">One monthly subscription covers both players.</p>
<div className="my-8 h-px bg-[#e7eae4]" />
<p className="mt-3 text-sm text-[#657067] dark:text-[#95a498]">One monthly subscription covers both players.</p>
<div className="my-8 h-px bg-[#e7eae4] dark:bg-[#263129]" />
<ul className="space-y-5">
{included.map(([title, description]) => <li key={title} className="flex gap-3">
<Check size={17} strokeWidth={2} className="mt-0.5 shrink-0 text-[#427853]" />
<div><p className="text-sm font-medium">{title}</p><p className="mt-1 text-xs leading-relaxed text-[#657067]">{description}</p></div>
<Check size={17} strokeWidth={2} className="mt-0.5 shrink-0 text-[#427853] dark:text-[#68a77a]" />
<div><p className="text-sm font-medium text-[#19231e] dark:text-[#eef2ee]">{title}</p><p className="mt-1 text-xs leading-relaxed text-[#657067] dark:text-[#95a498]">{description}</p></div>
</li>)}
</ul>
<div className="mt-9">
{guest ? <Link href="/billing" className="flex min-h-13 w-full items-center justify-center gap-2 rounded-xl bg-[#264e37] px-5 py-3.5 text-sm font-semibold text-[#fff] hover:bg-[#1f402d]">View your shared membership <ArrowRight size={17} /></Link> :
<button type="button" onClick={() => void startMembership()} disabled={busy || loading} className="flex min-h-13 w-full items-center justify-center gap-2 rounded-xl bg-[#264e37] px-5 py-3.5 text-sm font-semibold text-[#fff] transition-colors hover:bg-[#1f402d] focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#264e37] disabled:cursor-wait disabled:opacity-60">
{guest ? <Link href="/billing" className="flex min-h-13 w-full items-center justify-center gap-2 rounded-xl bg-[#264e37] dark:bg-[#2f5e43] px-5 py-3.5 text-sm font-semibold text-[#fff] hover:bg-[#1f402d] dark:hover:bg-[#386e4f] transition-colors">View your shared membership <ArrowRight size={17} /></Link> :
<button type="button" onClick={() => void startMembership()} disabled={busy || loading} className="flex min-h-13 w-full items-center justify-center gap-2 rounded-xl bg-[#264e37] dark:bg-[#2f5e43] px-5 py-3.5 text-sm font-semibold text-[#fff] transition-colors hover:bg-[#1f402d] dark:hover:bg-[#386e4f] focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#264e37] disabled:cursor-wait disabled:opacity-60">
{busy ? 'Opening secure Checkout…' : 'Start your membership'}{!busy && <ArrowRight size={17} />}
</button>}
{error && <p role="alert" className="mt-3 rounded-lg border border-amber-200 bg-amber-50 p-3 text-xs leading-relaxed text-amber-900">{error}</p>}
<p className="mt-4 text-center text-xs text-[#657067]">Billed monthly. Cancel through your billing portal.</p>
<p className="mt-2 flex items-center justify-center gap-1.5 text-[11px] text-[#849087]"><LockKeyhole size={11} />Secure checkout with <span className="font-semibold text-[#59675f]">stripe</span></p>
{error && <p role="alert" className="mt-3 rounded-lg border border-amber-200 dark:border-amber-900/50 bg-amber-50 dark:bg-amber-950/40 p-3 text-xs leading-relaxed text-amber-900 dark:text-amber-200">{error}</p>}
<p className="mt-4 text-center text-xs text-[#657067] dark:text-[#95a498]">Billed monthly. Cancel through your billing portal.</p>
<p className="mt-2 flex items-center justify-center gap-1.5 text-[11px] text-[#849087] dark:text-[#7d8f80]"><LockKeyhole size={11} />Secure checkout with <span className="font-semibold text-[#59675f] dark:text-[#95a498]">stripe</span></p>
</div>
<div className="mt-7 border-t border-[#e7eae4] pt-5 text-center">
<p className="text-xs leading-relaxed text-[#657067]">Pay first. Then set up your account and invite your person.</p>
<p className="mt-2 text-[11px] text-[#849087]">$15 charged today. No free trial.</p>
<div className="mt-7 border-t border-[#e7eae4] dark:border-[#263129] pt-5 text-center">
<p className="text-xs leading-relaxed text-[#657067] dark:text-[#95a498]">Pay first. Then set up your account and invite your person.</p>
<p className="mt-2 text-[11px] text-[#849087] dark:text-[#7d8f80]">$15 charged today. No free trial.</p>
</div>
</section>
);
Expand Down
Loading
Loading