From acbb722a0ab38f7a940884dd750ba125e7c84de3 Mon Sep 17 00:00:00 2001 From: Jonathan Hvid Date: Tue, 12 May 2026 15:17:26 +0200 Subject: [PATCH] =?UTF-8?q?feat(route):=20single=20right-edge=20advance=20?= =?UTF-8?q?arrow=20=E2=80=94=20forward-only=20affordance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the prev/next button pair removed last commit with a single viewport-anchored circular control. - 48px diameter, 1px terracotta border, terracotta chevron on cream. - Hover / focus-visible fills to terracotta with cream chevron and a 1.06× scale-up. - Anchored absolute inside .rr-wrap (already position: relative): right: 32px / top: 50% / translateY(-50%). - Toggles .rr-at-end (opacity 0.25, pointer-events: none) when the scroll container reaches its right edge. - First-load hint: .rr-hint class added 100ms after mount fires a rr-advance-pulse keyframe three times (iteration-count: 3) — soft 8px shadow ring in 15% terracotta pulses out and back. Animation stops naturally; no JS cleanup needed. No left arrow on purpose — the path reads past → future, and the user's instinct at any milestone is 'what's next?' The right arrow earns its keep by hinting the existence of more track beyond the visible window. A symmetric left arrow would just be noise. Click handler today: scrollBy({behavior: 'smooth'}) by 60% of viewport width. Step 4 replaces this with a custom-animated glide and adds the drag + wheel scroll modalities. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/components/RoadmapRoute.astro | 74 ++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/src/components/RoadmapRoute.astro b/src/components/RoadmapRoute.astro index 493d452..a3ae81f 100644 --- a/src/components/RoadmapRoute.astro +++ b/src/components/RoadmapRoute.astro @@ -107,6 +107,21 @@ const initialShippingX = lastShippingIndex >= 0 ? layout.itemX[lastShippingIndex + + +