From e8338eb8507c948acfccf96db83378e196386713 Mon Sep 17 00:00:00 2001 From: Timothy_Garcia Date: Wed, 5 Aug 2026 16:23:52 -0700 Subject: [PATCH] fix: make landing page fully responsive for mobile (#3) - Navigation: compact logo and buttons with proper touch-target sizing on mobile - Hero: column-stacked CTAs on mobile, responsive clamp() typography down to 320px - Tools grid: reduced padding and icon sizes for small screens - How it works: adjusted step spacing and text for mobile viewports - CTA section: full-width stacked buttons on mobile - Footer: center-aligned stacked layout on mobile - Prism: responsive sizing via CSS media queries - Added CSS media queries for sub-480px and sub-640px breakpoints - All sections use px-4 sm:px-6 for mobile-first padding Closes #3 --- frontend/src/pages/LandingPage.tsx | 135 +++++++++++++++++------------ 1 file changed, 78 insertions(+), 57 deletions(-) diff --git a/frontend/src/pages/LandingPage.tsx b/frontend/src/pages/LandingPage.tsx index baede37..8df9ac7 100644 --- a/frontend/src/pages/LandingPage.tsx +++ b/frontend/src/pages/LandingPage.tsx @@ -129,6 +129,27 @@ export default function LandingPage() { transparent 12px ); } + + /* ── Mobile responsiveness ─────────────────────────── */ + @media (max-width: 479px) { + .prism { + width: 240px; + height: 240px; + } + .prism::after { + inset: 21px; + } + } + + @media (max-width: 639px) { + .prism { + width: 280px; + height: 280px; + } + .prism::after { + inset: 24px; + } + } `} {/* ── Ambient glow ───────────────────────────────────── */} @@ -142,25 +163,25 @@ export default function LandingPage() { {/* ── Nav ────────────────────────────────────────────── */} {/* ── Hero ───────────────────────────────────────────── */} -
+
{/* Text column */}

+ text-[clamp(1.8rem,7vw,4.8rem)] sm:text-[clamp(2.2rem,5.5vw,4.8rem)] text-white anim-reveal"> Every
PDF tool
you'll ever{' '} need.

-

Merge, split, compress, protect, convert, and annotate — from one elegant workspace. No subscriptions, no upload limits.

-
+
- Start for free + hover:-translate-y-px active:translate-y-0 transition-all w-full sm:w-auto"> + Start for free + hover:bg-white/[.03] transition-all w-full sm:w-auto"> Sign in to workspace
@@ -216,35 +237,35 @@ export default function LandingPage() { {/* ── Tools grid ─────────────────────────────────────── */}
-
+
{/* Section header */} -
-

+

+

Toolkit

-

Everything in
one workspace

-

+

Every operation produces a new file — your originals stay untouched.

{/* Grid */} -
+
{tools.map((t) => ( -
-
+
-

+

{t.name}

-

+

{t.desc}

@@ -255,12 +276,12 @@ export default function LandingPage() { {/* ── How it works ───────────────────────────────────── */}
-
-
-

+

+
+

How it works

-

Three steps, that's it

@@ -270,24 +291,24 @@ export default function LandingPage() { {steps.map((s, i) => (
{/* Step row */} -
+
{/* Left: number + icon */}
-
- +
{/* Right: text */} -
-

+

+

Step {s.num}

-

+

{s.title}

-

+

{s.body}

@@ -295,9 +316,9 @@ export default function LandingPage() { {/* Connector between steps */} {i < steps.length - 1 && ( -
-
-
+
+
+
)} @@ -309,31 +330,31 @@ export default function LandingPage() { {/* ── CTA ────────────────────────────────────────────── */}
-
+
{/* Soft top glow */}
-

+

Free to use. No credit card required.

-

+

Start working with
your PDFs today.

-
+
- Create free account + hover:-translate-y-px transition-all w-full sm:w-auto"> + Create free account + className="inline-flex items-center justify-center gap-2 px-5 sm:px-7 py-3 sm:py-3.5 rounded-xl text-sm sm:text-[15px] font-medium + text-slate-400 hover:text-slate-200 transition-colors w-full sm:w-auto"> or sign in
@@ -342,11 +363,11 @@ export default function LandingPage() { {/* ── Footer ─────────────────────────────────────────── */}