Summary
Navbar section links do not indicate which part of the page the user is viewing. A scroll-spy active state improves orientation on long landing pages.
What to build
- In
components/landing/landing-nav.tsx, track the visible section via IntersectionObserver or scroll position
- Highlight the active nav link (e.g.
text-white + underline, matching hover style)
- Update active state on scroll and when clicking anchor links
- Works on desktop nav; optional on mobile menu
Acceptance criteria
Files
How to contribute
- Comment before starting
- Fork → branch (
feat/nav-scroll-spy)
- Test at 375px and 1280px viewports
- PR with
Closes #14
Part of the GrantFox OSS program.
Summary
Navbar section links do not indicate which part of the page the user is viewing. A scroll-spy active state improves orientation on long landing pages.
What to build
components/landing/landing-nav.tsx, track the visible section viaIntersectionObserveror scroll positiontext-white+ underline, matching hover style)Acceptance criteria
prefers-reduced-motionif issue Respect prefers-reduced-motion on landing animations #12 is merged firstnpm run buildpassesFiles
components/landing/landing-nav.tsxlib/landing-nav.ts(if shared nav config from Sync navbar and footer links with all landing sections #11 exists)How to contribute
feat/nav-scroll-spy)Closes #14