# Migration vers Material-UI (MUI) ## Changements Effectués ### 1. Installation des Dépendances ```bash npm install @mui/material @mui/icons-material @emotion/react @emotion/styled ``` Packages installés: - `@mui/material` - Composants Material-UI - `@mui/icons-material` - Icônes Material Design - `@emotion/react` - Styling engine requis - `@emotion/styled` - Styled components ### 2. Configuration du Thème **Fichier**: `apps/web/src/theme.ts` Thème personnalisé créé avec: - Palette de couleurs (primary: bleu, secondary: violet) - Typography (Roboto font family) - Components overrides (buttons, cards, paper) - Border radius: 8px ### 3. Point d'Entrée Principal **Fichier**: `apps/web/src/main.tsx` Ajout du ThemeProvider et CssBaseline: ```typescript import { ThemeProvider } from '@mui/material/styles' import CssBaseline from '@mui/material/CssBaseline' import { theme } from './theme' ``` ### 4. Dashboard Refactorisé **Fichier**: `apps/web/src/components/Dashboard.tsx` Remplacement complet avec MUI: - **AppBar** + **Toolbar** au lieu du header Tailwind - **Container** pour le layout responsive - **Paper** pour les cartes (remplace les divs avec shadow) - **Typography** pour tout le texte - **Alert** pour les notifications d'erreur - **Stack** pour l'espacement vertical - **Box** avec flexbox pour le layout Composants MUI utilisés: - `AppBar` - Barre de navigation en haut - `Toolbar` - Contenu de l'AppBar - `Container` - Conteneur responsive (maxWidth="xl") - `Paper` - Cartes avec elevation (ombres) - `Typography` - Tous les textes (variant: h6, caption, body2) - `Alert` - Notifications d'erreur - `IconButton` - Boutons avec icônes - `Divider` - Séparateurs horizontaux - `Stack` - Layout vertical avec spacing - `Box` - Conteneur flex personnalisé Icons utilisés: - `ScienceIcon` - Icône science dans l'AppBar - `CloseIcon` - Fermer les alertes ## État Actuel ### ✅ Migré vers MUI: 1. Dashboard (layout principal) 2. Thème configuré 3. Point d'entrée avec ThemeProvider ### ⏳ Encore en Tailwind CSS: Les composants suivants utilisent encore Tailwind et doivent être convertis: 1. **ScenarioSelector** (`apps/web/src/components/simulation/ScenarioSelector.tsx`) - À convertir: `` + `` - Classes Tailwind → sx props 2. **ParameterPanel** (`apps/web/src/components/simulation/ParameterPanel.tsx`) - À convertir: `` → MUI `` - Boutons → MUI `