4.1 — Boutons
⏱️ TL;DR —
btn+ une variante de couleur :btn-primary,btn-secondary,btn-success,btn-danger,btn-warning,btn-info,btn-light,btn-dark,btn-link. Version contour :btn-outline-*. Tailles :btn-sm,btn-lg. États :disabled,active, pleine largeurw-100.
🎯 Objectifs
- Créer des boutons pleins et à contour.
- Régler tailles et états.
- Grouper des boutons.
Variantes
<button class="btn btn-primary">Primary</button>
<button class="btn btn-secondary">Secondary</button>
<button class="btn btn-success">Success</button>
<button class="btn btn-danger">Danger</button>
<button class="btn btn-warning">Warning</button>
<button class="btn btn-info">Info</button>
<button class="btn btn-light">Light</button>
<button class="btn btn-dark">Dark</button>
<button class="btn btn-link">Link</button>Contour (outline)
<button class="btn btn-outline-primary">Primary</button>
<button class="btn btn-outline-danger">Danger</button>Idéal pour les actions secondaires : le bouton se remplit au survol.
Tailles et pleine largeur
<button class="btn btn-primary btn-lg">Grand</button>
<button class="btn btn-primary btn-sm">Petit</button>
<button class="btn btn-primary w-100">Pleine largeur</button>États
<button class="btn btn-primary" disabled>Désactivé</button>
<a class="btn btn-primary disabled" aria-disabled="true">Lien désactivé</a>
<button class="btn btn-primary active" aria-pressed="true">Actif</button>Sur une balise <a>, disabled n’existe pas nativement : utilisez la classe .disabled + aria-disabled="true".
Bouton = balise
btn fonctionne sur <button>, <a> et <input>. Choisissez la balise selon le rôle : <button> pour une action, <a> pour naviguer.
Bouton avec spinner (chargement)
<button class="btn btn-primary" disabled>
<span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
<span role="status">Chargement…</span>
</button>⚠️ Piège — Un
<div class="btn">cliquable n’est ni focusable ni annonçable par un lecteur d’écran. Utilisez une vraie balise<button>ou<a>pour l’accessibilité.
💡 Pour un dev React — Ces boutons sont du CSS pur : dans React, appliquez simplement
className="btn btn-primary"sur votre<button onClick={…}>. Aucun JS Bootstrap requis pour un bouton (contrairement à un dropdown).
✏️ Exercices
- Un bouton de suppression secondaire (contour) qui devient rouge plein au survol.
✅ Solution
<button class="btn btn-outline-danger">Supprimer</button>.
- Un bouton « Enregistrer » pleine largeur, taille large.
✅ Solution
<button class="btn btn-primary btn-lg w-100">Enregistrer</button>.
🧠 Quiz de révision
1. Quelle classe de base pour un bouton ?
btn (à combiner avec une variante).
2. Comment obtenir un bouton à contour vert ?
btn btn-outline-success.
3. Comment rendre un bouton pleine largeur ?
w-100.
4. Comment désactiver un lien stylé en bouton ?
Ajouter .disabled et aria-disabled="true" (l’attribut disabled ne marche pas sur <a>).
5. btn requiert-il du JavaScript ?
btn requiert-il du JavaScript ?Non, c’est du CSS pur.
Chapitre suivant : 4.2 — Badges & alertes