# 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: `