UI: navegación SPA, tabs sin bordes, patrón de fondo fijo

- ClientRouter (view transitions) para navegación sin recarga entera;
  Toaster y BadgeSolicitudes marcados con transition:persist para no
  rearmar la suscripción realtime en cada nav.
- Overlay de carga ahora activa a los 250ms del swap (evita parpadeo).
- Tabs de subnav (inventario/categorías/maestros, solicitudes, reportes)
  reescritos: sin border-b-2 ni underline verde; activo usa bg-linen
  como el sidebar. Coherente y sin patrón AI-slop.
- Marco horizontal debajo de todos los tab strips removido.
- Patrón de puntos verde del canvas ahora con background-attachment:
  fixed — estático en scroll.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014xaxs8cGcQe9NwbMqA1gvn
This commit is contained in:
2026-09-21 14:52:56 -07:00
parent ac3e7061ac
commit 7bab90b408
10 changed files with 53 additions and 49 deletions
+3 -3
View File
@@ -36,15 +36,15 @@ const tabs = [
</div>
</header>
<nav aria-label="Vistas de solicitudes" class="mb-6 border-b border-hairline-gray flex gap-2 overflow-x-auto">
<nav aria-label="Vistas de solicitudes" class="mb-6 flex gap-2 overflow-x-auto">
{tabs.map((t) => {
const active = path === t.href || (t.href === '/admin/solicitudes' && path === '/admin/solicitudes/');
return (
<a
href={t.href}
class:list={[
'px-4 py-2 text-sm font-medium whitespace-nowrap transition-colors border-b -mb-px',
active ? 'border-verde-institucional text-verde-institucional' : 'border-transparent text-graphite/70 hover:text-verde-institucional'
'px-4 py-2 text-sm font-medium whitespace-nowrap transition-colors rounded-[8px]',
active ? 'bg-linen text-verde-institucional' : 'text-graphite/70 hover:bg-linen hover:text-verde-institucional'
]}
aria-current={active ? 'page' : undefined}
>