Interface et navigation
Interface
Navigation
Apprenez à naviguer dans l'interface de Luna Park et comprenez les différents panneaux.
Tour des fonctionnalités (Épisode 2)
Retour à l'Académie
Interface et navigation
Résumé express : Apprendre à créer des composants réutilisables avec styling, slots et propriétés personnalisables.
Introduction
Ce tutoriel présente la création de composants dans Luna Park. Un composant est un élément visuel réutilisable qu'on peut placer n'importe où dans l'application.
1. Préparation du projet
Nettoyer l'espace de travail
- Supprimer les fichiers existants : clic droit → Delete
- Créer un nouveau composant : clic droit → New → Component
2. Élément de base : la div
Concept fondamental
- La div est l'élément de base (comme une brique)
- Par défaut : largeur et hauteur = 0 (invisible)
- Nécessite des propriétés de taille pour être visible
Créer plusieurs divs
- Cliquer sur le + pour ajouter des éléments
- Chaque nouvel élément est une div par défaut
3. Stylisation des éléments
Ajouter des dimensions
- Sélectionner une div
- Inspector → onglet Style → +
- Choisir catégorie Size
- Définir min-width et min-height (ex: 57px)
Ajouter de la couleur
- Catégorie Background → Color
- Choisir une couleur (ex: rouge)
- Astuce : icône œil pour masquer les propriétés non utilisées
Comportement par défaut
- Les divs prennent toute la largeur disponible
- Héritage automatique des tailles entre éléments similaires
4. Gestion de l'affichage avec Flexbox
Problème : disposition verticale par défaut
Solution : utiliser display: flex sur l'élément parent
Configuration Flex
- Sélectionner l'élément parent (conteneur)
- Ajouter propriété Display → Flex
- Options disponibles :
- Direction : horizontal/vertical
- Align items : alignement perpendiculaire
- Justify content : alignement principal
- Gap : espacement entre éléments
Exemples d'alignement
- Left/Right : alignement horizontal
- Center : centrage
- Stretch : étirement pour taille uniforme
5. Création d'un composant bouton
Structure de base
- Partir d'une div simple
- Nettoyer les styles précédents
- Définir taille fixe : min-width et height
Ajouter du texte
- + → Custom Text
- Taper le texte souhaité
- Markdown supporté (ex:
**gras**avec étoiles)
Stylisation du bouton
Background :
- Couleur : bleu foncé
Centrage du texte :
- Display : flex
- Align items : center
- Justify content : center
Espacement :
- Padding : espace intérieur
- Margin : espace extérieur
Bordures :
- Border → couleur, style (solid/dotted), taille (2px)
- Border radius : coins arrondis
6. Utilisation de composants
Créer une page
- Nouveau composant avec Type : Page
- Une page est accessible directement dans l'application
- Affichage navigateur automatique
Renommage pour organisation
- Composant bouton : "color-blocks"
- Page : "my-page"
Instancier le composant
- + → icône de changement de type
- Component → sélectionner "color-blocks"
- Le composant apparaît avec ses styles
Réutilisabilité
- Dupliquer avec + et sélection du même composant
- Modifier le composant original met à jour toutes ses instances
7. Slots pour contenu dynamique
Problème : contenu identique
Tous les boutons affichent le même texte.
Solution : Slot par défaut
- + → Slot
- Texte en pointillés = zone d'insertion
- Contenu par défaut : texte affiché si rien n'est inséré
Utilisation des slots
- Dans la page, ajouter du contenu aux composants
- + → Custom Text dans le composant
- Le texte remplace le contenu par défaut du slot
Slots nommés
Cas d'usage : plusieurs zones de contenu (ex: icône + texte)
- Premier slot : nom = "emoji"
- Second slot : par défaut (sans nom)
- Ajouter gap pour espacement
- Chaque slot peut recevoir un contenu différent
Comportement des slots multiples
- Slots identiques : contenu dupliqué et synchronisé
- Slots nommés : contenu indépendant
- Modification d'un slot par défaut affecte toutes ses instances
Concepts CSS intégrés
Display modes
- Block : largeur complète par défaut
- Inline : largeur du contenu
- Flex : contrôle de disposition avancé
Spacing
- Padding : espace intérieur (affecte la taille apparente)
- Margin : espace extérieur (n'affecte pas la taille de l'élément)
Flexbox
- Direction : row (horizontal) / column (vertical)
- Justify : alignement axe principal
- Align : alignement axe secondaire
- Gap : espacement uniforme entre enfants
Avantages des composants
- Réutilisabilité : un composant, plusieurs instances
- Maintenance : modification centralisée
- Consistance : design uniforme
- Flexibilité : slots pour personnalisation