12 KiB
12 KiB
| id | title | sidebar_label |
|---|---|---|
| figma-components | 🧩 Composants Figma - Veza Platform | 🧩 Composants Figma - Veza Platform |
NOTE: Cette page décrit la CIBLE (but visé).
🧩 Composants Figma - Veza Platform
Spécifications détaillées des composants pour la réalisation Figma
📋 Structure des Composants
1. Navigation Components
Header Principal
Nom: Header
Variants: Default, Mobile
Spécifications :
- Container : 1440px x 64px
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Padding : 0 24px
Éléments :
- Logo : 32px x 32px, left align
- Recherche : Input 400px x 40px, center
- Notifications : Icon 24px + badge, right align
- Profil : Avatar 32px + dropdown, right align
States :
- Default
- Hover (notifications, profil)
- Active (recherche focus)
- Mobile (drawer open)
Sidebar Navigation
Nom: Sidebar
Variants: Default, Collapsed, Mobile
Spécifications :
- Container : 256px x 100vh
- Background : #111827 (gray-900)
- Border : 1px solid #374151 (gray-700)
- Padding : 24px 0
Éléments :
- Logo : 32px x 32px, top
- Navigation Items : 9 items, 48px height each
- User Section : bottom, 80px height
States :
- Default (expanded)
- Collapsed (64px width)
- Mobile (drawer)
- Hover (item highlight)
- Active (item selected)
Mini-Player
Nom: MiniPlayer
Variants: Default, Playing, Paused
Spécifications :
- Container : 100% x 80px
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Padding : 12px 24px
Éléments :
- Cover : 56px x 56px, left
- Track Info : Title + Artist, center-left
- Controls : Play/Pause, Previous, Next, center
- Volume : Slider, center-right
- Queue : Icon + count, right
- Full Player : Icon, right
States :
- Default (no track)
- Playing (track loaded)
- Paused (track paused)
- Loading (spinner)
2. Card Components
Track Card
Nom: TrackCard
Variants: Default, Hover, Playing, Selected
Spécifications :
- Container : 100% x 80px
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Border Radius : 8px
- Padding : 16px
Éléments :
- Cover : 64px x 64px, left
- Track Info : Title + Artist, center-left
- Duration : Time, center-right
- Actions : Like, Share, More, right
States :
- Default
- Hover (#374151 background)
- Playing (accent border)
- Selected (primary background)
- Loading (skeleton)
Playlist Card
Nom: PlaylistCard
Variants: Default, Hover, Selected
Spécifications :
- Container : 200px x 280px
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Border Radius : 8px
- Padding : 16px
Éléments :
- Cover : 120px x 120px, top
- Title : Playlist name, center
- Description : 2 lines max, center
- Track Count : Number + "tracks", center
- Actions : Play, More, bottom
States :
- Default
- Hover (scale 1.02)
- Selected (primary border)
- Loading (skeleton)
User Card
Nom: UserCard
Variants: Default, Hover, Online, Offline, Busy
Spécifications :
- Container : 100% x 100px
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Border Radius : 8px
- Padding : 16px
Éléments :
- Avatar : 48px x 48px, left
- Name : User name, center-left
- Role : User role, center-left
- Status : Badge, center-right
- Actions : Follow, Message, right
States :
- Default
- Hover (#374151 background)
- Online (green badge)
- Offline (gray badge)
- Busy (red badge)
3. Button Components
Primary Button
Nom: ButtonPrimary
Variants: Default, Hover, Active, Disabled, Loading
Spécifications :
- Background : #6366F1 (indigo-500)
- Text : #FFFFFF (white)
- Padding : 12px 24px
- Border Radius : 8px
- Font : 16px, Semibold
States :
- Default
- Hover (#4F46E5 background)
- Active (scale 0.98)
- Disabled (opacity 50%)
- Loading (spinner)
Secondary Button
Nom: ButtonSecondary
Variants: Default, Hover, Active, Disabled
Spécifications :
- Background : transparent
- Text : #6366F1 (indigo-500)
- Border : 1px solid #6366F1 (indigo-500)
- Padding : 12px 24px
- Border Radius : 8px
- Font : 16px, Semibold
States :
- Default
- Hover (indigo background)
- Active (scale 0.98)
- Disabled (opacity 50%)
Ghost Button
Nom: ButtonGhost
Variants: Default, Hover, Active, Disabled
Spécifications :
- Background : transparent
- Text : #9CA3AF (gray-400)
- Padding : 12px 24px
- Border Radius : 8px
- Font : 16px, Semibold
States :
- Default
- Hover (#374151 background)
- Active (scale 0.98)
- Disabled (opacity 50%)
4. Form Components
Input Field
Nom: InputField
Variants: Default, Focus, Error, Disabled, With Icon
Spécifications :
- Container : 100% x 48px
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Text : #F9FAFB (gray-50)
- Placeholder : #9CA3AF (gray-400)
- Padding : 12px 16px
- Border Radius : 8px
- Font : 16px, Regular
States :
- Default
- Focus (#6366F1 border)
- Error (#EF4444 border)
- Disabled (opacity 50%)
- With Icon (left padding 40px)
Textarea
Nom: Textarea
Variants: Default, Focus, Error, Disabled
Spécifications :
- Container : 100% x 120px (min)
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Text : #F9FAFB (gray-50)
- Placeholder : #9CA3AF (gray-400)
- Padding : 12px 16px
- Border Radius : 8px
- Font : 16px, Regular
- Resize : vertical
States :
- Default
- Focus (#6366F1 border)
- Error (#EF4444 border)
- Disabled (opacity 50%)
Select Dropdown
Nom: SelectDropdown
Variants: Default, Open, Disabled
Spécifications :
- Container : 100% x 48px
- Background : #1F2937 (gray-800)
- Border : 1px solid #374151 (gray-700)
- Text : #F9FAFB (gray-50)
- Padding : 12px 16px
- Border Radius : 8px
- Font : 16px, Regular
- Dropdown : #111827 (gray-900) background
States :
- Default
- Open (dropdown visible)
- Disabled (opacity 50%)
5. Modal Components
Modal
Nom: Modal
Variants: Default, Large, Small
Spécifications :
- Overlay : rgba(0, 0, 0, 0.5)
- Content : #1F2937 (gray-800)
- Border Radius : 12px
- Padding : 24px
- Max Width : 500px (default), 800px (large), 400px (small)
- Shadow : 0 20px 25px rgba(0, 0, 0, 0.1)
Éléments :
- Header : Title + Close button
- Body : Content area
- Footer : Actions (buttons)
States :
- Default
- Large (800px width)
- Small (400px width)
- Loading (spinner)
Toast Notification
Nom: Toast
Variants: Success, Error, Warning, Info
Spécifications :
- Container : 400px x 80px
- 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
States :
- Success (green accent)
- Error (red accent)
- Warning (yellow accent)
- Info (blue accent)
6. Player Components
Full Player
Nom: FullPlayer
Variants: Default, Playing, Paused, Loading
Spécifications :
- Container : 100% x 400px
- Background : #111827 (gray-900)
- Border : 1px solid #374151 (gray-700)
- Border Radius : 12px
- Padding : 24px
Éléments :
- Cover : 200px x 200px, left
- Track Info : Title + Artist + Album, center-left
- Controls : Play/Pause, Previous, Next, center
- Progress : Waveform + time, center
- Volume : Slider + icon, center-right
- Queue : List + count, right
States :
- Default (no track)
- Playing (track loaded)
- Paused (track paused)
- Loading (spinner)
Waveform
Nom: Waveform
Variants: Default, Playing, Paused, Loading
Spécifications :
- Container : 100% x 60px
- Background : #1F2937 (gray-800)
- Wave Color : #6366F1 (indigo-500)
- Progress Color : #F59E0B (amber-500)
- Border Radius : 4px
- Padding : 8px
States :
- Default (static)
- Playing (animated)
- Paused (static with progress)
- Loading (skeleton)
7. Icon Components
Navigation Icons
Nom: IconNav
Variants: Home, Library, Discover, Community, Studio, Analytics, Marketplace, Education, Radio
Spécifications :
- Size : 20px x 20px
- Color : #9CA3AF (gray-400)
- Active Color : #6366F1 (indigo-500)
- Hover Color : #F9FAFB (gray-50)
Action Icons
Nom: IconAction
Variants: Play, Pause, Previous, Next, Like, Share, More, Search, Notification, Profile
Spécifications :
- Size : 24px x 24px
- Color : #9CA3AF (gray-400)
- Hover Color : #F9FAFB (gray-50)
- Active Color : #6366F1 (indigo-500)
Status Icons
Nom: IconStatus
Variants: Online, Offline, Busy, Loading, Success, Error, Warning, Info
Spécifications :
- Size : 16px x 16px
- Online : #10B981 (emerald-500)
- Offline : #6B7280 (gray-500)
- Busy : #EF4444 (red-500)
- Loading : #6366F1 (indigo-500)
🎨 Variables et Styles
1. Color Variables
Primary: #6366F1
Secondary: #8B5CF6
Accent: #F59E0B
Success: #10B981
Error: #EF4444
Warning: #F59E0B
Info: #3B82F6
Gray-50: #F9FAFB
Gray-100: #F3F4F6
Gray-200: #E5E7EB
Gray-300: #D1D5DB
Gray-400: #9CA3AF
Gray-500: #6B7280
Gray-600: #4B5563
Gray-700: #374151
Gray-800: #1F2937
Gray-900: #111827
2. Typography Styles
H1: 48px, Bold, Line Height 1.2
H2: 36px, Bold, Line Height 1.3
H3: 24px, Semibold, Line Height 1.4
H4: 20px, Semibold, Line Height 1.4
Body: 16px, Regular, Line Height 1.5
Caption: 14px, Regular, Line Height 1.4
Small: 12px, Regular, Line Height 1.3
3. Spacing Variables
xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 32px
2xl: 48px
3xl: 64px
4xl: 96px
5xl: 128px
4. Border Radius Variables
radius-sm: 4px
radius-md: 8px
radius-lg: 12px
radius-xl: 16px
radius-2xl: 24px
radius-full: 9999px
🚀 Plan d'Implémentation
Phase 1 : Setup (1 jour)
- Création des variables de couleur
- Setup de la typographie
- Création des styles de base
- Organisation des composants
Phase 2 : Composants de Base (2-3 jours)
- Boutons (Primary, Secondary, Ghost)
- Formulaires (Input, Textarea, Select)
- Cards (Track, Playlist, User)
- Modales (Modal, Toast)
Phase 3 : Navigation (1-2 jours)
- Header principal
- Sidebar navigation
- Mini-player
- Mobile navigation
Phase 4 : Player (1-2 jours)
- Full player
- Waveform
- Contrôles
- Queue
Phase 5 : Icons (1 jour)
- Navigation icons
- Action icons
- Status icons
- Social icons
Phase 6 : States et Interactions (1-2 jours)
- Hover states
- Active states
- Loading states
- Error states
📊 Checklist de Validation
Design System
- Variables de couleur cohérentes
- Typographie uniforme
- Espacement cohérent
- Bordures et rayons uniformes
Composants
- Tous les variants créés
- States complets
- Interactions définies
- Responsive adapté
Accessibilité
- Contrastes respectés
- Tailles de touch targets
- Navigation clavier
- Screen reader friendly
Performance
- Composants optimisés
- Assets légers
- Variables utilisées
- Styles réutilisables
Document créé le 2024-01-15 - Veza Platform Design Team