# Mobile Wave 1 Design **Date:** 2026-03-15 **Goal:** Make the product usable for full day-to-day work on phones across wave 1 scope: app shell, login, and the full orders workspace. ## Context - The product currently uses desktop-first layouts with dense grids, side navigation, wide tables, and multi-column work areas. - Recent orders work added a richer kanban, role-aware filters, and responsibility coloring, but many of those interactions still assume desktop space. - Phone usage is now a first-class requirement, not a reduced read-only mode. - Wave 1 is intentionally limited to: - app shell and navigation - login - orders workspace: registry, kanban, calendar, order detail, order editor, and filtering ## Decision Implement a dual-presentation responsive architecture: - keep existing business logic, routing, and data hooks - preserve desktop-oriented layouts on larger breakpoints - introduce mobile-specific representations for wave 1 screens where the workflow materially differs on phones This avoids rewriting the app while still allowing a truly workable mobile UX. ## Architecture ### Responsive shell `AppShell` becomes two navigation systems: - desktop/tablet sidebar from `xl` - mobile shell below `xl` with: - compact top header - section title and context - bottom navigation for primary sections The mobile shell must keep sign-out and theme switching reachable without consuming permanent sidebar space. ### Orders workspace as mobile-first operations surface The orders area becomes the center of wave 1 mobile work: - registry turns into a stacked card list on phones - kanban keeps column logic but becomes horizontally scrollable with fixed-width columns - calendar uses a mobile agenda/list view instead of defaulting to a seven-column grid - order detail opens as a full-screen mobile workspace - order editing becomes a single-column form with sticky actions The data model stays shared; only presentation changes by breakpoint. ### Modal strategy Phone interaction must not rely on floating desktop dialogs. For wave 1: - modals used for order detail or order creation should become full-screen overlays on mobile - filter-heavy interfaces should use bottom sheets or mobile overlays rather than showing all controls inline ### Status management on mobile Phone UX must not depend on drag-and-drop as the only operational path. - kanban may still support drag on devices where it works - status changes must always be available through explicit controls inside order detail - dense tables or hover-only affordances are out of scope for phone UX ## UX Behavior ### Login - single-column, narrow max width - large controls and clear primary CTA - no wasted side padding on small screens - OTP step remains inside the same focused mobile card ### App shell - top area shows current section, user role, and quick utility actions - bottom nav surfaces primary destinations - content padding is reduced on phones to maximize usable area ### Orders registry - desktop table stays for larger screens - mobile list cards show: - order number - customer - exact status - responsibility/department hint - updated time - short summary - tapping a card opens the order workspace ### Orders filters - phones show a compact search bar and a dedicated `Фильтры` entry point - advanced filters open in a mobile overlay/sheet - active filters are shown as removable chips under search ### Orders kanban - horizontal scroll is mandatory on phones - columns have fixed minimum width - controls stack vertically above the board - department filter and view-mode switch remain available on mobile - completed column stays available as a valid target in stage mode ### Orders calendar - mobile default is an agenda/day-grouped list - desktop calendar grid remains for larger breakpoints - month navigation stays, but the actual content favors readable daily lists on phones ### Order detail - mobile uses a single-column full-screen view - sections become stacked and optionally collapsible - status action area is placed near the top - notes/history/chat remain accessible without crowding the initial viewport ### Order editor - single-column form - grouped logical sections - sticky footer action bar for save/create - no two-column field layout on phones ## File Responsibilities - `src/layouts/AppShell.jsx` — responsive shell split between desktop sidebar and mobile header/bottom nav - `src/pages/LoginPage.jsx` and auth components — mobile-focused login spacing and flow - `src/pages/DashboardPage.jsx` — mobile orchestration across orders views and modal/full-screen behavior - `src/components/orders/OrdersTable.jsx` — desktop table + mobile card list - `src/components/orders/OrdersCalendarView.jsx` — desktop month grid + mobile agenda view - `src/components/orders/OrdersKanbanBoard.jsx` — horizontal mobile board and stacked toolbar - `src/components/orders/OrderFilters.jsx` — compact mobile filters and active filter chips - `src/components/orders/OrderDetailPanel.jsx` — mobile single-column detail layout - `src/components/orders/OrderEditorPanel.jsx` — mobile form and sticky action bar - `src/components/UI/Modal.jsx` — responsive behavior for full-screen mobile overlays if needed ## Testing Strategy - add focused component tests for new mobile-specific render paths where practical - verify responsive branch rendering with server-side markup tests for compact layouts - run existing order-related tests to catch workflow regressions - manually verify at narrow viewport widths: - login - mobile shell navigation - registry card list - kanban horizontal scroll - calendar agenda view - order detail usability - order editor sticky action area ## Out Of Scope - wave 2 mobile work for driver/logistics/production dedicated screens - wave 3 mobile work for admin and reference-heavy screens - offline-first mobile behavior changes beyond current app capabilities