From a0a096c8412ad6b7ad5b0aad136e75b740f7a143 Mon Sep 17 00:00:00 2001 From: wanli132650 <84144389+wanli132650@users.noreply.github.com> Date: Wed, 22 Jul 2026 19:29:42 +0800 Subject: [PATCH] feat: make landing page fully responsive for mobile devices - Add hamburger menu for mobile nav - Reduce padding on small screens - Make tools grid single column on mobile - Make steps section icons responsive - Fix CTA section sizing on mobile - Improve footer mobile layout Fixes #3 --- frontend/src/pages/LandingPage.tsx | 110 +++++++++++++++++++---------- 1 file changed, 74 insertions(+), 36 deletions(-) diff --git a/frontend/src/pages/LandingPage.tsx b/frontend/src/pages/LandingPage.tsx index baede37..fe3537f 100644 --- a/frontend/src/pages/LandingPage.tsx +++ b/frontend/src/pages/LandingPage.tsx @@ -1,3 +1,4 @@ +import { useState } from 'react' import { Link } from 'react-router-dom' import { Scissors, @@ -14,6 +15,8 @@ import { Gem, Pen, FileOutput, + Menu, + X, } from 'lucide-react' const tools = [ @@ -34,6 +37,8 @@ const steps = [ ] export default function LandingPage() { + const [mobileMenuOpen, setMobileMenuOpen] = useState(false) + return (
{/* ── CSS ─────────────────────────────────────────────── */} @@ -142,7 +147,7 @@ export default function LandingPage() { {/* ── Nav ────────────────────────────────────────────── */} {/* ── Hero ───────────────────────────────────────────── */} -
+
{/* Text column */}

+ text-[clamp(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.

-
+
Sign in to workspace @@ -216,13 +253,13 @@ export default function LandingPage() { {/* ── Tools grid ─────────────────────────────────────── */}
-
+
{/* Section header */} -
+

Toolkit

-

Everything in
one workspace

@@ -232,19 +269,19 @@ export default function LandingPage() {
{/* Grid */} -
+
{tools.map((t) => ( -
-
+
-

+

{t.name}

-

+

{t.desc}

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

How it works

-

Three steps, that's it

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

Step {s.num}

-

+

{s.title}

-

+

{s.body}

@@ -295,8 +332,8 @@ export default function LandingPage() { {/* Connector between steps */} {i < steps.length - 1 && ( -
-
+
+
@@ -309,7 +346,7 @@ export default function LandingPage() { {/* ── CTA ────────────────────────────────────────────── */}
-
+
{/* Soft top glow */}
@@ -317,14 +354,14 @@ export default function LandingPage() {

Free to use. No credit card required.

-

+

Start working with
your PDFs today.

or sign in @@ -342,7 +379,8 @@ export default function LandingPage() { {/* ── Footer ─────────────────────────────────────────── */}