15 KiB
15 KiB
🎨 Design System - Class Dashboard
Guide complet du design et des composants visuels pour la page de présentation de classe
Version : 2.0 - Janvier 2025
Expertise : UI/UX Designer
🎯 Philosophie Design
Le Class Dashboard suit une approche Mobile-First avec une hiérarchie visuelle claire et des micro-interactions soignées. Le design privilégie la lisibilité des données statistiques tout en maintenant une esthétique moderne et accessible.
Principes Directeurs
- Clarté de l'information : Hiérarchie visuelle marquée pour les données importantes
- Cohérence systémique : Components réutilisables avec variations d'état
- Performance visuelle : Animations fluides optimisées pour 60fps
- Accessibilité universelle : Contraste élevé, navigation clavier, screen readers
- Progressive enhancement : Dégradation gracieuse selon les capacités device
🎨 Design System Global
Palette de Couleurs
Couleurs Primaires
- Bleu Principal :
#3B82F6- Actions principales, liens actifs - Indigo Accent :
#6366F1- Gradients hero, éléments premium - Orange Highlight :
#F97316- Métriques principales, call-to-action - Gris Neutre :
#6B7280- Textes secondaires, borders subtiles
Couleurs Sémantiques
- Succès (Vert) :
#10B981- Évaluations terminées, excellentes performances - Attention (Jaune) :
#F59E0B- En cours, performances moyennes - Erreur (Rouge) :
#EF4444- Non commencées, performances faibles - Information (Bleu) :
#3B82F6- Notifications neutres, help tooltips
Couleurs de Performance
- Excellence (>16/20) : Vert saturé
#059669 - Bon niveau (12-16/20) : Bleu confiance
#2563EB - Moyen (8-12/20) : Orange attention
#EA580C - Insuffisant (<8/20) : Rouge alerte
#DC2626
Typographie
Hiérarchie des Titres
- H1 Dashboard :
text-3xl font-bold(30px) - Titre principal classe - H2 Sections :
text-2xl font-bold(24px) - Domaines, Compétences - H3 Cards :
text-lg font-semibold(18px) - Titres de cartes - H4 Metrics :
text-xl font-bold(20px) - Valeurs statistiques importantes
Corps de Texte
- Body Principal :
text-base(16px) - Texte standard lisible - Body Secondaire :
text-sm text-gray-600(14px) - Métadonnées, descriptions - Micro-données :
text-xs text-gray-500(12px) - Labels, unités de mesure - Labels UI :
text-sm font-medium(14px) - Formulaires, boutons
Système d'Espacement
Grille de Base
- Base unit : 4px (0.25rem)
- Spacing scale : 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px
- TailwindCSS mapping : p-1, p-2, p-3, p-4, p-6, p-8, p-12, p-16
Règles d'Application
- Cards padding :
p-6(24px) pour confort de lecture - Grid gaps :
gap-6(24px) entre cards principales,gap-4(16px) pour contenus - Sections margin :
mb-8(32px) séparation des grandes sections - Micro-spacing :
space-y-2(8px) entre éléments liés
🏗️ Architecture Visuelle
Layout Principal
Structure Hiérarchique
Hero Section (100vw, gradient background)
├── Container max-width centré (1200px desktop)
├── Grid responsive principal
└── Breadcrumb navigation
Statistics Grid (4 colonnes desktop → 1 colonne mobile)
├── Cards principales avec shadow elevation
├── Hover states avec scale léger
└── Loading skeleton structure
Content Sections (2 colonnes desktop → 1 colonne mobile)
├── Domaines dynamiques
├── Compétences adaptatives
└── Empty states informatifs
Grille Responsive
- Desktop (lg+) :
grid-cols-4puisgrid-cols-2pour sections - Tablet (md) :
grid-cols-2puis stack vertical sections - Mobile (sm) :
grid-cols-1stack complet avec optimisations tactiles
Elevation et Profondeur
Système de Shadows
- Level 0 : Pas de shadow - éléments intégrés
- Level 1 :
shadow-sm- Borders légères, separators - Level 2 :
shadow-md- Cards au repos, conteneurs - Level 3 :
shadow-lg- Cards hover, modals - Level 4 :
shadow-xl- Overlays, tooltips flottants
🧩 Composants Principaux
Hero Section
Structure Visuelle
- Background gradient :
bg-gradient-to-br from-blue-50 to-indigo-100 - Corner radius :
rounded-xl(12px) pour modernité - Padding responsive :
p-6mobile →p-8desktop - Content layout : Flexbox justify-between pour distribution
Éléments Constitutifs
- Titre classe : Typographie H1 avec
text-gray-900pour contrast élevé - Description : Text secondaire
text-gray-600avec line-height optimisé - Selector trimestre : Form control avec focus states personnalisés
Statistics Cards
Card Container Base
- Background :
bg-whitepure pour lisibilité maximale - Border radius :
rounded-xlcohérent avec hero - Shadow :
shadow-mdau repos,shadow-lgau hover - Padding :
p-6pour breathing room optimal - Transition :
transition-all duration-300pour fluidité
Variantes par Type
Card Quantité :
- Layout : Stack vertical avec
space-y-3 - Metrics display : Flex justify-between pour alignement
- Color coding : Vert/Orange/Rouge selon statut
- Typography : Labels text-sm, valeurs font-bold
Card Résultats :
- Hero metric : Centre avec
text-3xl font-bold - Supporting data : Grid 2x2 pour min/max/médiane/écart-type
- Color emphasis : Orange pour métrique principale
- Micro-data : Nombre d'évaluations en text-xs
Dynamic Cards (Domaines/Compétences)
Layout Structure
- Header : Flex justify-between avec titre tronqué si nécessaire
- Content area : Métriques avec
space-y-2 - Footer : Progress bar full-width avec animation
Progress Bar Design
- Container :
w-full bg-gray-200 rounded-full h-2 - Fill bar : Couleur contextuelle,
transition-all duration-1000 ease-out - Animation : Width de 0% à target% avec délai séquentiel
- Accessibility : Attributes ARIA pour screen readers
Interactive Elements
Trimester Selector
- Base style : Form select avec custom styling
- Focus state : Ring blue pour accessibilité
- Options : Clear labeling avec noms complets trimestres
- Mobile optimization : Touch-friendly size (44px minimum)
Loading States
- Skeleton cards :
animate-pulse bg-gray-200avec forme cards - Spinners :
animate-spinavec couleurs contextuelles - Overlay : Semi-transparent avec pointer-events disabled
- Text feedback : Messages informatifs pendant chargement
🎬 Animations et Micro-interactions
Système de Transitions
Durées Standard
- Ultra-fast : 150ms - Hover states, focus indicators
- Fast : 300ms - Cards transforms, color changes
- Normal : 500ms - Layout changes, section updates
- Slow : 800ms - Progress bars, number animations
- Extra-slow : 1000ms - Page transitions, major state changes
Easing Functions
- ease-out : Transitions d'entrée naturelles
- ease-in-out : Hover states bidirectionnels
- cubic-bezier : Custom curves pour animations complexes
Animation Patterns
Cards Introduction
- Stagger animation : Délais de 50ms entre cards (0ms, 50ms, 100ms...)
- Transform entrance :
translateY(20px)→translateY(0) - Opacity fade :
opacity-0→opacity-1 - Duration : 300ms avec ease-out
Number Animations
- RequestAnimationFrame : Pour fluidité 60fps
- Easing : Cubic ease-out pour décélération naturelle
- Precision : Arrondi approprié selon type donnée
- Accessibility : Respecte prefers-reduced-motion
Progress Bars
- Sequential reveal : Chaque barre après la précédente
- Smooth width transition : 0% à valeur cible
- Color morphing : Transition couleurs selon performance
- Completion feedback : Micro-animation de fin
📱 Design Responsive et Mobile
Breakpoints Strategy
Mobile-First Approach
- Base (sm) : 0px - Design pour mobile d'abord
- Tablet (md) : 768px - Adaptations pour tablettes
- Desktop (lg) : 1024px - Layout multi-colonnes
- Wide (xl) : 1280px - Optimisations grands écrans
Mobile Optimizations
Touch Targets
- Minimum size : 44px × 44px pour confort tactile
- Spacing : 8px minimum entre targets adjacents
- Visual feedback : Ripple effects, highlight states
- Gestures : Swipe support pour navigation
Content Adaptation
- Typography scaling : Tailles adaptées par breakpoint
- Grid collapse : 4-col → 2-col → 1-col progressif
- Padding reduction : p-6 → p-4 sur petits écrans
- Navigation : Collapse/expand patterns
Desktop Enhancements
Hover States
- Cards elevation : Shadow-md → shadow-lg
- Scale subtle : transform scale(1.02) pour depth
- Color intensification : Couleurs légèrement plus saturées
- Cursor indicators : Pointer, grab selon interaction
Layout Expansions
- Multi-column : Exploitation largeur disponible
- Sidebar potential : Space pour navigation secondaire
- Modal overlays : Interactions riches avec overlays
- Keyboard shortcuts : Support touches rapides
♿ Accessibilité Visuelle
Contraste et Lisibilité
WCAG 2.1 Compliance
- AA Level : Ratio 4.5:1 pour texte normal
- AAA Level : Ratio 7:1 pour texte critique
- Large text : Ratio 3:1 pour text-lg+
- UI elements : Ratio 3:1 pour borders, icons
Color Blindness Support
- Pas de couleur seule : Information via forme/texte aussi
- Patterns distinctifs : Textures, icons pour différenciation
- High contrast mode : Adaptation système preferences
- Alternative indicators : Icons + couleur pour statuts
Navigation et Focus
Keyboard Navigation
- Focus visible : Ring blue claire sur tous éléments
- Tab order : Logique de lecture naturelle
- Skip links : Navigation rapide aux contenus principaux
- Keyboard shortcuts : Raccourcis pour actions communes
Screen Reader Support
- ARIA labels : Descriptions complètes pour contexts
- Live regions : Annonces mises à jour dynamiques
- Landmark roles : Structure sémantique claire
- Alt texts : Descriptions images/graphiques
Motion et Animation
Prefers-Reduced-Motion
- Detection system :
@media (prefers-reduced-motion: reduce) - Animation disable : Transitions instantanées si demandé
- Alternative feedback : Visual sans animation
- Graceful degradation : Fonctionnalités préservées
🔧 Guidelines d'Implémentation
Classes TailwindCSS Recommandées
Structure Cards
- Container :
bg-white rounded-xl shadow-md p-6 hover:shadow-lg transition-all duration-300 - Title :
text-lg font-semibold text-gray-800 mb-4 - Content :
space-y-3pour espacement vertical cohérent - Footer :
mt-4 pt-4 border-t border-gray-100si nécessaire
Typography Hierarchy
- Page title :
text-3xl font-bold text-gray-900 mb-2 - Section headers :
text-2xl font-bold text-gray-900 mb-6 - Metrics large :
text-xl font-bold text-{color}-600 - Supporting text :
text-sm text-gray-600
Interactive States
- Hover cards :
hover:scale-105 hover:shadow-lg - Focus elements :
focus:ring-2 focus:ring-blue-500 focus:outline-none - Active buttons :
active:scale-95 active:bg-{color}-600 - Disabled states :
disabled:opacity-50 disabled:cursor-not-allowed
Animation Implementation
CSS Transitions
- Default :
transition-all duration-300 ease-out - Colors only :
transition-colors duration-200 - Transform only :
transition-transform duration-300 - Custom timing :
transition-[property] duration-[time]
Custom Animations
- Fade in up : Entrée cards avec transform + opacity
- Pulse : Loading states avec scale animation
- Slide : Navigation transitions avec translateX
- Bounce : Feedback succès avec scale + elasticity
📊 Métriques de Qualité Design
Performance Visuelle
- First Contentful Paint : < 1.8s pour première impression
- Largest Contentful Paint : < 2.5s pour contenu principal
- Cumulative Layout Shift : < 0.1 pour stabilité visuelle
- Animation framerate : 60fps constant pour fluidité
Accessibilité
- Color contrast : 100% compliance WCAG AA
- Keyboard navigation : Tous éléments accessibles
- Screen reader : Contenu 100% navigable
- Touch targets : 44px minimum respecté
Responsive Quality
- Mobile usability : Score Google 100/100
- Cross-browser : Compatibilité IE11+ garantie
- Device coverage : iPhone SE à desktop 4K
- Touch optimization : Gestures naturels supportés
🚀 Évolutions Futures
Dark Theme
- Color palette : Variables CSS pour switch automatique
- Contrast adaptation : Niveaux ajustés pour dark mode
- Media query :
@media (prefers-color-scheme: dark) - Toggle manual : Contrôle utilisateur avec persistence
Advanced Interactions
- Drag & drop : Réorganisation cards personnalisée
- Chart overlays : Graphiques détaillés en modal
- Bulk actions : Sélection multiple avec toolbar
- Real-time updates : WebSocket pour données live
Micro-animations Avancées
- Morphing numbers : Transitions chiffres plus fluides
- Particle effects : Célébrations achievements
- Parallax subtle : Depth effect sur scroll
- Physics-based : Spring animations réalistes
🎯 Checklist Qualité Design
Avant Déploiement
- Contraste colors vérifié WCAG AA
- Navigation clavier testée complète
- Responsive validé sur tous breakpoints
- Performance animations 60fps confirmé
- Cross-browser testé Chrome/Firefox/Safari/Edge
- Touch targets 44px minimum respectés
- Loading states tous scenarios couverts
- Error states feedback utilisateur clair
Maintenance Continue
- Design tokens mis à jour si évolutions
- Component library synchronisée
- Documentation à jour avec changes
- Accessibility audit périodique
- Performance monitoring métriques suivies
- User feedback intégré dans itérations
📚 Ressources Design
Assets et Outils
- Color palette : Variables CSS dans design-system.css
- Icons : FontAwesome 6 pour cohérence
- Fonts : System fonts stack pour performance
- Images : Formats WebP avec fallback PNG
Documentation Technique
- Storybook : Catalogue composants interactifs
- Design tokens : Variables Figma → CSS automation
- Style guide : Guidelines équipe développement
- Pattern library : Composants réutilisables documentés
Documentation réalisée avec expertise UI/UX Designer
Version 2.0 - Janvier 2025 - Notytex Design System 🎨