project-bifrost-platform/scripts
Jonathan Hvid 39996ab93e feat(pulse): council marquee auto-scrolls all 7 members across the page
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>
2026-05-12 11:21:53 +02:00
..
migrate.js feat: database schema, migrations, and seed data 2026-04-18 22:43:16 +02:00
seed-demo.js feat(pulse): council marquee auto-scrolls all 7 members across the page 2026-05-12 11:21:53 +02:00
seed-roadmap.js feat(db): roadmap_items gains 'considering' + 'in_beta' rename, --on-ink tokens 2026-05-12 10:46:39 +02:00
seed.js chore(seed): fake email domains + extend wipe chain 2026-05-11 17:12:47 +02:00