# 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 */}
{/* TODO */}}
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