Images: Miniatures avec modal d'agrandissement

Les images dans les notes sont maintenant des miniatures qui s'agrandissent
dans un modal en plein écran au clic.

CSS - Miniatures:
- .note-card-image: 140px hauteur (cartes pliées)
- .note-image: 200px max-height (notes expandues, réduit de 300px)
- Cursor pointer + hover effect (scale 1.02, opacity 0.9)
- Indication visuelle qu'on peut cliquer

Modal Image:
- Fond noir semi-transparent (rgba(0,0,0,0.9))
- Image centrée, max 90vw x 90vh
- Bouton fermeture (top-right, backdrop-filter)
- z-index 400 (au-dessus de tout)
- Animation fadeIn 0.2s

Interactions:
- Clic sur miniature → Modal avec image en taille réelle
- Clic sur fond noir → Ferme le modal
- Bouton X → Ferme le modal
- Touche Escape → Ferme le modal
- Délégation d'événements pour gérer les images après re-render
- Désactive scroll pendant que modal ouvert

JavaScript:
- openImageModal(src): Ouvre modal + désactive scroll
- closeImageModal(): Ferme modal + réactive scroll
- Event listeners: click, escape, backdrop

Bénéfices utilisateur:
✓ Notes plus compactes (images miniatures)
✓ Images consultables en haute qualité (modal)
✓ Navigation intuitive (clic pour agrandir)
✓ Fermeture rapide (X, Escape, backdrop)
✓ Pas de scroll accidentel pendant consultation

Files:
- public/css/components.css: Miniatures + hover effects
- public/css/skeleton.css: Styles modal image
- public/index.html: HTML modal image
- public/js/complete-app.js: Gestion modal + event listeners
This commit is contained in:
Claude committed 2025-11-11 19:41:17 +00:00
1 parent 7354818d3e
commit 6599348878
4 files changed
+151 -1

No files matched your search

+15 -1
View File
@@ -84,6 +84,13 @@
object-fit: cover;
border-radius: var(--radius-md);
margin-bottom: var(--spacing-md);
cursor: pointer;
transition: all var(--transition-fast);
}
.note-card-image:hover {
opacity: 0.9;
transform: scale(1.02);
}
.note-todos-preview {
@@ -840,9 +847,16 @@
.note-image {
width: 100%;
max-height: 300px;
max-height: 200px;
object-fit: cover;
border-radius: var(--radius-lg);
cursor: pointer;
transition: all var(--transition-fast);
}
.note-image:hover {
opacity: 0.9;
transform: scale(1.02);
}
.btn-remove-image {