diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 36bd4fe..60b962a 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -9,7 +9,8 @@ "Bash(node:*)", "Bash(curl:*)", "Bash(npx tsc:*)", - "Bash(npm list:*)" + "Bash(npm list:*)", + "Bash(npx jest:*)" ] } } diff --git a/prisma/dev.db b/prisma/dev.db index 72ed8e4..895c40a 100644 Binary files a/prisma/dev.db and b/prisma/dev.db differ diff --git a/resumen/2026-03-22-resumen.md b/resumen/2026-03-22-1229-resumen.md similarity index 100% rename from resumen/2026-03-22-resumen.md rename to resumen/2026-03-22-1229-resumen.md diff --git a/resumen/2026-03-22-1652-resumen.md b/resumen/2026-03-22-1652-resumen.md index 89858bc..16ca4df 100644 --- a/resumen/2026-03-22-1652-resumen.md +++ b/resumen/2026-03-22-1652-resumen.md @@ -148,6 +148,11 @@ model Backlink { - Registro de origen de creación (form/quick/import) - Feature flags configurables +### Mejoras UI Recientes +- Header responsive con menú hamburguesa en móvil +- Desktop: una fila con logo, nav links, QuickAdd y botón Nueva nota +- Mobile: logo + QuickAdd + hamburguesa → dropdown con nav links y botón Nueva nota + ## Algoritmo de Scoring ```typescript diff --git a/src/components/header.tsx b/src/components/header.tsx index 1eb6384..5560f8a 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -1,18 +1,21 @@ 'use client' +import { useState } from 'react' import Link from 'next/link' import { usePathname } from 'next/navigation' import { Button } from '@/components/ui/button' -import { Plus, FileText, Settings } from 'lucide-react' +import { Plus, FileText, Settings, Menu, X } from 'lucide-react' import { QuickAdd } from '@/components/quick-add' export function Header() { const pathname = usePathname() + const [mobileMenuOpen, setMobileMenuOpen] = useState(false) return (
-
-
+
+ {/* Desktop: single row */} +
Recall @@ -38,16 +41,74 @@ export function Header() { +
+ + + + +
-
- - - + + {/* Mobile: hamburger + logo */} +
+ + Recall +
+ + +
+ + {/* Mobile dropdown menu */} + {mobileMenuOpen && ( +
+ +
+ setMobileMenuOpen(false)}> + + +
+
+ )}
) diff --git a/src/components/quick-add.tsx b/src/components/quick-add.tsx index 12902ce..6c248ee 100644 --- a/src/components/quick-add.tsx +++ b/src/components/quick-add.tsx @@ -188,8 +188,8 @@ export function QuickAdd() { onFocus={() => setIsExpanded(true)} onPaste={handlePaste} className={cn( - 'w-48 transition-all duration-200', - isExpanded && 'w-72' + 'w-24 xs:w-32 sm:w-48 transition-all duration-200', + isExpanded && 'w-40 xs:w-48 sm:w-72' )} disabled={isLoading} /> @@ -202,29 +202,29 @@ export function QuickAdd() { type="button" onClick={toggleMultiline} className={cn( - 'inline-flex items-center justify-center rounded-lg border bg-background p-2', + 'inline-flex items-center justify-center rounded-lg border bg-background p-1.5 sm:p-2', 'hover:bg-accent hover:text-accent-foreground', 'transition-colors', isMultiline && 'bg-accent text-accent-foreground' )} title={isMultiline ? 'Modo línea' : 'Modo multilínea'} > - +