TorbatYar/frontend/docs/hospitality-responsive-report.md
Mortezakoohjani 065c053c16 Add complete Torbat Food hospitality frontend connected to backend APIs.
Introduces modules/hospitality with 54 routes, BFF proxy, capability-gated nav, CRUD factory, and architecture validation docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 20:54:26 +03:30

56 lines
1.8 KiB
Markdown

# Hospitality Responsive Report
**Date:** 2026-07-26
**Product:** Torbat Food
## Breakpoints strategy
Mobile-first Tailwind utilities aligned with shared DS:
| Breakpoint | Layout behavior |
|------------|-----------------|
| `< lg` | Hidden sidebar; hamburger opens full-height drawer |
| `≥ lg` | Fixed 256px sidebar (`w-64`), content flex-1 |
| `sm` | Dashboard stat grid 2 columns |
| `xl` | Dashboard stat grid 4 columns |
## Component responsiveness
| Component | Mobile | Tablet | Desktop |
|-----------|--------|--------|---------|
| `HospitalityPortalShell` | Drawer nav | Drawer nav | Persistent sidebar |
| `HospitalityTablePage` | Horizontal scroll via DataTable | Full width search | Search max-w-md |
| Dashboard StatCards | Stack 1→2 cols | 2 cols | 4 cols |
| Dialogs | Full-width modal (DS) | Centered | Centered |
| Hub card | max-w-lg centered | Same | Same |
## Touch targets
- Nav links: `py-2.5` (~40px+ height)
- Icon buttons: DS `size="icon"` minimum
- Mobile menu button in header
## Performance on mobile
- Route-level code splitting via Next.js dynamic imports (default App Router)
- TanStack Query `staleTime` on capabilities (60s) reduces refetch
- Paginated lists (20 items) limit DOM size
## RTL on small screens
- Mobile drawer anchors from right (`absolute right-0`)
- Search icon positioned for RTL input padding
## Testing checklist
- [ ] iPhone SE: open drawer, navigate to menu items
- [ ] iPad: sidebar visible at lg
- [ ] Desktop 1920px: dashboard 4-column stats
- [ ] Dark mode toggle on mobile header/footer
## Lighthouse notes
- Use real backend in dev for accurate TTFB
- Images in menu media use refs only (no binary in hospitality service)
- Minimize layout shift: LoadingState skeletons on route transitions