Description
Below 640px, the header-only navigation forces an extra tap to reach common surfaces. Add a BottomNav for the top-level destinations with safe-area inset support on iOS.
Requirements and context
- Must be accessible (WCAG 2.1 AA), responsive, and documented in the design system
- Should be consistent with existing patterns and easy to review
- Relevant code:
src/app/components/dashboard-shell.tsx
- Active tab must be conveyed via
aria-current="page" and a visible indicator
Suggested execution
- Fork the repo and create a branch
git checkout -b uiux/mobile-bottom-nav
- Implement changes
- Add
BottomNav shown only below 640px
- Use
env(safe-area-inset-bottom) padding
- Ensure FAB and toasts do not overlap the bar
- Validate accessibility and responsive assumptions
Test and commit
- Run checks
npm run lint and component/visual tests
- Cover edge cases
- Responsive breakpoints, empty/loading/error states, keyboard/screen-reader, contrast, dark mode
- Include screenshots/before-after and accessibility (axe) notes
Example commit message
design: add mobile bottom navigation pattern
Guidelines
- Minimum 95 percent test coverage
- Clear documentation
- Timeframe: 96 hours
Description
Below 640px, the header-only navigation forces an extra tap to reach common surfaces. Add a
BottomNavfor the top-level destinations with safe-area inset support on iOS.Requirements and context
src/app/components/dashboard-shell.tsxaria-current="page"and a visible indicatorSuggested execution
git checkout -b uiux/mobile-bottom-navBottomNavshown only below 640pxenv(safe-area-inset-bottom)paddingTest and commit
npm run lintand component/visual testsExample commit message
design: add mobile bottom navigation patternGuidelines