story-research-zapwall/features/ui-improvements.md
2026-01-13 23:45:28 +01:00

11 KiB

Améliorations UI - Documentation

Auteur : Équipe 4NK Date : 2025-01-27

Vue d'ensemble

Ce document liste les améliorations UI proposées pour la plateforme zapwall.fr. Ces améliorations visent à créer une interface plus cohérente, moderne et visuellement attrayante tout en respectant le thème cyberpunk/neon existant.

1. Design System et Cohérence Visuelle

Système de couleurs unifié

  • Audit des couleurs :

    • Identifier tous les usages de couleurs non-thème (ex: SeriesCard utilise bg-white, text-gray-700)
    • Remplacer par les couleurs du design system (cyber/neon)
    • Créer une palette de couleurs documentée avec usages
  • Cohérence des états :

    • États hover cohérents sur tous les éléments interactifs
    • États focus visibles et uniformes
    • États disabled avec style cohérent
    • États actifs/selected avec indicateurs visuels clairs

Composants réutilisables

  • Créer une bibliothèque de composants :

    • Button : Variantes (primary, secondary, danger, ghost)
    • Card : Variantes (default, hover, selected)
    • Input : Variantes (text, search, textarea)
    • Badge : Variantes (info, success, warning, error)
    • Modal : Composant modal réutilisable avec overlay
    • Toast : Système de notifications toast
    • Skeleton : Loaders skeleton pour différents contenus
  • Documentation des composants :

    • Storybook ou documentation inline
    • Exemples d'utilisation
    • Props et variantes documentées

2. Typographie et Espacement

Hiérarchie typographique

  • Système de tailles cohérent :

    • text-xs : Métadonnées, labels
    • text-sm : Texte secondaire, descriptions
    • text-base : Corps de texte principal
    • text-lg : Sous-titres
    • text-xl : Titres de sections
    • text-2xl : Titres principaux
    • text-3xl+ : Titres hero
  • Poids de police :

    • font-normal : Texte courant
    • font-medium : Emphase légère
    • font-semibold : Emphase moyenne
    • font-bold : Titres, CTA
  • Espacement cohérent :

    • Utiliser l'échelle Tailwind (4, 8, 12, 16, 24, 32...)
    • Marges verticales cohérentes entre sections
    • Padding cohérent dans les cards et containers

Lisibilité améliorée

  • Contraste :

    • Vérifier tous les contrastes (WCAG AA minimum)
    • Améliorer les contrastes faibles (ex: text-cyber-accent/70)
    • Tester avec différents thèmes si applicable
  • Largeur de ligne optimale :

    • Limiter la largeur du texte à ~65-75 caractères
    • Appliquer max-w-prose ou similaire pour le contenu
    • Ajuster les espacements pour la lecture

3. Layout et Grille

Système de grille cohérent

  • Containers :

    • Largeur max cohérente (max-w-4xl, max-w-6xl, etc.)
    • Padding horizontal cohérent (px-4, px-6, px-8)
    • Centrage automatique avec mx-auto
  • Grilles responsives :

    • grid-cols-1 sur mobile
    • md:grid-cols-2 sur tablette
    • lg:grid-cols-3 ou xl:grid-cols-4 sur desktop
    • Gaps cohérents (gap-4, gap-6, gap-8)

Responsive design amélioré

  • Breakpoints cohérents :

    • Mobile first : base styles
    • sm: : 640px (petites tablettes)
    • md: : 768px (tablettes)
    • lg: : 1024px (desktop)
    • xl: : 1280px (large desktop)
  • Navigation mobile :

    • Menu hamburger pour navigation sur mobile
    • Drawer/sidebar pour filtres sur mobile
    • Touch targets minimum 44x44px

4. Cards et Containers

Style unifié des cards

  • Card de base :

    className="border border-neon-cyan/30 rounded-lg p-6 bg-cyber-dark hover:border-neon-cyan/50 hover:shadow-glow-cyan transition-all"
    
  • Variantes :

    • Card simple : bordure subtile, pas de hover
    • Card interactive : hover avec glow, cursor pointer
    • Card selected : bordure plus visible, background différent
    • Card compact : padding réduit pour listes denses

