Skip to content

feat: scroll-driven motion and flight globe intro - #12

Merged
dommango merged 2 commits into
mainfrom
feat/scroll-motion
Oct 19, 2026
Merged

dommango merged 2 commits into
mainfrom
feat/scroll-motion

Conversation

@dommango

Copy link
Copy Markdown
Owner

Summary

  • Five landing motions: BinaryRule wipe, top-of-window progress rule, resume timeline spine (scroll-driven CSS); project card stamp-in and continent bars with ticking counts (one-shot via IntersectionObserver).
  • Flight globe intro: routes trace in with a capped stagger, airports pop, globe drifts into place. Any drag or key press cancels the spin.
  • Continent bars now use transform: scaleX, so the year scrubber eases too.

Constraints honored

  • Everything is gated to prefers-reduced-motion: no-preference (scroll timelines ignore the duration-shrinking rule, so they are opted out explicitly).
  • Scroll timelines sit behind @supports; unsupported browsers show the final state. Hidden start states apply only when scripting is on.
  • Hero is not animated. Intro classes drop after playing, so routes rotating into view later render solid.

Test plan

  • npx tsc --noEmit, npx eslint components, npm test -- --run (44 pass), npm run build
  • Eyeball in a browser: scroll through every section, drag the globe mid-intro, toggle reduced motion in OS settings
  • Check Firefox (scroll-driven CSS may fall back to final state)

Not verified visually by the author: headless Chrome would not attach during development.

🤖 Generated with Claude Code

dommango and others added 2 commits October 19, 2026 14:29
BinaryRule wipes in with scroll, a top progress rule tracks the page, the
resume timeline spine draws, project cards stamp in, and continent bars fill
with ticking counts. All gated to prefers-reduced-motion: no-preference, with
scroll timelines behind @supports so unsupported browsers show final state.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Routes trace origin to destination with a capped stagger, airports pop in
after, and the globe drifts into place. Intro classes drop away afterwards so
routes rotating into view later render solid, and any drag or key press cancels
the spin. Reduced motion skips all of it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@dommango
dommango merged commit ca5a3b7 into main Oct 19, 2026
1 check passed
@dommango
dommango deleted the feat/scroll-motion branch October 19, 2026 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant