UI Kit - Système de Boutons Travelski
🎮 Simulateur Interactif
ContrĂ´les du simulateur
<!-- Code généré -->
<button class="button button--primary">
Bouton de Test
</button>
Variantes de Couleurs
Variantes de Tailles
Largeurs Disponibles
Boutons avec IcĂ´nes
Boutons avec icĂ´nes
<!-- Boutons avec icĂ´nes -->
<button class="button button--primary">
<img src="../icons/actions/download.svg" alt="Télécharger" class="button__icon icon-white">
Télécharger
</button>
<button class="button button--dark button--icon-only" aria-label="Fermer">
<img src="../icons/navigation/cross.svg" alt="Fermer" class="button__icon icon-white">
</button>
État de chargement
<!-- État de chargement -->
<button class="button button--primary button--loading">
Chargement...
</button>
États & Interactions
États des boutons
<!-- États des boutons -->
<button class="button button--primary">Normal</button>
<button class="button button--primary" disabled>Désactivé</button>
<button class="button button--secondary" aria-pressed="true">Activé</button>
Groupes de Boutons
Groupe standard
<!-- Groupe standard -->
<div class="button-group">
<button class="button button--secondary">Annuler</button>
<button class="button button--primary">Valider</button>
</div>
Groupe avec espacement
<!-- Groupe avec espacement -->
<div class="button-group button-group--between">
<button class="button button--ghost">Précédent</button>
<button class="button button--primary">Suivant</button>
</div>
Groupe vertical (mobile)
<!-- Groupe vertical -->
<div class="button-group button-group--stacked">
<button class="button button--primary button--full">Action Principale</button>
<button class="button button--ghost button--full">Action Secondaire</button>
</div>
Accessibilité
Navigation clavier
Testez avec Tab ⇥
<!-- Focus visible automatique -->
<button class="button button--primary">
Focus Visible
</button>
Labels pour lecteurs d'écran
Avec aria-label
<!-- Label pour lecteur d'écran -->
<button class="button button--dark button--icon-only" aria-label="Fermer le dialogue">
<img src="../icons/navigation/cross.svg" alt="Fermer" class="button__icon icon-white">
</button>
Exemples d'Utilisation
Formulaire de réservation
Réservation
<!-- Formulaire de réservation -->
<div class="form-container">
<h3>Réservation</h3>
<div class="form-group">
<label>Date d'arrivée</label>
<input type="date">
</div>
<div class="button-group">
<button class="button button--secondary">Annuler</button>
<button class="button button--primary">Réserver</button>
</div>
</div>
Interface de navigation
<!-- Interface de navigation -->
<div class="navigation-bar">
<div class="nav-left">
<button class="button button--ghost button--sm">Précédent</button>
<button class="button button--ghost button--sm">Suivant</button>
</div>
<div class="nav-right">
<button class="button button--primary">Télécharger</button>
</div>
</div>
Meilleures Pratiques
✅ À faire
- Utilisez
button--primarypour l'action principale - Utilisez
<img>avecicons.css - Utilisez les classes de
layout.css - Ajoutez
aria-labelpour les boutons icônes - Respectez la hiérarchie visuelle
- Testez la navigation clavier
- Utilisez
button--fullsur mobile
❌ À éviter
- Plus de 2 boutons primary par page
- Boutons trop petits (< 44px)
- Textes génériques ("Cliquez ici")
- Oublier les états loading
- Négliger les contrastes
- Utiliser SVG inline au lieu d'
<img> - Ignorer les variables CSS du système
🎯 Guide d'Utilisation des Boutons
Architecture Cohérente
.button {
background: var(--color-primary);
font-family: var(--font-body);
font-size: var(--font-size-sm);
}
background: var(--color-primary);
font-family: var(--font-body);
font-size: var(--font-size-sm);
}
✅ Utilise tous les systèmes CSS : color.css, typography.css, layout.css, icons.css
Classes Utilitaires
<button class="button button--primary button--lg">
<img src="icon.svg" class="button__icon icon-white">
Action
</button>
<img src="icon.svg" class="button__icon icon-white">
Action
</button>
✅ Combinaison de classes pour un design cohérent
🚫 À Éviter
- Utiliser des styles inline au lieu des classes
- Mélanger plusieurs variantes de couleur
- Oublier les états d'accessibilité
- Négliger la taille tactile minimale
- Créer des boutons sans cohérence visuelle
♿ Accessibilité
- Tous les boutons respectent la taille tactile de 44px
- Focus visible avec
:focus-visible - Support
prefers-reduced-motion - Labels appropriés pour les boutons icônes
- Contrastes respectant les standards WCAG