diff --git a/app/blog/page.tsx b/app/blog/page.tsx
index 20e6279..1475650 100644
--- a/app/blog/page.tsx
+++ b/app/blog/page.tsx
@@ -66,6 +66,46 @@ export default async function BlogOverviewPage({
Gedanken, Methoden und Impulse für einen leichteren und klareren Alltag.
+ {/* Moved into the hero's own text column (was a separate full-
+ width bar below the entire hero, including the photo) — on
+ mobile especially (text stacks above the photo here), that
+ pushed the filters below a full extra screen's worth of
+ hero image before they were even visible. Living right
+ under the description keeps them in view immediately, on
+ every width, no scrolling past the photo needed. */}
+ {allCategories.length > 1 && (
+
@@ -74,58 +114,6 @@ export default async function BlogOverviewPage({
- {/* Plain div, not — this bar sits right at/just past the
- hero's bottom edge, exactly the "already near the initial
- viewport top" position Reveal.tsx's own comment documents as a
- whileInView(margin:"-80px") trap: the shrunk viewport can
- permanently miss triggering "entered view" for an element
- that's already visible without any further scroll, since
- `once: true` never gets a second chance. The Hero brand dot
- hit the identical bug and switched to a plain animate — this
- filter bar doesn't need a scroll-reveal animation at all, so
- it's simplest to just not wrap it in Reveal in the first place. */}
- {/* relative z-20 — the featured-post card right below pulls itself
- up by -mt-8 with its own z-10 to overlap the *hero's* bottom
- edge (its original, intended design). Inserting this filter
- bar between the hero and that card meant the same -mt-8 pull
- now overlapped THIS bar instead, and the card's higher/equal
- stacking rendered on top of it, visually hiding the chips
- behind the card. z-20 keeps this bar above that overlap
- regardless. */}
- {allCategories.length > 1 && (
-
Keine Beiträge in dieser Kategorie gefunden.
diff --git a/app/components/ArrowRightIcon.tsx b/app/components/ArrowRightIcon.tsx
index c506f3f..f827af5 100644
--- a/app/components/ArrowRightIcon.tsx
+++ b/app/components/ArrowRightIcon.tsx
@@ -8,10 +8,14 @@
// devices. An SVG has no font-fallback path — it renders identically
// everywhere. `currentColor` stroke follows the parent Link's own
// text/hover color, same as every other icon in this codebase.
+// Arrowhead wings are deliberately short relative to the shaft (4.2 units
+// vs. a 14-unit shaft) — the first version used full-length 45° wings
+// (7 units), which read as a generic, oversized chevron next to the small
+// bold label text it sits beside.
export function ArrowRightIcon() {
return (
);
}
diff --git a/app/components/SearchOverlay.tsx b/app/components/SearchOverlay.tsx
index 4543a2c..070f013 100644
--- a/app/components/SearchOverlay.tsx
+++ b/app/components/SearchOverlay.tsx
@@ -90,8 +90,14 @@ function SearchOverlay({ onClose }: { onClose: () => void }) {
placeholder="Produkte, Blogbeiträge…"
className="flex-1 min-w-0 bg-transparent outline-none text-h4 text-text-primary placeholder:text-text-muted"
/>
-