Moves phases 08–11 execution artifacts from .planning/phases/ to .planning/milestones/v0.2-phases/ to keep .planning/phases/ clean for the next milestone. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
phase, plan, type, wave, depends_on, requirements, files_modified, autonomous
| phase | plan | type | wave | depends_on | requirements | files_modified | autonomous | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 11-visual-design-responsive-layout-cleanup | 3 | execute | 2 |
|
|
|
true |
Plan 11-03 — Responsive Shells & Storage Rows
Objective
Make both user and admin layouts usable below lg, and make storage rows fit smaller viewports without losing core actions.
Tasks
- Use layout-local drawer refs, not a new Pinia store:
App.vueowns user drawer state.AdminLayout.vueowns admin drawer state.- Watch route changes in each layout root and close the drawer after navigation.
- Do not put drawer state in
AppSidebar.vueorAdminSidebar.vue.
- Add a mobile-only header with a hamburger button for the user layout.
- Hide
AppSidebarbelowlg; open it in a slide-in overlay drawer with backdrop tap, route-change close, andtranslate-x-0/-translate-x-fulltransition. - Apply the same responsive shell behavior to
AdminLayoutandAdminSidebar. - Update
StorageBrowserrow/grid classes so:- Size column hides below
md - Modified column hides below
sm - icon, name, and actions remain visible
- grid templates do not reserve hidden column widths on mobile
- Size column hides below
- Ensure inline icon action buttons have at least
36pxtouch targets belowmd. - Add or update tests for drawer open/close, route-change close, admin drawer behavior, responsive column classes, and touch target classes.
- Verify with browser screenshots or Playwright at 375px, 768px, 1024px, and desktop width.
Acceptance Criteria
- User sidebar is hidden below 1024px and accessible through a hamburger drawer.
- Admin sidebar has matching mobile behavior.
- Drawer closes on backdrop tap and navigation tap.
- Storage rows satisfy RESP-02 without horizontal overflow at 375px.
- Icon actions satisfy RESP-03.
- Drawer state is owned only by
App.vueandAdminLayout.vue. - Frontend tests and build pass.