Council section gets a proper carousel — a horizontal marquee that moves continuously across the page, listing every cab member in turn rather than a fixed-size grid. Implementation: - Members rendered twice in a single flex track; CSS keyframe translates from translateX(0) to translateX(-50%) over 40s+ (duration scales with member count via the --marquee-duration inline custom prop, capped at 6 sec per member or 28 sec minimum). At -50% the first copy is fully offscreen and the second copy occupies the visible window seamlessly; the loop resets without a visible jump. - aria-hidden on the duplicated copies so screen readers don't double- announce. - mask-image fades both edges so members slide in and out softly rather than clipping at the container edge. - Paused on hover so a reader can stop and parse a tile. - prefers-reduced-motion: animation off and the strip becomes a quietly scrollable horizontal list — keyboard / trackpad users can pan manually instead of relying on the animation. Seed adds 3 more cab members for a total of 7 (Mads Lindberg, Camilla Storm, Frederik Lund) with backdated cab_joined_date so member_numbers allocate 5/6/7. Each gets title + pull_quote + focus_tags consistent with the existing four. Tenure spread is now 3 → 24 weeks across the seven members so /members renders meaningfully varied 'member since' dates. The previous 4-tile grid + 5th-tile-as-link case is gone; the marquee loops the full set so no truncation is needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| migrate.js | ||
| seed-demo.js | ||
| seed-roadmap.js | ||
| seed.js | ||