--- id: "ui-plan" title: "🎨 Plan UI Complet - Veza Platform" sidebar_label: "🎨 Plan UI Complet - Veza Platform" --- > NOTE: Cette page décrit la CIBLE (but visé). # 🎨 Plan UI Complet - Veza Platform > **Design System et Interface Utilisateur pour la plateforme musicale collaborative Veza** ## 📋 **Analyse de l'Existant** ### ✅ **Ce qui fonctionne actuellement** - **Design system cohérent** : Composants réutilisables, thème sombre - **Architecture technique solide** : Microservices (Go backend, Rust modules) - **Authentification complète** : JWT, OAuth2, Magic Links, 2FA - **Fonctionnalités core** : Streaming audio, chat temps réel, upload fichiers - **APIs complètes** : REST, gRPC, WebSocket, GraphQL - **Services avancés** : Marketplace, Analytics, Notifications, Collaboration ### ❌ **Ce qui doit être transformé** - **Interface actuelle** : Trop orientée "features" et "dashboard admin" - **Navigation** : Manque de cohérence avec les apps musicales modernes - **Expérience utilisateur** : Pas assez centrée sur la musique et la collaboration - **Flows utilisateurs** : Manque de parcours clairs pour les actions principales ### 🎯 **Objectif de transformation** Transformer Veza d'une "page de features" vers une **vraie application musicale** avec des parcours utilisateurs clairs et une expérience cohérente. --- ## 🎨 **Design System** ### **Palette de Couleurs** ``` Primaire : #6366F1 (Indigo) Secondaire : #8B5CF6 (Violet) Accent : #F59E0B (Ambre) Succès : #10B981 (Émeraude) Erreur : #EF4444 (Rouge) Avertissement : #F59E0B (Ambre) Info : #3B82F6 (Bleu) ``` ### **Typographie** ``` H1 : 48px - Titres principaux H2 : 36px - Sections H3 : 24px - Sous-sections H4 : 20px - Cartes Body : 16px - Texte principal Caption : 14px - Métadonnées ``` ### **Espacement** ``` xs : 4px sm : 8px md : 16px lg : 24px xl : 32px 2xl : 48px 3xl : 64px ``` ### **Bordures** ``` radius-sm : 4px radius-md : 8px radius-lg : 12px radius-xl : 16px ``` ### **Ombres** ``` shadow-sm : 0 1px 2px rgba(0, 0, 0, 0.05) shadow-md : 0 4px 6px rgba(0, 0, 0, 0.1) shadow-lg : 0 10px 15px rgba(0, 0, 0, 0.1) shadow-xl : 0 20px 25px rgba(0, 0, 0, 0.1) ``` --- ## 🧩 **Composants UI** ### **1. Navigation** #### **Header Principal** ``` [Logo Veza] [Recherche globale] [Notifications] [Profil utilisateur] ``` **Spécifications :** - Hauteur : 64px - Background : #1F2937 (gray-800) - Border bottom : 1px solid #374151 (gray-700) - Logo : 32px de hauteur - Recherche : Input avec icône, placeholder "Rechercher..." - Notifications : Badge avec compteur - Profil : Avatar + dropdown menu #### **Sidebar Principale** ``` 🏠 Accueil 🎵 Bibliothèque 🔍 Découverte 💬 Communauté 🎤 Studio 📊 Analytics 🛒 Marketplace 📚 Formation 📻 Radio ``` **Spécifications :** - Largeur : 256px - Background : #111827 (gray-900) - Border right : 1px solid #374151 (gray-700) - Items : 48px de hauteur, padding 16px - Hover : #374151 (gray-700) - Active : #6366F1 (indigo-500) - Icônes : 20px, espacement 12px avec texte #### **Mini-Player (Bottom Bar)** ``` [Cover] [Infos track] [Contrôles] [Volume] [Queue] [Full Player] ``` **Spécifications :** - Hauteur : 80px - Background : #1F2937 (gray-800) - Border top : 1px solid #374151 (gray-700) - Cover : 56px x 56px - Contrôles : Play/Pause, Previous, Next - Volume : Slider horizontal - Queue : Badge avec nombre de tracks ### **2. Cards et Conteneurs** #### **Track Card** ``` [Cover 64x64] [Titre] [Artiste] [Durée] [Actions] ``` **Spécifications :** - Padding : 16px - Border radius : 8px - Background : #1F2937 (gray-800) - Hover : #374151 (gray-700) - Cover : 64px x 64px, border radius 4px - Actions : Like, Share, More (3 dots) #### **Playlist Card** ``` [Cover 120x120] [Titre] [Description] [Nombre de tracks] [Actions] ``` **Spécifications :** - Padding : 16px - Border radius : 8px - Background : #1F2937 (gray-800) - Hover : #374151 (gray-700) - Cover : 120px x 120px, border radius 8px - Description : 2 lignes max, ellipsis #### **User Card** ``` [Avatar 48x48] [Nom] [Rôle] [Statut] [Actions] ``` **Spécifications :** - Padding : 16px - Border radius : 8px - Background : #1F2937 (gray-800) - Hover : #374151 (gray-700) - Avatar : 48px x 48px, border radius 50% - Statut : Badge coloré (online, offline, busy) ### **3. Boutons et Actions** #### **Bouton Primaire** ``` Background : #6366F1 (indigo-500) Text : #FFFFFF (white) Padding : 12px 24px Border radius : 8px Hover : #4F46E5 (indigo-600) ``` #### **Bouton Secondaire** ``` Background : transparent Text : #6366F1 (indigo-500) Border : 1px solid #6366F1 (indigo-500) Padding : 12px 24px Border radius : 8px Hover : #6366F1 (indigo-500) background ``` #### **Bouton Ghost** ``` Background : transparent Text : #9CA3AF (gray-400) Padding : 12px 24px Border radius : 8px Hover : #374151 (gray-700) background ``` ### **4. Formulaires** #### **Input Field** ``` Background : #1F2937 (gray-800) Border : 1px solid #374151 (gray-700) Text : #F9FAFB (gray-50) Placeholder : #9CA3AF (gray-400) Padding : 12px 16px Border radius : 8px Focus : #6366F1 (indigo-500) border ``` #### **Textarea** ``` Background : #1F2937 (gray-800) Border : 1px solid #374151 (gray-700) Text : #F9FAFB (gray-50) Placeholder : #9CA3AF (gray-400) Padding : 12px 16px Border radius : 8px Resize : vertical ``` #### **Select Dropdown** ``` Background : #1F2937 (gray-800) Border : 1px solid #374151 (gray-700) Text : #F9FAFB (gray-50) Padding : 12px 16px Border radius : 8px Dropdown : #111827 (gray-900) background ``` ### **5. Modales et Overlays** #### **Modal** ``` Background : rgba(0, 0, 0, 0.5) Content : #1F2937 (gray-800) Border radius : 12px Padding : 24px Max width : 500px Shadow : 0 20px 25px rgba(0, 0, 0, 0.1) ``` #### **Toast Notification** ``` Background : #1F2937 (gray-800) Border : 1px solid #374151 (gray-700) Text : #F9FAFB (gray-50) Padding : 16px Border radius : 8px Shadow : 0 10px 15px rgba(0, 0, 0, 0.1) Position : top-right ``` ### **6. Player Audio** #### **Player Principal** ``` Background : #111827 (gray-900) Border : 1px solid #374151 (gray-700) Padding : 24px Border radius : 12px ``` #### **Waveform** ``` Height : 60px Background : #1F2937 (gray-800) Wave color : #6366F1 (indigo-500) Progress color : #F59E0B (amber-500) Border radius : 4px ``` #### **Contrôles** ``` Play/Pause : 48px x 48px Previous/Next : 32px x 32px Volume : 24px x 24px Queue : 24px x 24px ``` --- ## 📱 **Pages et Layouts** ### **1. Page d'Accueil (Home)** ``` URL: / Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Hero Section** : 400px de hauteur, gradient background - **Tracks Populaires** : Carrousel horizontal, 4 tracks visibles - **Artistes en Vedette** : Grid 3x2, cards 200px de largeur - **Playlists Recommandées** : Grid 2x3, cards 300px de largeur - **Activité Récente** : Liste verticale, cards 100px de hauteur - **Tutoriels Populaires** : Grid 2x2, cards 250px de largeur - **Contests Actifs** : Bannière horizontale, 120px de hauteur - **Live Streams** : Carrousel horizontal, 3 streams visibles ### **2. Bibliothèque (Library)** ``` URL: /library Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Header avec filtres** : 80px de hauteur - **Mes Tracks** : Table avec colonnes (Cover, Titre, Artiste, Album, Durée, Actions) - **Playlists** : Grid 4x3, cards 200px de largeur - **Favoris** : Liste verticale, cards 80px de hauteur - **Historique** : Liste verticale, cards 80px de hauteur - **Téléchargements** : Liste verticale, cards 80px de hauteur - **Collaborations** : Grid 3x2, cards 250px de largeur - **Drafts** : Liste verticale, cards 80px de hauteur - **Archives** : Liste verticale, cards 80px de hauteur ### **3. Découverte (Discover)** ``` URL: /discover Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Filtres avancés** : Barre horizontale, 60px de hauteur - **Nouveautés** : Carrousel horizontal, 4 tracks visibles - **Tendances** : Carrousel horizontal, 4 tracks visibles - **Artistes Similaires** : Grid 4x2, cards 150px de largeur - **Genres** : Grid 3x3, cards 200px de largeur - **Mood** : Grid 2x4, cards 250px de largeur - **Événements** : Liste verticale, cards 120px de hauteur - **Charts** : Table avec colonnes (Position, Cover, Titre, Artiste, Durée, Actions) - **Radio** : Grid 2x3, cards 200px de largeur ### **4. Communauté (Community)** ``` URL: /community Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Salons de discussion** : Liste verticale, cards 100px de hauteur - **Directs** : Liste verticale, cards 80px de hauteur - **Groupes** : Grid 3x2, cards 200px de largeur - **Événements** : Liste verticale, cards 120px de hauteur - **Profils** : Grid 4x3, cards 150px de largeur - **Activité** : Feed vertical, cards 120px de hauteur - **Jam Sessions** : Grid 2x2, cards 250px de largeur - **Forums** : Liste verticale, cards 100px de hauteur ### **5. Studio (Studio)** ``` URL: /studio Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Projets** : Grid 3x2, cards 250px de largeur - **Collaboration** : Interface temps réel, 400px de hauteur - **Plugins** : Grid 4x3, cards 150px de largeur - **Mastering** : Interface de mastering, 300px de hauteur - **Templates** : Grid 3x3, cards 200px de largeur - **Exports** : Panel de configuration, 200px de hauteur - **Samples** : Grid 4x4, cards 100px de largeur - **Presets** : Grid 3x4, cards 150px de largeur ### **6. Analytics (Analytics)** ``` URL: /analytics Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Vue d'ensemble** : Dashboard avec métriques, 300px de hauteur - **Audience** : Graphiques interactifs, 400px de hauteur - **Engagement** : Graphiques interactifs, 400px de hauteur - **Revenus** : Graphiques interactifs, 400px de hauteur - **Comparaisons** : Tableaux comparatifs, 300px de hauteur - **Prédictions** : Graphiques prédictifs, 400px de hauteur - **Rapports** : Liste de rapports, 200px de hauteur - **A/B Testing** : Interface de tests, 300px de hauteur ### **7. Marketplace (Marketplace)** ``` URL: /marketplace Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Tracks** : Grid 3x4, cards 200px de largeur - **Samples** : Grid 4x4, cards 150px de largeur - **Presets** : Grid 3x4, cards 150px de largeur - **Services** : Grid 2x3, cards 250px de largeur - **Matériel** : Grid 3x3, cards 200px de largeur - **Licences** : Liste verticale, cards 100px de hauteur - **Contests** : Grid 2x2, cards 250px de largeur - **Formation** : Grid 3x2, cards 200px de largeur ### **8. Formation (Education)** ``` URL: /education Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Cours** : Grid 2x3, cards 300px de largeur - **Tutoriels** : Grid 3x3, cards 200px de largeur - **Workshops** : Grid 2x2, cards 250px de largeur - **Certifications** : Liste verticale, cards 120px de hauteur - **Mentorat** : Grid 3x2, cards 200px de largeur - **Projets** : Grid 2x3, cards 250px de largeur - **Communauté** : Feed vertical, cards 100px de hauteur - **Ressources** : Grid 4x3, cards 150px de largeur ### **9. Radio & Streaming (Radio)** ``` URL: /radio Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Live Streams** : Carrousel horizontal, 3 streams visibles - **Radio Stations** : Grid 3x3, cards 200px de largeur - **Podcasts** : Grid 2x3, cards 250px de largeur - **DJ Sets** : Grid 3x2, cards 200px de largeur - **Concerts** : Grid 2x2, cards 250px de largeur - **Émissions** : Liste verticale, cards 100px de hauteur - **Interactivité** : Chat en temps réel, 300px de hauteur - **Archives** : Liste verticale, cards 80px de hauteur ### **10. Profil (Profile)** ``` URL: /profile Layout: Header + Sidebar + Main Content + Mini-Player ``` **Sections :** - **Informations** : Card de profil, 200px de hauteur - **Statistiques** : Dashboard personnel, 300px de hauteur - **Portfolio** : Grid 3x3, cards 200px de largeur - **Paramètres** : Formulaire de configuration, 400px de hauteur - **Abonnements** : Liste des plans, 200px de hauteur - **Support** : Interface d'aide, 300px de hauteur - **Sécurité** : Configuration sécurité, 200px de hauteur - **Intégrations** : Liste des connexions, 200px de hauteur --- ## 📱 **Responsive Design** ### **Breakpoints** ``` Mobile : 320px - 768px Tablet : 768px - 1024px Desktop : 1024px - 1440px Large Desktop : 1440px+ ``` ### **Mobile Adaptations** - **Sidebar** : Drawer coulissant - **Header** : Hauteur réduite à 56px - **Cards** : Largeur 100%, padding réduit - **Grids** : 1 colonne sur mobile, 2 sur tablet - **Player** : Contrôles simplifiés ### **Tablet Adaptations** - **Sidebar** : Largeur réduite à 200px - **Grids** : 2-3 colonnes selon le contenu - **Cards** : Taille intermédiaire - **Player** : Contrôles complets ### **Desktop Adaptations** - **Sidebar** : Largeur complète 256px - **Grids** : 3-4 colonnes selon le contenu - **Cards** : Taille complète - **Player** : Toutes les fonctionnalités --- ## 🎨 **Animations et Transitions** ### **Transitions de base** ``` Duration : 200ms Easing : ease-in-out ``` ### **Hover Effects** ``` Scale : 1.02 Shadow : +1 level Background : +1 level ``` ### **Loading States** ``` Skeleton : 2s animation Spinner : 1s rotation Progress : 0-100% animation ``` ### **Page Transitions** ``` Fade : 300ms Slide : 300ms Scale : 300ms ``` --- ## 🚀 **Roadmap d'Implémentation UI** ### **Phase 1 : Design System (1-2 semaines)** - [ ] Création des composants de base - [ ] Définition de la palette de couleurs - [ ] Typographie et espacement - [ ] Icônes et illustrations - [ ] Animations de base ### **Phase 2 : Navigation (2-3 semaines)** - [ ] Header principal - [ ] Sidebar navigation - [ ] Mini-player - [ ] Responsive navigation - [ ] États actifs et hover ### **Phase 3 : Pages Principales (3-4 semaines)** - [ ] Page d'accueil - [ ] Bibliothèque - [ ] Découverte - [ ] Communauté - [ ] Studio ### **Phase 4 : Pages Secondaires (4-5 semaines)** - [ ] Analytics - [ ] Marketplace - [ ] Formation - [ ] Radio - [ ] Profil ### **Phase 5 : Responsive (5-6 semaines)** - [ ] Mobile adaptations - [ ] Tablet adaptations - [ ] Desktop optimizations - [ ] Cross-browser testing ### **Phase 6 : Polish (6-8 semaines)** - [ ] Animations avancées - [ ] Micro-interactions - [ ] Performance optimizations - [ ] Accessibility improvements --- ## 📊 **Métriques de Succès UI** ### **Performance** - Temps de chargement < 2s - First Contentful Paint < 1s - Largest Contentful Paint < 2.5s - Cumulative Layout Shift < 0.1 ### **Accessibilité** - Score WCAG AA - Navigation clavier - Screen reader compatibility - Color contrast ratio > 4.5:1 ### **Utilisabilité** - Taux de conversion - Temps de tâche - Taux d'erreur - Satisfaction utilisateur ### **Technique** - Bundle size < 500KB - Lighthouse score > 90 - Cross-browser compatibility - Mobile performance --- ## 🎯 **Conclusion** Ce plan UI transforme Veza en une **véritable application musicale** avec un design system cohérent, des composants réutilisables et une expérience utilisateur optimisée. **Points clés :** - ✅ Design system complet et cohérent - ✅ Composants réutilisables et modulaires - ✅ Responsive design multi-plateforme - ✅ Animations et micro-interactions - ✅ Accessibilité et performance - ✅ Expérience utilisateur optimisée **Prochaines étapes :** 1. Création des composants de base 2. Développement des pages principales 3. Tests utilisateurs et itérations 4. Optimisations et polish final --- *Document créé le 2024-01-15 - Veza Platform UI Team*