feat(F-159): completed feature
This commit is contained in:
24
work/artifacts/F-159/architect.md
Normal file
24
work/artifacts/F-159/architect.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# F-159 — Diseño
|
||||
|
||||
## Arquitectura
|
||||
El estado vive en `DashboardShell`, única composición del layout autenticado:
|
||||
|
||||
- `desktopCollapsed`: preferencia persistida en `localStorage` bajo `mdv.admin.sidebar.collapsed`.
|
||||
- `mobileOpen`: estado efímero del drawer.
|
||||
|
||||
`Sidebar` y `NavItemRow` siguen consumiendo la misma lista `visibleNavItems(role)`. No se crean menús alternativos.
|
||||
|
||||
## Responsive
|
||||
- Sidebar base: drawer `fixed`, 240px y desplazado fuera de viewport cuando está cerrado.
|
||||
- `lg+`: pasa a `sticky`, siempre visible, ancho 240px/80px según preferencia.
|
||||
- Etiquetas usan `lg:hidden` solo durante collapse, por lo que el drawer móvil siempre conserva texto.
|
||||
- Backdrop solo se renderiza con drawer abierto.
|
||||
|
||||
## Accesibilidad
|
||||
- Toggle es `<button>` nativo con `aria-expanded`, `aria-controls` y etiqueta dinámica.
|
||||
- Escape cierra drawer.
|
||||
- Drawer móvil cerrado usa `invisible` para excluir enlaces del foco.
|
||||
- Enlaces tienen `aria-label`; modo icon-only añade `title`.
|
||||
|
||||
## Transiciones
|
||||
`transition-[width,transform] duration-300 ease-in-out`, respetando las utilidades existentes de Tailwind.
|
||||
Reference in New Issue
Block a user