From 2505a87717703bde38847217b15436611790fe0b Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 30 Jun 2026 22:04:23 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20full=20responsive=20layout=20=E2=80=94?= =?UTF-8?q?=20mobile-first,=20lg=20breakpoint,=20fluid=20typography?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Strategy: one layout breakpoint at lg (1024px), clamp() for fluid type. Navbar: hamburger menu (animated ✕) with max-h dropdown, resize-close, h-20 mobile / h-[6.25rem] desktop, blur triggers on scroll or menu-open. Hero: flex-col→lg:flex-row, clamp(2rem,5vw,4rem) heading, background-image scales responsively, gradient mask via .hero-mask only at lg+ in CSS. Divider: flex-wrap + gap-y for smaller screens. Tools: grid-cols-1→md:2→lg:3, removed fixed height and per-card paddingRight. Blog: featured flex-col→lg:flex-row, secondary flex-col→md:flex-row, excerpt hidden on mobile secondary cards to save space. About: flex-col→lg:flex-row, clamp on quote size, min-h-[18rem] for photo. Newsletter: flex-col→lg:flex-row, input+button stack on xs / row on sm+. Footer: flex-col→lg:flex-row, flex-wrap on legal links. globals.css: scroll-padding-top 5rem mobile / 6.25rem desktop. Co-Authored-By: Claude Sonnet 4.6 --- app/components/About.tsx | 31 +++++---- app/components/Blog.tsx | 49 +++++++------- app/components/Divider.tsx | 4 +- app/components/Footer.tsx | 20 +++--- app/components/Hero.tsx | 53 ++++++--------- app/components/Navbar.tsx | 120 ++++++++++++++++++++++++++-------- app/components/Newsletter.tsx | 47 +++++-------- app/components/Tools.tsx | 43 +++++------- app/globals.css | 27 +++++++- 9 files changed, 222 insertions(+), 172 deletions(-) diff --git a/app/components/About.tsx b/app/components/About.tsx index a2c1ca6..0576f22 100644 --- a/app/components/About.tsx +++ b/app/components/About.tsx @@ -1,32 +1,31 @@ export function About() { return ( -
+
- {/* Left: text content — flex-[1_0_0] = flex: 1 0 0, no shrink, exactly 50% */} -
+ {/* Left: text content */} +
- {/* Large serif statement — width-constrained as per design */} + {/* Large serif statement */}

Ich glaube nicht, dass Menschen mehr Disziplin brauchen.

{/* Quote row: script quote + golden divider + author bio */} -
+
- {/* Caveat script text with signature positioned below */} + {/* Caveat script text with signature */}

Ich glaube,

sie brauchen 

weniger Reibung.

- {/* Signature — absolute, sits just below the three Caveat lines (3 × 32px = 96px) */}
- {/* Golden vertical divider + author lines */} -
+ {/* Golden divider + author */} +

Björn.

Führungskraft.

@@ -57,8 +56,8 @@ export function About() {
- {/* Right: author photo — flex-[1_0_0] keeps it at exactly 50% */} -
+ {/* Right: author photo */} +
Björn +
{/* Section header */} -
+

Neue Impulse

Gedanken, Methoden & Impulse

{/* Posts grid */} -
+
- {/* Featured post — thumbnail flush left, card clips with overflow-hidden */} -
-
+ {/* Featured post: stacked on mobile, side-by-side on lg+ */} +
+
-
+
-
+
{featured.category} {featured.readTime}
-
+

{featured.title}

@@ -81,22 +81,21 @@ export function Blog() {
→ Zum Beitrag
- {/* Secondary posts — thumbnail with own rounded-xl, card py-2 only */} -
+ {/* Secondary posts: 1-col mobile → 2-col md+ */} +
{secondary.map((post) => (
- {/* Thumbnail: own border-radius so it sits neatly inside the padded card */} -
+
-
-
+
+
{post.category} {post.readTime}
-
+

{post.title}

-

+

{post.excerpt}

→ Zum Beitrag diff --git a/app/components/Divider.tsx b/app/components/Divider.tsx index 2f7db5e..249cb5a 100644 --- a/app/components/Divider.tsx +++ b/app/components/Divider.tsx @@ -1,7 +1,7 @@ export function Divider() { return ( -
-
+
+

+