# Proposition de Simplification du Design - Keep App **Date:** 2026-01-17 **Auteur:** Sally (UX Designer) **Status:** Proposition finale --- ## 🎯 Objectif Simplifier l'interface du NoteCard en réduisant le nombre de boutons visibles, tout en **PRÉSERVANT** tout le contenu existant. --- ## ✅ Ce qui NE CHANGE PAS ### 1. Avatar - **Position:** Bas à gauche (`bottom-2 left-2`) - **AUCUN CHANGEMENT** - **Taille:** 24x24px (w-6 h-6) - **AUCUN CHANGEMENT** - **Style:** Cercle avec initiales - **AUCUN CHANGEMENT** ### 2. Images - **Affichage:** Pleine largeur dans la note - **AUCUN CHANGEMENT** - **Visibilité:** Toujours visible - **AUCUN CHANGEMENT** - **Fonctionnalité:** Cliquable pour agrandir - **AUCUN CHANGEMENT** ### 3. Liens HTML - **Prévisualisation:** Complète avec image, titre, description, hostname - **AUCUN CHANGEMENT** - **Position:** Dans le contenu de la note - **AUCUN CHANGEMENT** - **Style:** Bordure, fond, hover - **AUCUN CHANGEMENT** ### 4. Labels - **Affichage:** Badges colorés - **AUCUN CHANGEMENT** - **Position:** Sous le contenu - **AUCUN CHANGEMENT** ### 5. Date - **Affichage:** "il y a X jours" - **AUCUN CHANGEMENT** - **Position:** Bas à droite - **AUCUN CHANGEMENT** ### 6. Badges Memory Echo - **Affichage:** En haut de la note - **AUCUN CHANGEMENT** - **Style:** Badges violets - **AUCUN CHANGEMENT** --- ## 🔄 Ce qui CHANGE ### Problème Actuel Le NoteCard affiche **5 boutons en haut** : 1. Drag handle (déplacer) 2. Move to notebook (déplacer vers un notebook) 3. Pin (épingler) 4. Reminder (rappel) 5. Connections (connexions) **Problème:** Ces 5 boutons encombrent l'interface et prennent de la place. ### Solution Proposée **Remplacer les 5 boutons par 1 seul menu "..."** qui contient toutes les actions. --- ## 📋 Détails de l'Implémentation ### Nouveau Composant : `NoteActionMenu` ```tsx // keep-notes/components/note-action-menu.tsx 'use client' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { MoreHorizontal, Pin, FolderOpen, Bell, Link2, Archive, Trash2, Share2, Palette } from 'lucide-react' import { Note } from '@/lib/types' interface NoteActionMenuProps { note: Note onTogglePin: () => void onMoveToNotebook: (notebookId: string | null) => void onSetReminder: () => void onShowConnections: () => void onArchive: () => void onDelete: () => void onShare: () => void onColorChange: (color: string) => void } export function NoteActionMenu({ note, onTogglePin, onMoveToNotebook, onSetReminder, onShowConnections, onArchive, onDelete, onShare, onColorChange, }: NoteActionMenuProps) { return ( {/* Pin / Unpin */} {note.isPinned ? 'Désépingler' : 'Épingler'} {/* Move to notebook */} onMoveToNotebook(null)}> Déplacer vers... {/* Reminder */} Rappel {/* Connections */} Connexions {/* Divider */}
{/* Color */} onColorChange('blue')}> Colorer {/* Share */} Partager {/* Archive */} Archiver {/* Delete */} Supprimer ) } ``` ### Modification du NoteCard **Avant (lignes 289-333):** ```tsx {/* Drag Handle - Only visible on mobile/touch devices */}
{/* Move to Notebook Dropdown Menu */}
e.stopPropagation()} className="absolute top-2 right-2 z-20"> ...
{/* Pin Button */} {/* Reminder Icon */} {note.reminder && ... && ( )} ``` **Après:** ```tsx {/* Drag Handle - Only visible on mobile/touch devices */}
{/* Action Menu - Remplace les 5 boutons */} {/* Ouvrir le dialog de rappel - à implémenter */}} onShowConnections={() => setShowConnectionsOverlay(true)} onArchive={handleToggleArchive} onDelete={handleDelete} onShare={() => setShowCollaboratorDialog(true)} onColorChange={handleColorChange} /> {/* Reminder Icon - Visible si rappel actif */} {note.reminder && new Date(note.reminder) > new Date() && ( )} ``` --- ## 📊 Comparaison Visuelle ### Avant ``` ┌─────────────────────────────────────┐ │ [🖱️] [📁] [📌] [🔔] [🔗] │ ← 5 boutons │ │ │ [Badge Memory Echo] │ │ │ │ Title │ │ │ │ [Image] │ │ │ │ Content... │ │ │ │ [Link Preview HTML] │ │ │ │ [Labels] │ │ │ │ [👤] Avatar Date │ ← Avatar bas gauche └─────────────────────────────────────┘ ``` ### Après ``` ┌─────────────────────────────────────┐ │ [🖱️] [...] │ ← Drag + Menu │ │ │ [Badge Memory Echo] │ │ │ │ Title │ │ │ │ [Image] │ │ │ │ Content... │ │ │ │ [Link Preview HTML] │ │ │ │ [Labels] │ │ │ │ [👤] Avatar Date │ ← Avatar bas gauche (identique) └─────────────────────────────────────┘ ``` --- ## ✅ Avantages 1. **Interface plus claire** : Moins de boutons visibles = moins d'encombrement 2. **Contenu préservé** : TOUT reste identique (avatar, images, liens, labels) 3. **Actions accessibles** : Menu contextuel au hover (desktop) ou tap (mobile) 4. **Cohérence** : Style similaire à Google Keep (menu "..." au lieu de multiples boutons) --- ## 📋 Checklist d'Implémentation - [ ] Créer le composant `NoteActionMenu.tsx` - [ ] Modifier `note-card.tsx` pour remplacer les 5 boutons par le menu - [ ] Tester sur desktop (hover pour afficher le menu) - [ ] Tester sur mobile (tap pour afficher le menu) - [ ] Vérifier que l'avatar reste en bas à gauche - [ ] Vérifier que les images restent visibles - [ ] Vérifier que les liens HTML restent avec prévisualisation complète - [ ] Vérifier que les labels restent visibles - [ ] Vérifier que la date reste en bas à droite --- ## 🎯 Résumé **Changement unique :** 5 boutons → 1 menu "..." **Tout le reste :** Identique (avatar bas gauche, images, liens HTML, labels, date) --- **Document créé le:** 2026-01-17 **Status:** Prêt pour implémentation