Containers et sections

  • Sections :

    • Espacement vertical cohérent entre sections (mb-8, mb-12)
    • Titres de section avec style cohérent
    • Séparateurs visuels si nécessaire
  • Containers de contenu :

    • Background cohérent (bg-cyber-dark ou bg-cyber-darker)
    • Bordures subtiles (border-neon-cyan/20 ou /30)
    • Padding cohérent selon le contexte

5. Buttons et Interactions

Système de boutons

  • Variantes de boutons :

    • Primary : bg-neon-cyan/20 hover:bg-neon-cyan/30 text-neon-cyan border-neon-cyan/50
    • Secondary : bg-cyber-light hover:bg-cyber-dark text-cyber-accent border-neon-cyan/30
    • Success : bg-neon-green/20 hover:bg-neon-green/30 text-neon-green border-neon-green/50
    • Danger : bg-red-500/20 hover:bg-red-500/30 text-red-400 border-red-500/50
    • Ghost : bg-transparent hover:bg-cyber-light text-cyber-accent
  • Tailles cohérentes :

    • Small : px-3 py-1.5 text-sm
    • Medium : px-4 py-2 text-base (défaut)
    • Large : px-6 py-3 text-lg
  • États :

    • Loading : spinner + texte "Chargement..."
    • Disabled : opacity-50 cursor-not-allowed
    • Focus : ring visible avec focus:ring-2 focus:ring-neon-cyan

Micro-interactions

  • Transitions :

    • transition-all pour changements d'état
    • transition-colors pour changements de couleur uniquement
    • Durées cohérentes (150ms, 200ms, 300ms)
  • Hover effects :

    • Scale subtil sur les cards (hover:scale-[1.02])
    • Glow sur les boutons et éléments interactifs
    • Changement de couleur progressif

6. Icônes et Illustrations

Système d'icônes

  • Cohérence :

    • Utiliser une seule bibliothèque d'icônes (ex: Heroicons, Lucide)
    • Tailles cohérentes (w-4 h-4, w-5 h-5, w-6 h-6)
    • Couleurs cohérentes avec le thème
  • Icônes contextuelles :

    • Icônes pour les actions (éditer, supprimer, partager)
    • Icônes pour les états (succès, erreur, chargement)
    • Icônes pour la navigation (menu, fermer, retour)

Illustrations et images

  • Placeholders :

    • Placeholder cohérent pour images manquantes
    • Skeleton loaders pour images en chargement
    • Aspect ratios cohérents
  • Optimisation :

    • Utiliser Next.js Image component partout
    • Lazy loading pour images hors viewport
    • Tailles appropriées selon le contexte

7. Animations et Transitions

Animations subtiles

  • Apparition :

    • Fade in pour les éléments qui apparaissent
    • Slide in pour les modals et overlays
    • Stagger pour les listes (délai entre éléments)
  • Transitions de page :

    • Fade entre les pages
    • Slide pour navigation latérale
    • Transitions fluides sans jarring

Feedback visuel

  • Loading states :

    • Spinners cohérents (taille, couleur, vitesse)
    • Skeleton loaders pour contenu
    • Progress bars pour actions longues
  • Confirmations :

    • Animations de succès (checkmark animé)
    • Animations d'erreur (shake, pulse)
    • Toast notifications avec animations

8. Modals et Overlays

Style unifié

  • Modal de base :

    • Overlay : bg-black bg-opacity-50
    • Container : bg-cyber-dark border border-neon-cyan/30 rounded-lg
    • Padding cohérent : p-6 ou p-8
    • Max width selon contenu : max-w-md, max-w-lg, max-w-xl
  • Header de modal :

    • Titre avec style cohérent
    • Bouton fermer visible et accessible
    • Séparateur si nécessaire
  • Footer de modal :

    • Actions alignées à droite
    • Bouton principal en dernier
    • Espacement cohérent

Accessibilité

  • Focus trap : Garder le focus dans la modal
  • Escape key : Fermer avec Escape
  • Click outside : Option de fermer en cliquant sur l'overlay
  • ARIA : Labels et rôles appropriés

9. Formulaires

