From 82696cb259217abf3cd6ee2649f13298f7b6e1c6 Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 26 Aug 2026 21:26:46 +0000 Subject: [PATCH] Homepage blog teaser: make the whole card clickable, not just "Zum Beitrag" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The cards already had a hover-lift effect implying the whole thing was clickable, but only the small arrow line was an actual link — image and title had pointer-events-none/no href at all. The full /blog listing page already wraps its own cards in one Link; this brings the homepage teaser (Blog.tsx) in line with it. The former inner CTA Link is now a plain span using group-hover for its color change, since one can't nest another. --- app/components/Blog.tsx | 176 +++++++++++++++++++++------------------- 1 file changed, 93 insertions(+), 83 deletions(-) diff --git a/app/components/Blog.tsx b/app/components/Blog.tsx index b0e313d..28e032d 100644 --- a/app/components/Blog.tsx +++ b/app/components/Blog.tsx @@ -41,47 +41,58 @@ export async function Blog() { without it the card's height was purely driven by the text column's content, which stays short regardless of viewport width. */} - -
- {featured.thumbnail && ( - - )} -
-
-
-
- {featured.categories.join(", ")} - - {featured.readTime} Min -
-
-

- {featured.title} -

-

- {featured.excerpt} -

-
+ + {/* Whole card is the click target now (image + title + excerpt), + not just the "Zum Beitrag" line — the hover-lift below already + implied the whole card was clickable, so only the small arrow + actually working was a mismatch. `group` drives the arrow + row's hover color from anywhere on the card, not just when + hovering that row itself. */} + +
+ {featured.thumbnail && ( + + )}
- {/* flex + arrow as its own span — see Tools.tsx's comment on - this same fix (→'s glyph baseline sits low next to text). */} - - - Zum Beitrag - -
+
+
+
+ {featured.categories.join(", ")} + + {featured.readTime} Min +
+
+

+ {featured.title} +

+

+ {featured.excerpt} +

+
+
+ {/* flex + arrow as its own span — see Tools.tsx's comment on + this same fix (→'s glyph baseline sits low next to text). + Plain span now, not its own nested Link (the whole card + is one Link already) — group-hover keeps the color + change working from anywhere on the card. */} + + + Zum Beitrag + +
+ {/* Secondary posts — image on top through lg (1024px), side-by-side @@ -91,50 +102,49 @@ export async function Blog() { side — was sm:grid-cols-5, squeezing the text column. */}
{secondary.map((post) => ( - -
- {post.thumbnail && ( - - )} -
-
-
-
- {post.categories.join(", ")} - - {post.readTime} Min -
-
-

- {post.title} -

-

- {post.excerpt} -

-
+ + +
+ {post.thumbnail && ( + + )}
- {/* flex + arrow as its own span — see the featured post's - own Link above / Tools.tsx's comment on this same fix. */} - - - Zum Beitrag - -
+
+
+
+ {post.categories.join(", ")} + + {post.readTime} Min +
+
+

+ {post.title} +

+

+ {post.excerpt} +

+
+
+ {/* Plain span, not its own nested Link — see the featured + post's own comment above. */} + + + Zum Beitrag + +
+ ))}