De la découverte à l'utilisation professionnelle dans un projet Full Stack
GridComposantsAnimationsDashboardQuiz
🧭Introduction à Bootstrap
Concept. Bootstrap est une bibliothèque CSS (et JS) de composants et d'utilitaires prêts à l'emploi : on assemble une interface avec des classes au lieu de tout écrire en CSS. Analogie : des briques Lego déjà moulées.
Année
Version
Apport clé
2011
1 (Twitter)
Création par Mark Otto et Jacob Thornton
2013
3
Mobile first
2018
4
Flexbox
2021
5
Sans jQuery, utilitaires, RTL
2023
5.3
Mode sombre (color modes)
Bootstrap 4 vs 5
Sujet
BS4
BS5
jQuery
requis
supprimé
Attributs JS
data-toggle
data-bs-toggle
Marges
ml-3 mr-3
ms-3 me-3
Breakpoints
xs à xl
+ xxl
Formulaires
form-group
mb-3, form-select
Bootstrap, CSS classique, Tailwind
CSS classique
Bootstrap
Tailwind
Philosophie
tout écrire
composants prêts
utilitaires seulement
Vitesse de départ
lente
très rapide
rapide
Identité visuelle
totale
à personnaliser
totale
Idéal pour
sites uniques
dashboards, prototypes, back-offices
design sur mesure
💡 Pro Tip : débutant, commencez par Bootstrap (CDN). Projet professionnel : Bootstrap via npm/Sass avec personnalisation des variables.
📌 À retenir : Bootstrap accélère le développement, mais ne remplace pas la compréhension du CSS.
⚙️Installation et configuration
CDN (débutant) : deux lignes, aucune installation.
📌 À retenir : Les classes text-* et bg-* portent un sens (sémantique), pas seulement une couleur.
📏Spacing (marges, paddings, gap)
Notation : {propriété}{côté}-{taille}. Propriété : m (margin), p (padding). Côtés : t b s e x y (s = début, e = fin). Tailles : 0-5 et auto. Responsive : p-md-5. Entre enfants flex/grid : gap-3.
📌 À retenir : Échelle 0 à 5 (0, .25, .5, 1, 1.5, 3 rem). ms/me remplacent ml/mr.
Une card = card > card-body > card-title / card-text. Elle sert de produit, profil, cours, blog, tarif ou statistique de dashboard.
📌 À retenir :h-100 aligne la hauteur des cartes d’une même ligne.
🧭Navbar
Le bouton hamburger (navbar-toggler) déclenche le plugin collapse via data-bs-toggle et data-bs-target : en dessous du breakpoint navbar-expand-lg, le menu se replie. Variantes : navbar-dark bg-dark, sticky-top, fixed-top.
📌 À retenir :navbar-expand-* choisit à partir de quand le menu est déplié.
📝Formulaires et validation
Champs : form-control, form-select, form-check, form-switch, input-group, form-floating. Validation : needs-validation novalidate + classe was-validated ajoutée au submit. Essayez d'envoyer le formulaire vide.
📌 À retenir : Validation native du navigateur + styles Bootstrap : pas besoin de JavaScript lourd.
📊Tables
table + table-striped (lignes alternées), table-hover, table-bordered, et table-responsive sur un conteneur pour le défilement horizontal sur mobile.
📌 À retenir : Sans table-responsive, un grand tableau casse la mise en page mobile.
🔔Alerts, badges, progress et spinners
📌 À retenir :alert-* pour informer, progress pour la progression, spinner-* pour l’attente.
🪟Modals
Un bouton avec data-bs-toggle="modal" et data-bs-target="#id" ouvre la fenêtre. data-bs-dismiss="modal" la ferme. Même principe pour confirmation, suppression, login ou détails produit.
📌 À retenir : Le modal est du HTML caché ; le bundle JS gère l’ouverture, le fond et la touche Échap.
🎠Accordion (FAQ) et Carousel
Remplacez les placeholders par des <img class="d-block w-100" alt="…"> libres de droits (Unsplash).
📌 À retenir :data-bs-parent force un seul panneau ouvert à la fois.
📌 À retenir : Les utilitaires remplacent la majorité du CSS « de dépannage » : moins de fichiers, plus de vitesse.
⚡Bootstrap et JavaScript
Composant
Déclencheur HTML
Modal
data-bs-toggle="modal"
Dropdown
data-bs-toggle="dropdown"
Collapse / Accordion
data-bs-toggle="collapse"
Carousel
data-bs-ride, data-bs-slide
Tooltip / Popover
à initialiser en JS (Popper)
Toast
JS : new bootstrap.Toast(el).show()
Offcanvas
data-bs-toggle="offcanvas"
bootstrap.bundle.min.js = Bootstrap JS + Popper (positionnement des menus, tooltips, popovers). Sans lui : pas de burger, de modal ni de dropdown.
📌 À retenir : Charger le bundle avant la fin du body.
✨Animations
Principe : transitions (transition), transformations (transform) et @keyframes, en complément des classes Bootstrap (fade, progress-bar-animated, spinner-border).
💡 Animations courtes (150-400 ms), utiles, et désactivées avec prefers-reduced-motion.
📌 À retenir : Animer pour guider l’œil, pas pour décorer.
🎓Projet final : Student Management Dashboard
Sidebar, navbar, cartes de statistiques, table avec recherche et filtre, modal d'ajout, suppression avec confirmation, alerte, progress, footer, responsive (sidebar masquée sous md).
💡 Améliorations : modal « Modifier » (exercice), validation du formulaire, sauvegarde dans localStorage, puis branchement sur une API REST.
📌 À retenir : Séparez toujours structure (HTML), style (CSS) et comportement (JS).
🌐Bootstrap dans un projet Full Stack
Stack
Rôle de Bootstrap
Node + Express
Vues (EJS) ou fichiers statiques servis par express.static
React
Package react-bootstrap (composants sans jQuery)
Laravel
Vues Blade, intégration via Vite
ASP.NET
Inclus dans les templates MVC/Razor
Base de données
Aucun lien direct : Bootstrap affiche les données reçues de l’API
📌 À retenir : Bootstrap est uniquement la couche présentation : aucun rôle côté serveur ou base de données.
✅Bonnes pratiques et erreurs fréquentes
Évitez le CSS inline, créez des composants réutilisables, pensez accessibilité (alt, aria-label, contrastes), performance (CSS minifié, import sélectif via npm) et hiérarchie visuelle claire. Ne copiez jamais du Bootstrap sans comprendre le CSS sous-jacent.
📋Cheat Sheet
🏋️Exercices
🧠Quiz (20 questions)
Cliquez sur une réponse : vert = bonne, rouge = erreur.