Style unifié

  • Inputs :

    • Style cohérent : border border-neon-cyan/30 rounded-lg bg-cyber-dark text-cyber-accent
    • Focus : focus:ring-2 focus:ring-neon-cyan focus:border-neon-cyan
    • Placeholder : placeholder-cyber-accent/50
    • Erreur : border-red-500/50 avec message d'erreur
  • Labels :

    • Style cohérent : text-sm font-medium text-cyber-accent mb-1
    • Association avec htmlFor et id
    • Required indicator si nécessaire
  • Groupes de champs :

    • Espacement vertical cohérent
    • Groupement logique
    • Validation visuelle

Validation visuelle

  • États :

    • Default : bordure neutre
    • Focus : bordure cyan avec ring
    • Error : bordure rouge avec message
    • Success : bordure verte (si applicable)
  • Messages d'erreur :

    • Position cohérente (sous le champ)
    • Style cohérent : text-sm text-red-400
    • Icône d'erreur si applicable

10. Navigation

Header amélioré

  • Layout :

    • Logo/titre à gauche
    • Navigation centrale (si applicable)
    • Actions à droite (connexion, langue, etc.)
  • Style :

    • Background : bg-cyber-dark border-b border-neon-cyan/30
    • Hauteur cohérente
    • Sticky si nécessaire

Navigation mobile

  • Menu hamburger :

    • Icône hamburger visible sur mobile
    • Drawer/sidebar qui slide depuis la gauche ou droite
    • Overlay sombre
    • Animation fluide
  • Navigation verticale :

    • Items de menu avec style cohérent
    • États hover/active visibles
    • Séparateurs si nécessaire

11. États vides et erreurs

États vides

  • Style cohérent :

    • Icône ou illustration
    • Message clair et actionnable
    • CTA si applicable
    • Centré verticalement et horizontalement
  • Exemples :

    • "Aucun article trouvé" avec suggestion de recherche
    • "Aucun auteur" avec lien pour créer
    • "Liste vide" avec action pour ajouter

États d'erreur

  • Style cohérent :
    • Container : bg-red-900/20 border border-red-500/50 rounded-lg p-4
    • Texte : text-red-400
    • Icône d'erreur si applicable
    • Message clair avec action de récupération

12. Améliorations spécifiques

Corrections de cohérence

  • SeriesCard :

    • Remplacer bg-white, text-gray-700 par thème cyber/neon
    • Appliquer le même style que ArticleCard et AuthorCard
  • AlbyInstaller :

    • Remplacer les couleurs bleues génériques par le thème
    • Utiliser les couleurs neon/cyber

Améliorations visuelles

  • Background grid :

    • Utiliser bg-cyber-grid sur certains containers pour effet cyber
    • Optionnel, à utiliser avec parcimonie
  • Gradients :

    • Gradients subtils pour certains backgrounds
    • Gradients sur les bordures pour effet neon
  • Shadows et glows :

    • Utiliser shadow-glow-cyan et shadow-glow-green de manière cohérente
    • Ajouter des glows sur hover pour éléments interactifs

Priorisation

Priorité haute

  1. Correction de cohérence (SeriesCard, AlbyInstaller)
  2. Système de boutons unifié
  3. Système de cards unifié
  4. Typographie et espacement cohérents
  5. Responsive design amélioré

Priorité moyenne

  1. Composants réutilisables (Button, Card, Input, etc.)
  2. Modals et overlays unifiés
  3. Formulaires avec validation visuelle
  4. Navigation mobile
  5. États vides et erreurs

Priorité basse

  1. Animations et transitions avancées
  2. Système d'icônes complet
  3. Background grid et effets visuels
  4. Documentation des composants
  5. Storybook ou documentation visuelle

Notes d'implémentation

  • Toutes les améliorations doivent respecter le thème cyberpunk/neon existant
  • Maintenir la cohérence avec les couleurs définies dans tailwind.config.js
  • Tester sur différents appareils et tailles d'écran
  • Vérifier l'accessibilité (contraste, focus, ARIA)
  • Documenter les nouveaux composants et patterns
  • Respecter les règles de qualité du projet (pas de duplication, composants réutilisables)