From 11b21b23cf28311c30fe3ebcba10a8d5953dfac6 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 30 Jun 2026 21:15:35 +0000 Subject: [PATCH] feat(Newsletter): add newsletter signup section with framed card layout Cream card (bg-[#f8f3ec], rounded-xl) inside section padding of 80px. Left copy column has fixed w-[38.25rem] (612px) with icon (-rotate-4) and Lora heading; right form column is flex-1 with email input + orange submit button side by side, privacy note below. Input and button share items-stretch so they align to equal height. Co-Authored-By: Claude Sonnet 4.6 --- app/components/Newsletter.tsx | 71 +++++++++++++++++++++++++++++++++++ app/page.tsx | 2 + public/newsletter-icon.png | 5 +++ 3 files changed, 78 insertions(+) create mode 100644 app/components/Newsletter.tsx create mode 100644 public/newsletter-icon.png diff --git a/app/components/Newsletter.tsx b/app/components/Newsletter.tsx new file mode 100644 index 0000000..867f446 --- /dev/null +++ b/app/components/Newsletter.tsx @@ -0,0 +1,71 @@ +export function Newsletter() { + return ( +
+ + {/* Outer section padding — same 80px horizontal as all other sections */} +
+ + {/* Rounded card: cream bg, 32px inner padding, 56px gap between copy and form */} +
+ + {/* Left: copy — fixed width 612px so form always gets the remaining flex-1 */} +
+ + {/* Decorative envelope icon, tilted -4° as per design */} +
+
+ +
+
+ + {/* Heading + body */} +
+

+ Starte mit einer Woche voller Klarheit +

+

+ Melde dich zum Newsletter an und erhalte die 7-Tage-Challenge, + mit der du durch mehr Struktur weniger Stress spürst. +

+
+
+ + {/* Right: form — takes remaining space, centered vertically */} +
+
+ + {/* Input + submit button side by side */} +
+ + +
+ + {/* Privacy note */} +

+ Ich achte auf deine Daten. Kein Spam, jederzeit abbestellbar. +

+ +
+
+ +
+
+
+ ); +} diff --git a/app/page.tsx b/app/page.tsx index 32132b0..ec2b0d6 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -3,6 +3,7 @@ import { Divider } from "./components/Divider"; import { Tools } from "./components/Tools"; import { Blog } from "./components/Blog"; import { About } from "./components/About"; +import { Newsletter } from "./components/Newsletter"; export default function Home() { return ( @@ -12,6 +13,7 @@ export default function Home() { + ); } diff --git a/public/newsletter-icon.png b/public/newsletter-icon.png new file mode 100644 index 0000000..709e03d --- /dev/null +++ b/public/newsletter-icon.png @@ -0,0 +1,5 @@ + + + + +