Remove obsolete tests and add new login page layout

- Deleted test files for NavLink, Navbar, NavbarBrand, Progress, Row, SearchBar, Select, Spinner, Textarea, and a basic test for Button.
- Introduced a new EmptyLayout component for consistent layout structure.
- Added a new login page with a layout that includes a login form and an ASCII art header.
- Updated CSS variables for improved styling consistency across components.
- Removed Vitest configuration file as it is no longer needed.
This commit is contained in:
2025-08-08 21:21:42 +00:00
parent f801c96c96
commit 4242851f9c
50 changed files with 6115 additions and 2912 deletions

View File

@ -5,7 +5,7 @@ Une plateforme de streaming moderne pour films et séries, construite avec **Ast
## ✨ Fonctionnalités
- 🎨 **Design System complet** avec thème sombre et couleurs violet pastel
- 📱 **Responsive** avec système de grille flexbox (Bootstrap-like)
- 📱 **Responsive** avec système de grille flexbox (Bootstrap-like)
- 🧩 **Composants UI auto-contenus** avec styles scoped
-**Performance optimisée** avec styles scoped par composant
- 🎭 **Composants spécialisés** pour le streaming (MovieCard, SearchBar)
@ -43,6 +43,7 @@ Une plateforme de streaming moderne pour films et séries, construite avec **Ast
## 🎨 Design System
### Couleurs
- **Couleur principale** : Violet pastel (`--primary-*`)
- **Thème sombre** avec nuances de gris
- **Couleurs sémantiques** : success, warning, error, info
@ -50,6 +51,7 @@ Une plateforme de streaming moderne pour films et séries, construite avec **Ast
### Composants disponibles
#### Composants de base
- **Button** - Boutons avec variantes (primary, secondary, outline, ghost)
- **Badge** - Badges colorés
- **Alert** - Alertes contextuelles
@ -57,36 +59,44 @@ Une plateforme de streaming moderne pour films et séries, construite avec **Ast
- **Progress** - Barres de progression
#### Composants de formulaire
- **Input** - Champs de saisie
- **Textarea** - Zones de texte
- **Select** - Listes déroulantes
- **FormGroup/FormLabel/FormError** - Éléments de formulaire
#### Composants de mise en page
- **Container** - Conteneur responsive
- **Row/Col** - Système de grille avec breakpoints (xs, sm, md, lg, xl, xxl)
- **Card** - Cartes avec header/body/footer
#### Composants de navigation
- **Navbar** - Barre de navigation
- **Modal** - Modales avec backdrop
- **Dropdown** - Menus déroulants
#### Composants spécialisés streaming
- **MovieCard** - Cartes pour films/séries avec poster, titre, rating
- **SearchBar** - Barre de recherche avec icône
## 🏗️ Architecture des Composants
### Composition et réutilisation
Les composants sont conçus pour être composés ensemble :
- **SearchBar** utilise le composant **Input** avec des styles personnalisés
- **MovieCard** compose avec le composant **Card** de base
- **ModalHeader** utilise le composant **Button** pour la fermeture
- Classes `.form-control-base` partagées entre Input, Select et Textarea
### Styles scoped
Chaque composant contient ses propres styles avec `<style>` scoped :
- Isolation CSS automatique par Astro
- Utilisation de `:global()` pour styler les composants importés
- Variables CSS globales disponibles dans tous les composants
@ -94,6 +104,7 @@ Chaque composant contient ses propres styles avec `<style>` scoped :
## 🚀 Utilisation des Composants
### Exemple basique
```astro
---
import Button from '../components/ui/Button.astro';
@ -111,6 +122,7 @@ import CardBody from '../components/ui/CardBody.astro';
```
### Système de grille
```astro
---
import Container from '../components/ui/Container.astro';
@ -131,6 +143,7 @@ import Col from '../components/ui/Col.astro';
```
### MovieCard pour le streaming
```astro
---
import MovieCard from '../components/ui/MovieCard.astro';
@ -150,8 +163,8 @@ import MovieCard from '../components/ui/MovieCard.astro';
Toutes les commandes sont exécutées depuis la racine du projet :
| Commande | Action |
| :------------------------ | :----------------------------------------------- |
| Commande | Action |
| :------------------------ | :---------------------------------------------- |
| `npm install` | Installe les dépendances |
| `npm run dev` | Démarre le serveur de dev sur `localhost:4321` |
| `npm run build` | Build le site pour la production dans `./dist/` |
@ -162,12 +175,14 @@ Toutes les commandes sont exécutées depuis la racine du projet :
## 🎯 Développement
### Ajouter un nouveau composant
1. Créer le composant Astro dans `src/components/ui/`
2. Intégrer les styles directement dans le composant avec `<style>`
3. Utiliser les variables CSS globales et classes utilitaires disponibles
4. Composer avec les composants existants quand possible
### Variables CSS disponibles
- `--primary-*` : Couleurs principales (violet pastel)
- `--bg-*` : Couleurs de fond (thème sombre)
- `--text-*` : Couleurs de texte
@ -176,6 +191,7 @@ Toutes les commandes sont exécutées depuis la racine du projet :
- `--shadow-*` : Ombres
### Breakpoints responsive
- `xs` : < 576px
- `sm` : 576px
- `md` : 768px
@ -192,9 +208,10 @@ Toutes les commandes sont exécutées depuis la racine du projet :
## 🚀 Déploiement
Ce projet peut être déployé sur n'importe quelle plateforme supportant les sites statiques :
- Vercel
- Netlify
- Netlify
- GitHub Pages
- Cloudflare Pages
Voir la [documentation de déploiement Astro](https://docs.astro.build/en/guides/deploy/) pour plus de détails.
Voir la [documentation de déploiement Astro](https://docs.astro.build/en/guides/deploy/) pour plus de détails.