project-bifrost-platform/tests
Jonathan Hvid c0592f7ca5 fix(route): cards grow toward centreline — fixes top/bottom clipping at the source
The actual cause of the persistent top/bottom card clipping wasn't the
track height or the padding — it's that the CSS spec forces
overflow-y: visible to compute as auto whenever overflow-x is auto.
Browsers clip the scroll container on both axes regardless of how we
declare overflow-y. Every previous fix was band-aiding the same
underlying problem.

Geometric fix: flip cardSide so cards hang toward the centreline
instead of away from it.

  - i=0 (dot on centreline)         → card below (default, no clip risk)
  - i=1 (dot above-centre, odd)     → card below (grows toward midY)
  - i=2 (dot below-centre, even >0) → card above (grows toward midY)
  - …alternating thereafter

Cards now always grow into the track, never out of it. Both axes are
naturally bounded by the track's height. Hover-expanded cards stay
inside the scroll container's clip box, so the browser-forced clipping
has nothing to remove.

Tests updated to expect the new pattern. The 7-item case carries an
extra spot-check that every card's side is opposite to its dot's
offset from the centreline — i.e. the geometric invariant the fix
relies on.

Visual rhythm: cards still alternate above/below as the path swings
up and down; the wave reads the same. What changes is which milestones
have cards above vs below — and only at the visual top of the page
where it improves things by stopping the clipping.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 14:43:41 +02:00
..
dispatches.test.ts feat(component): DispatchesSection + reusable Avatar + tests 2026-05-11 15:57:52 +02:00
focus-tags.test.ts feat(db): dispatches + member-number allocation + focus-tags parser 2026-05-11 15:55:35 +02:00
home-route.test.ts test: vitest suite — pulse status, vote uniqueness, home route 2026-05-11 14:45:55 +02:00
member-number.test.ts feat(db): dispatches + member-number allocation + focus-tags parser 2026-05-11 15:55:35 +02:00
pulse-status.test.ts test: vitest suite — pulse status, vote uniqueness, home route 2026-05-11 14:45:55 +02:00
roadmap-layout.test.ts fix(route): cards grow toward centreline — fixes top/bottom clipping at the source 2026-05-12 14:43:41 +02:00
setup.ts test: vitest suite — pulse status, vote uniqueness, home route 2026-05-11 14:45:55 +02:00
tenure-milestone.test.ts feat(pulse): two-column greeting + tenure-milestone copy 2026-05-12 10:48:50 +02:00
vote-count.test.ts feat(pulse): nav restructure, white surfaces, membership card, dispatches 2026-05-11 16:02:46 +02:00
votes.test.ts test: vitest suite — pulse status, vote uniqueness, home route 2026-05-11 14:45:55 +02:00