# 🎬 Nixi - Plateforme de Streaming Une plateforme de streaming moderne pour films et séries, construite avec **Astro** et un système de composants UI réutilisables auto-contenus. ## ✨ Fonctionnalités - 🎨 **Design System complet** avec thème sombre et couleurs violet pastel - 📱 **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) - 🔄 **Architecture modulaire** avec réutilisation et composition - 🛠️ **Classes utilitaires** Bootstrap-like pour styling rapide ## 🏗️ Architecture du Projet ``` / ├── public/ │ └── favicon.svg ├── src/ │ ├── components/ │ │ └── ui/ # Composants UI auto-contenus │ │ ├── Button.astro # Avec styles intégrés │ │ ├── Card.astro # Avec styles intégrés │ │ ├── Input.astro # Avec styles intégrés │ │ ├── Modal.astro # Avec styles + JS intégrés │ │ ├── MovieCard.astro # Compose avec Card.astro │ │ ├── SearchBar.astro # Compose avec Input.astro │ │ ├── Row.astro # Avec support style prop │ │ ├── Col.astro # Responsive breakpoints │ │ └── ... │ ├── layouts/ │ │ └── Layout.astro # Variables + Grid seulement │ ├── pages/ │ │ └── index.astro # Page de démo complète │ └── styles/ │ ├── variables.css # Variables + Form base + Utilitaires globales │ └── grid.css # Grille + Classes utilitaires responsive └── package.json ``` ## 🎨 Design System ### Couleurs - **Couleur principale** : Violet pastel (`--primary-*`) - **Thème sombre** avec nuances de gris - **Couleurs sémantiques** : success, warning, error, info ### Composants disponibles #### Composants de base - **Button** - Boutons avec variantes (primary, secondary, outline, ghost) - **Badge** - Badges colorés - **Alert** - Alertes contextuelles - **Spinner** - Indicateurs de chargement - **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 `