Skip to content

Add accessible mobile navigation sidecar#56

Merged
OwenMcGirr merged 1 commit into
mainfrom
feature/mobile-navigation-sidecar-55
Jul 22, 2026
Merged

Add accessible mobile navigation sidecar#56
OwenMcGirr merged 1 commit into
mainfrom
feature/mobile-navigation-sidecar-55

Conversation

@OwenMcGirr

Copy link
Copy Markdown
Collaborator

Summary

  • replace the wrapping mobile header navigation with an inline-end modal sidecar at widths up to 800px
  • use native <dialog> behavior for modality, focus containment, Escape handling, and inert background content
  • animate the panel with Motion while respecting reduced-motion preferences and logical RTL direction
  • preserve desktop navigation and keep Clerk's portalled account control in the compact header
  • cover signed-in, signed-out, loading, unconfigured, navigation, dismissal, breakpoint, scroll-lock, and accessibility behavior

Test plan

  • pnpm --filter @opensymbols/site test -- src/components/layout.test.tsx
  • pnpm typecheck
  • pnpm lint (passes with 3 pre-existing Fast Refresh warnings)
  • pnpm test
  • pnpm build
  • docker compose config --quiet
  • git diff --check
  • manually exercised 320px, 390px, and 801px viewports, initial focus, Escape, route dismissal, live breakpoint changes, reduced motion, scroll restoration, and horizontal reflow

Bundle impact

Motion is loaded through LazyMotion and m, avoiding Vite's 500 kB chunk warning. The site bundle changes from 406.17 kB / 121.18 kB gzip to 484.38 kB / 148.34 kB gzip: +78.21 kB minified / +27.16 kB gzip.

Scope and risk

Closes #55

@OwenMcGirr
OwenMcGirr merged commit 95514b2 into main Jul 22, 2026
@OwenMcGirr
OwenMcGirr deleted the feature/mobile-navigation-sidecar-55 branch July 22, 2026 15:52
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.

Add accessible mobile navigation sidecar

1 participant