diff --git a/memento-note/app/(main)/insights/page.tsx b/memento-note/app/(main)/insights/page.tsx index 6c2ebeb..db68069 100644 --- a/memento-note/app/(main)/insights/page.tsx +++ b/memento-note/app/(main)/insights/page.tsx @@ -28,6 +28,7 @@ import Link from 'next/link' import { getNoteById } from '@/app/actions/notes' import type { Note as NoteFull } from '@/lib/types' import { X, Maximize2 } from 'lucide-react' +import DOMPurify from 'dompurify' const NetworkGraph = dynamic( () => import('@/components/network-graph').then(m => ({ default: m.NetworkGraph })), @@ -934,7 +935,7 @@ export default function InsightsPage() {
) : (—
diff --git a/memento-note/app/globals.css b/memento-note/app/globals.css index 981d8ff..826483d 100644 --- a/memento-note/app/globals.css +++ b/memento-note/app/globals.css @@ -6,6 +6,25 @@ @custom-variant dark (&:is(.dark *)); +/* ── Global UX fixes (UI/UX Pro Max audit) ────────────────────────────── */ + +/* CRITICAL: prefers-reduced-motion — désactive toutes les animations */ +@media (prefers-reduced-motion: reduce) { + *, *::before, *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +} + +/* CRITICAL: focus-visible ring global sur tous les éléments interactifs */ +:focus-visible { + outline: 2px solid var(--color-brand-accent); + outline-offset: 2px; + border-radius: 4px; +} + /* Custom breakpoints for desktop design (matching code.html reference) */ @theme { /* Desktop breakpoints: 1024px (min), 1440px (large), 1920px (ultra-wide) */ diff --git a/memento-note/components/login-form.tsx b/memento-note/components/login-form.tsx index a389d74..4c835f6 100644 --- a/memento-note/components/login-form.tsx +++ b/memento-note/components/login-form.tsx @@ -86,7 +86,7 @@ export function LoginForm({