286 lines
17 KiB
Markdown
286 lines
17 KiB
Markdown
|
|
# Phase 2 — Analyse comparative visuelle (Discord × Spotify)
|
|||
|
|
|
|||
|
|
**Contexte** : Baselines Veza en conditions contrôlées (1280×720, dark, reduced motion).
|
|||
|
|
**Métriques Veza** : déduites du code (composants, `index.css`, Tailwind).
|
|||
|
|
**Métriques Discord/Spotify** : reverse-engineering communautaire et documentation publique ; lorsqu’aucune valeur px n’est disponible, la méthode de mesure sur capture de référence est indiquée.
|
|||
|
|
**Aucune modification de code ou de tokens** : phase analytique uniquement.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Référents par écran
|
|||
|
|
|
|||
|
|
| Écran Veza | Fichier baseline | Équivalent Discord | Équivalent Spotify |
|
|||
|
|
|------------|------------------|--------------------|---------------------|
|
|||
|
|
| Login | `login-desktop.png` | N/A (Discord desktop = app native) | Login web (desktop) |
|
|||
|
|
| Register | `register-desktop.png` | N/A | Inscription web |
|
|||
|
|
| Dashboard | `dashboard-desktop.png` | Vue principale (canal actif + liste messages) | Home / Search (zone centrale) |
|
|||
|
|
| Sidebar | `sidebar-desktop.png` | Liste serveurs + liste canaux (channel list) | Left nav (Home, Search, Library) |
|
|||
|
|
| Playlists (liste) | `playlists-desktop.png` | Liste canaux (texte) / liste DMs | Liste playlists / liste titres |
|
|||
|
|
| Library | `library-desktop.png` | — | Your Library (grille/liste) |
|
|||
|
|
| 404 | `404-desktop.png` | Page erreur / lien mort | Page non trouvée |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Analyse par écran
|
|||
|
|
|
|||
|
|
### 2.1 Login (`login-desktop.png`)
|
|||
|
|
|
|||
|
|
**Référent** : Spotify login (desktop web) — formulaire centré, fond sombre, un seul CTA.
|
|||
|
|
|
|||
|
|
#### Métriques déduites du code (Veza)
|
|||
|
|
|
|||
|
|
- **Typographie** : Titre de page (non présent dans LoginForm ; dépend du layout) ; labels/inputs via `FloatingInput` ; bouton `text-sm font-medium` (14px), CTA avec `font-bold tracking-wide` (button primary). Pas de titre explicite dans le formulaire dans le snippet — à confirmer sur baseline.
|
|||
|
|
- **Spacing** : `space-y-8` entre blocs (32px), `space-y-4` dans le groupe champs (16px). Champs espacés 16px verticalement.
|
|||
|
|
- **Conteneur** : Formulaire `w-full` ; conteneur centré dépend du layout parent (AuthLayout).
|
|||
|
|
- **Bouton** : `h-10` (40px), `rounded-full`, `rounded-xl` sur le CTA login (override dans le form).
|
|||
|
|
|
|||
|
|
#### Comparaison Spotify login (pratiques courantes)
|
|||
|
|
|
|||
|
|
- **Typographie** : Titre principal lisible (souvent 24–28px), sous-texte plus petit (14–16px). Ratio titre/corps marqué.
|
|||
|
|
- **Spacing** : Espacement vertical généreux entre champs (20–24px) ; padding du conteneur 32–40px.
|
|||
|
|
- **Densité** : Une seule colonne, peu d’éléments ; pas de surcharge.
|
|||
|
|
|
|||
|
|
#### Diagnostic
|
|||
|
|
|
|||
|
|
| Critère | Veza (code) | Spotify (référence) | Écart |
|
|||
|
|
|---------|-------------|----------------------|--------|
|
|||
|
|
| Espacement vertical entre champs | 16px (space-y-4) | 20–24px typique | Veza plus serré ; risque de sensation "compact" |
|
|||
|
|
| Espacement entre sections | 32px (space-y-8) | Souvent 32–40px | Proche |
|
|||
|
|
| Hauteur bouton principal | 40px (h-10) | ~40–48px | Proche |
|
|||
|
|
| Radius bouton | full / xl | Souvent 24–28px (pill) | Cohérent |
|
|||
|
|
|
|||
|
|
**Verdict** : Densité **légèrement sur-dense** par rapport à un login type Spotify (espacement entre champs). Hiérarchie à vérifier sur capture : titre de page vs labels vs lien "Forgot password" (taille, contraste).
|
|||
|
|
|
|||
|
|
**Écarts précis** :
|
|||
|
|
- L’espacement vertical entre champs (16px) est inférieur aux ~20–24px courants sur login Spotify, ce qui réduit la respiration du formulaire.
|
|||
|
|
- Si le titre de page est absent ou en petit, la hiérarchie "titre > sous-titre > champs > CTA" est faible.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2.2 Register (`register-desktop.png`)
|
|||
|
|
|
|||
|
|
Même référent que login (formulaire d’inscription web).
|
|||
|
|
|
|||
|
|
#### Métriques Veza (code)
|
|||
|
|
|
|||
|
|
- Même système que login : `space-y-8` / `space-y-4`, boutons et inputs partagés.
|
|||
|
|
- Formulaire plus long (plus de champs) → plus de scroll.
|
|||
|
|
|
|||
|
|
#### Diagnostic
|
|||
|
|
|
|||
|
|
- **Densité** : Identique au login ; si le nombre de champs est élevé, 16px entre champs peut donner une liste étouffée.
|
|||
|
|
- **Hiérarchie** : Sections (étapes ou blocs) doivent se distinguer par un espacement ou un titre ; à vérifier sur baseline.
|
|||
|
|
|
|||
|
|
**Verdict** : Même problème potentiel que login (spacing entre champs). Risque **moyen** si beaucoup de champs sans séparation visuelle.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2.3 Dashboard (`dashboard-desktop.png`)
|
|||
|
|
|
|||
|
|
**Référents** : Discord = zone canal + liste messages ; Spotify = Home (cartes, sections).
|
|||
|
|
|
|||
|
|
#### Métriques déduites du code (Veza)
|
|||
|
|
|
|||
|
|
- **Conteneur** : `space-y-6 p-6 pb-24` → 24px entre sections, 24px padding, 96px en bas (player).
|
|||
|
|
- **Titre** : `text-3xl font-display font-bold` (30px) + sous-texte `text-muted-foreground` (p = leading-relaxed).
|
|||
|
|
- **Grille cartes** : `grid gap-4 md:grid-cols-2 lg:grid-cols-4` → 16px entre cartes, 4 colonnes en large.
|
|||
|
|
- **Cartes** : Card + CardHeader/CardContent ; pas de padding explicite dans le snippet — dépend de `card.tsx`.
|
|||
|
|
|
|||
|
|
#### Comparaison Discord (zone principale)
|
|||
|
|
|
|||
|
|
- **Densité** : Élevée ; messages serrés (padding vertical ~4–8px par message), scroll long.
|
|||
|
|
- **Hiérarchie** : Nom d’utilisateur / heure en petit ; contenu en corps ; contraste typographique fort.
|
|||
|
|
|
|||
|
|
#### Comparaison Spotify Home
|
|||
|
|
|
|||
|
|
- **Densité** : Moyenne ; sections avec titres (ex. 24px), cartes horizontales scrollables, espacement vertical entre sections ~24–32px.
|
|||
|
|
- **Rythme** : Répétition section titre + carrousel ; padding latéral marqué.
|
|||
|
|
|
|||
|
|
#### Diagnostic
|
|||
|
|
|
|||
|
|
| Critère | Veza (code) | Discord | Spotify Home |
|
|||
|
|
|---------|-------------|---------|--------------|
|
|||
|
|
| Padding zone principale | 24px (p-6) | ~16px | ~24–32px |
|
|||
|
|
| Espacement entre sections | 24px (space-y-6) | — | 24–32px |
|
|||
|
|
| Espacement entre cartes | 16px (gap-4) | — | 16–24px |
|
|||
|
|
| Titre page | 30px (text-3xl) | — | 24–28px section |
|
|||
|
|
|
|||
|
|
**Verdict** : **Ni sous-dense ni sur-dense** pour un dashboard type "command center". Hiérarchie à valider sur capture : le titre avec gradient (Welcome back, {name}) doit dominer ; les cartes stats ne doivent pas rivaliser en poids visuel (couleurs, ombres).
|
|||
|
|
|
|||
|
|
**Écarts précis** :
|
|||
|
|
- Les stats utilisent des couleurs vives (cyan, lime, destructive, magenta) et des ombres (drop-shadow) : risque de **concurrence visuelle** avec le titre et entre cartes.
|
|||
|
|
- `space-y-6` (24px) entre blocs est cohérent avec Spotify ; à confirmer que le premier bloc (titre + sous-titre) est bien séparé du bloc cartes.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2.4 Sidebar (`sidebar-desktop.png`)
|
|||
|
|
|
|||
|
|
**Référents** : Discord = liste serveurs (icônes) + liste canaux (texte) ; Spotify = left nav (icônes + labels).
|
|||
|
|
|
|||
|
|
#### Métriques déduites du code (Veza)
|
|||
|
|
|
|||
|
|
- **Dimensions** : Ouverte `w-64` (256px), fermée `lg:w-20` (80px). Position `left-6 bottom-6 top-20` → 24px gauche/bas, 80px haut (sous header).
|
|||
|
|
- **Header** : `px-4 py-4` (16px), `gap-3` (12px). Logo 32×32px. Titre `text-sm font-semibold`, sous-texte `text-xs text-muted-foreground`.
|
|||
|
|
- **Sections** : `space-y-6` (24px entre groupes), `px-3 py-2` (12px/8px), labels `text-xs font-medium uppercase tracking-wider mb-2 px-3`.
|
|||
|
|
- **Items** : `px-3 py-2` (12px/8px), `space-y-0.5` (2px entre items), `text-sm font-medium`. Hauteur approximative par item : 8+8+line-height(14px) ≈ 36–40px.
|
|||
|
|
- **Radius** : `rounded-xl` sur l’aside (12px avec --radius 0.5rem + 4px).
|
|||
|
|
|
|||
|
|
#### Comparaison Discord (reverse-engineering communautaire)
|
|||
|
|
|
|||
|
|
- **Liste canaux** : Largeur étendue **240px**, collapsed **72px**.
|
|||
|
|
- **Items** : Hauteur d’item ~32–40px ; padding horizontal ~8–12px ; texte canal en 14–16px.
|
|||
|
|
- **Sections** : Séparation nette ; labels en petit, uppercase ou titre court.
|
|||
|
|
|
|||
|
|
#### Comparaison Spotify (pratiques courantes)
|
|||
|
|
|
|||
|
|
- **Left nav** : Largeur variable (resizable) ; collapsed = icônes seules (~56–72px), étendu ~200–280px.
|
|||
|
|
- **Items** : Hauteur ~40–48px ; icône + label ; peu d’items visibles sans scroll.
|
|||
|
|
- **Rythme** : Espacement vertical régulier ; pas de surcharge.
|
|||
|
|
|
|||
|
|
#### Diagnostic
|
|||
|
|
|
|||
|
|
| Critère | Veza (code) | Discord | Spotify |
|
|||
|
|
|---------|-------------|---------|---------|
|
|||
|
|
| Largeur ouverte | 256px (w-64) | 240px | ~200–280px |
|
|||
|
|
| Largeur fermée | 80px (w-20) | 72px | ~56–72px |
|
|||
|
|
| Padding horizontal items | 12px (px-3) | ~8–12px | ~12–16px |
|
|||
|
|
| Padding vertical item | 8px (py-2) | ~6–8px | ~10–12px |
|
|||
|
|
| Espacement entre items | 2px (space-y-0.5) | ~0–2px | ~0–4px |
|
|||
|
|
| Espacement entre sections | 24px (space-y-6) | ~16–24px | ~8–16px |
|
|||
|
|
| Taille label section | 12px (text-xs) | ~11–12px | ~11–12px |
|
|||
|
|
| Taille item | 14px (text-sm) | ~14px | ~14px |
|
|||
|
|
|
|||
|
|
**Verdict** : **Densité et largeur dans la fourchette** Discord/Spotify. Points à valider sur capture : alignement icône–texte (gap-3 = 12px), contraste item actif vs inactif, et **incohérences de mise en page** (valeurs en dur : `left-6`, `top-20`, `bottom-6`, `z-[95]` non issues de tokens).
|
|||
|
|
|
|||
|
|
**Écarts précis** :
|
|||
|
|
- La sidebar Veza fait **256px** ouverte contre **240px** Discord : 16px de plus, pas bloquant mais à aligner sur un token si on vise la même densité que Discord.
|
|||
|
|
- `space-y-0.5` (2px) entre items donne une liste très serrée ; Discord/Spotify sont souvent dans la même gamme ; à confirmer que la ligne de base du texte ne touche pas l’item suivant.
|
|||
|
|
- **Alignements** : Le header utilise `gap-3`, les items `gap-3` (icône–texte) ; vérifier sur capture que les icônes des items sont alignées verticalement avec le titre "System Hub" (grille implicite).
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2.5 Playlists — liste dense (`playlists-desktop.png`)
|
|||
|
|
|
|||
|
|
**Référents** : Discord = liste de canaux texte ; Spotify = liste de playlists ou liste de titres.
|
|||
|
|
|
|||
|
|
#### Métriques déduites du code (Veza)
|
|||
|
|
|
|||
|
|
- **Vue liste** : `flex flex-col gap-2 sm:gap-3` → 8px (mobile) / 12px (desktop) entre lignes.
|
|||
|
|
- **PlaylistTrackItem** : `p-2 sm:p-3` (8px / 12px), `gap-2 sm:gap-4` (8px / 16px). Titre `text-sm sm:text-base` (14px / 16px), secondaire `text-xs sm:text-sm` (12px / 14px). Hauteur de ligne ≈ 12+12+20 (line-height) ≈ 44px (sm) ou 12+12+~24 ≈ 48px avec text-base.
|
|||
|
|
- **Vue grille** : `grid gap-4`, `grid-cols-2 md:grid-cols-3 lg:grid-cols-4`. PlaylistCard avec `aspect-square` pour la cover.
|
|||
|
|
- **Espacement global** : `space-y-4` entre toolbar et liste.
|
|||
|
|
|
|||
|
|
#### Comparaison Spotify (liste titres / playlists)
|
|||
|
|
|
|||
|
|
- **Liste titres** : Hauteur de ligne souvent ~48–56px ; padding horizontal ~16px ; titre 14–16px, secondaire 12–14px.
|
|||
|
|
- **Liste playlists** : Cartes ou lignes ; espacement régulier (gap 16–24px).
|
|||
|
|
|
|||
|
|
#### Comparaison Discord (liste canaux)
|
|||
|
|
|
|||
|
|
- **Items** : Hauteur ~32–40px ; texte 14px ; padding serré.
|
|||
|
|
- **Densité** : Élevée pour afficher beaucoup de canaux.
|
|||
|
|
|
|||
|
|
#### Diagnostic
|
|||
|
|
|
|||
|
|
| Critère | Veza (code) | Spotify (liste) | Discord (canaux) |
|
|||
|
|
|---------|-------------|-----------------|------------------|
|
|||
|
|
| Padding vertical ligne | 8–12px (p-2/p-3) | ~12–16px | ~6–10px |
|
|||
|
|
| Espacement entre lignes | 8–12px (gap-2/gap-3) | ~0–4px (liste) | ~0–2px |
|
|||
|
|
| Taille titre ligne | 14–16px | 14–16px | ~14px |
|
|||
|
|
| Taille secondaire | 12–14px | 12–14px | ~12px |
|
|||
|
|
| Hauteur approximative ligne | ~44–48px | ~48–56px | ~32–40px |
|
|||
|
|
|
|||
|
|
**Verdict** : **Légèrement plus compact** que Spotify (padding et gap plus faibles), **proche** de Discord en densité. Pour une "liste dense" type Spotify, augmenter le padding vertical des lignes (p-3 → p-4) et/ou le gap entre lignes (gap-3 → gap-4) rapprocherait du rythme Spotify sans changer la structure.
|
|||
|
|
|
|||
|
|
**Écarts précis** :
|
|||
|
|
- L’item de liste fait environ **44–48px** de hauteur (p-2/p-3 + texte) contre **48–56px** typique Spotify, ce qui donne une liste plus serrée.
|
|||
|
|
- En vue grille, `gap-4` (16px) est cohérent ; vérifier sur capture que les cartes ne semblent pas collées (ratio cover/titre cohérent).
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2.6 Library (`library-desktop.png`)
|
|||
|
|
|
|||
|
|
**Référent** : Spotify "Your Library" (grille ou liste d’albums/playlists).
|
|||
|
|
|
|||
|
|
#### Métriques Veza (code)
|
|||
|
|
|
|||
|
|
- Même composants que playlists (PlaylistList, grille/liste) ; écran library peut réutiliser des vues liste ou grille selon le code.
|
|||
|
|
- Si grille : `gap-4`, colonnes 2/3/4 ; si liste : même métriques que playlists.
|
|||
|
|
|
|||
|
|
**Verdict** : Aligner sur le même diagnostic que Playlists (densité, hauteur de ligne, gap). **Cohérence** entre Library et Playlists à confirmer sur baselines (mêmes tokens, pas d’écart visuel entre les deux écrans).
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2.7 404 (`404-desktop.png`)
|
|||
|
|
|
|||
|
|
**Référent** : Page erreur minimale (Spotify / Discord : message + CTA).
|
|||
|
|
|
|||
|
|
#### Points à vérifier sur baseline
|
|||
|
|
|
|||
|
|
- Hiérarchie : message principal > explication > bouton.
|
|||
|
|
- Densité : centré, pas trop vide (min-h-layout-page-sm = 400px).
|
|||
|
|
- Contraste : texte lisible sur fond dark.
|
|||
|
|
- Composant : KodoEmptyState ou équivalent (icône, titre, description, action).
|
|||
|
|
|
|||
|
|
**Verdict** : Pas de référent métrique strict ; **qualité** = lisibilité et un seul CTA clair. À valider en Phase 3 avec une capture.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Synthèse transverse
|
|||
|
|
|
|||
|
|
### 3.1 Règles implicites Discord (extraites)
|
|||
|
|
|
|||
|
|
1. **Densité élevée avec contraste typographique fort** : Beaucoup d’éléments visibles (canaux, messages) ; différenciation par taille (labels petits, contenu en corps) et poids (gras pour noms), pas par espacement excessif.
|
|||
|
|
2. **Sidebar à largeur fixe et prévisible** : 72px (collapsed) / 240px (étendu) ; peu de variation. Hiérarchie visuelle par sections (serveurs vs canaux) et par état actif/hover.
|
|||
|
|
3. **Alignements stricts** : Icônes et texte alignés sur une grille ; pas de décalage entre zones équivalentes (même padding gauche pour tous les items de même niveau).
|
|||
|
|
|
|||
|
|
### 3.2 Règles implicites Spotify (extraites)
|
|||
|
|
|
|||
|
|
1. **Densité modérée, rythme vertical régulier** : Espacement entre sections et entre lignes cohérent (16–24px) ; moins d’items visibles que Discord mais lecture plus confortable.
|
|||
|
|
2. **Sidebar resizable avec états clairs** : Collapsed = icônes seules ; étendu = icône + label ; transition nette. Pas de demi-mesure visuelle.
|
|||
|
|
3. **Hiérarchie par taille et contraste secondaire** : Titres de section 24px ou équivalent ; corps 14–16px ; secondaire (métadonnées) plus petit et plus terne ; peu de couleurs vives en dehors des covers et CTAs.
|
|||
|
|
|
|||
|
|
### 3.3 Ce que l’app actuelle fait déjà bien
|
|||
|
|
|
|||
|
|
- **Sidebar** : Largeur et structure (sections, items, collapsed) dans la fourchette Discord/Spotify ; tokens sémantiques (sidebar-primary, sidebar-accent) présents.
|
|||
|
|
- **Dashboard** : Padding et espacement entre blocs (p-6, space-y-6, gap-4) proches de Spotify Home.
|
|||
|
|
- **Formulaires auth** : Structure space-y-8 / space-y-4 et boutons (h-10, rounded-full) cohérents avec des patterns courants.
|
|||
|
|
- **Listes** : Typo (text-sm / text-xs) et structure (titre + secondaire) alignées avec les référents.
|
|||
|
|
|
|||
|
|
### 3.4 Ce qui éloigne structurellement des référents
|
|||
|
|
|
|||
|
|
- **Spacing formulaires** : 16px entre champs (space-y-4) plus serré que le 20–24px type Spotify login → sensation plus dense.
|
|||
|
|
- **Liste playlists** : Lignes ~44–48px et gap 8–12px plus compacts que Spotify (~48–56px, 0–4px gap) → liste plus "Discord" que "Spotify".
|
|||
|
|
- **Dashboard** : Multiplicité de couleurs vives et ombres sur les cartes → risque de concurrence visuelle avec le titre ; Discord/Spotify limitent les couleurs vives à des zones précises (accents, états).
|
|||
|
|
- **Sidebar** : Valeurs en dur (left-6, top-20, bottom-6, z-[95], w-64) non issues de tokens → incohérence potentielle et maintenance difficile ; Discord/Spotify s’appuient sur des variables de layout.
|
|||
|
|
- **Alignements** : Non audités pixel-perfect sur les captures ; ruptures de grille ou padding incohérents entre zones équivalentes restent possibles.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Tableau de synthèse (ordre de traitement Phase 3)
|
|||
|
|
|
|||
|
|
| Écran | Problème principal | Type | Impact perçu |
|
|||
|
|
|-------|--------------------|------|--------------|
|
|||
|
|
| Login | Espacement vertical entre champs trop faible (16px vs 20–24px) | Spacing | Moyen |
|
|||
|
|
| Register | Idem login ; risque d’étouffement si nombreux champs | Spacing | Moyen |
|
|||
|
|
| Dashboard | Concurrence visuelle cartes (couleurs + ombres) vs titre | Hiérarchie | Fort |
|
|||
|
|
| Sidebar | Valeurs en dur (position, z-index, w-64) ; 256px vs 240px Discord | Spacing / Alignement | Moyen |
|
|||
|
|
| Playlists (liste) | Hauteur de ligne et gap plus compacts que Spotify | Spacing / Densité | Moyen |
|
|||
|
|
| Library | Cohérence avec Playlists (mêmes tokens) | Alignement | Faible |
|
|||
|
|
| 404 | À valider sur capture (lisibilité, CTA unique) | Hiérarchie / Contraste | Faible |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Ordre recommandé pour la Phase 3
|
|||
|
|
|
|||
|
|
1. **Sidebar** : Remplacer les valeurs en dur par des tokens (largeur, positions, z-index) ; optionnellement aligner la largeur ouverte sur 240px si cible Discord.
|
|||
|
|
2. **Login / Register** : Augmenter l’espacement vertical entre champs (nouveau token ou space-y-5 / space-y-6) ; une seule catégorie à la fois, puis capture + pixelmatch.
|
|||
|
|
3. **Dashboard** : Réduire la concurrence visuelle des cartes (ombres ou couleurs) pour renforcer la hiérarchie titre > cartes ; vérifier contrastes.
|
|||
|
|
4. **Playlists (liste)** : Ajuster padding vertical des lignes et/ou gap entre lignes pour se rapprocher du rythme Spotify ; mesurer sur baseline après correction.
|
|||
|
|
5. **Library** : S’assurer que les mêmes tokens que Playlists sont utilisés ; pas de dérive visuelle.
|
|||
|
|
6. **404** : Validation visuelle et contraste ; corrections mineures si besoin.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Fin du rapport Phase 2.** Aucune modification de code ou de tokens n’a été effectuée ; les corrections seront appliquées en Phase 3, une catégorie à la fois, avec capture et diff pixelmatch pour chaque changement.
|