1.1 KiB
1.1 KiB
F-159 — Diseño
Arquitectura
El estado vive en DashboardShell, única composición del layout autenticado:
desktopCollapsed: preferencia persistida enlocalStoragebajomdv.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 asticky, siempre visible, ancho 240px/80px según preferencia.- Etiquetas usan
lg:hiddensolo durante collapse, por lo que el drawer móvil siempre conserva texto. - Backdrop solo se renderiza con drawer abierto.
Accesibilidad
- Toggle es
<button>nativo conaria-expanded,aria-controlsy etiqueta dinámica. - Escape cierra drawer.
- Drawer móvil cerrado usa
invisiblepara excluir enlaces del foco. - Enlaces tienen
aria-label; modo icon-only añadetitle.
Transiciones
transition-[width,transform] duration-300 ease-in-out, respetando las utilidades existentes de Tailwind.