Module 4.4 – Frameworks CSS
Objectif
Comprendre les frameworks CSS, maîtriser Bootstrap et Tailwind CSS, et savoir choisir le bon outil selon le projet.
Théorie
Qu'est-ce qu'un framework CSS ?
Un framework CSS est une collection de styles pré-écrits et de composants réutilisables qui accélèrent le développement.
Avantages :
- Développement plus rapide
- Design cohérent
- Responsive par défaut
- Composants prêts à l'emploi
Inconvénients :
- Peut être lourd (taille du fichier)
- Moins de personnalisation
- Courbe d'apprentissage
Bootstrap
Bootstrap est un framework CSS populaire développé par Twitter.
Installation
Via CDN (rapide pour tester) :
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
Via npm :
npm install bootstrap
Système de grille
Bootstrap utilise un système de 12 colonnes.
<div class="container">
<div class="row">
<div class="col-md-6">Colonne 1 (50%)</div>
<div class="col-md-6">Colonne 2 (50%)</div>
</div>
</div>
Breakpoints :
col-sm-*: ≥576pxcol-md-*: ≥768pxcol-lg-*: ≥992pxcol-xl-*: ≥1200px
Composants Bootstrap
Boutons :
<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>
Cartes :
<div class="card">
<div class="card-body">
<h5 class="card-title">Titre</h5>
<p class="card-text">Contenu</p>
<a href="#" class="btn btn-primary">Action</a>
</div>
</div>
Navigation :
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Logo</a>
<div class="navbar-nav">
<a class="nav-link" href="#">Accueil</a>
<a class="nav-link" href="#">À propos</a>
</div>
</div>
</nav>
Formulaires :
<div class="mb-3">
<label for="email" class="form-label">Email</label>
<input type="email" class="form-control" id="email">
</div>
Utilitaires Bootstrap
Classes utilitaires pour des styles rapides :
<div class="d-flex justify-content-between align-items-center p-4">
<span class="text-primary fw-bold">Texte</span>
<button class="btn btn-sm btn-outline-secondary">Action</button>
</div>
Tailwind CSS
Tailwind CSS est un framework "utility-first" : au lieu de classes prédéfinies, on compose avec des classes utilitaires.
Installation
Via CDN (pour tester) :
<script src="https://cdn.tailwindcss.com"></script>
Via npm (recommandé) :
npm install -D tailwindcss
npx tailwindcss init
Philosophie utility-first
Au lieu de créer des classes CSS personnalisées, on utilise des classes utilitaires :
<div class="flex items-center justify-between p-4 bg-blue-500 text-white rounded-lg">
<h2 class="text-2xl font-bold">Titre</h2>
<button class="px-4 py-2 bg-white text-blue-500 rounded hover:bg-gray-100">
Cliquer
</button>
</div>
Classes principales
Layout :
flex,grid,containeritems-center,justify-betweengap-4,space-x-2
Espacement :
p-4: paddingm-2: marginpx-4 py-2: padding horizontal/vertical
Typographie :
text-xl,text-2xl: taillesfont-bold,font-semibold: poidstext-center,text-left: alignement
Couleurs :
bg-blue-500: fond bleutext-red-600: texte rougeborder-gray-300: bordure grise
Responsive :
md:flex: flex à partir de mdlg:text-2xl: texte 2xl à partir de lg
Variantes
Tailwind permet d'appliquer des styles selon l'état :
<button class="bg-blue-500 hover:bg-blue-600 active:bg-blue-700 focus:outline-none focus:ring-2">
Bouton
</button>
Variantes disponibles :
hover:: au survolfocus:: au focusactive:: au clicdisabled:: désactivé
Configuration
Personnaliser Tailwind via tailwind.config.js :
module.exports = {
theme: {
extend: {
colors: {
'custom-blue': '#1e40af',
}
}
}
}
Comparaison Bootstrap vs Tailwind
Bootstrap
Avantages :
- Composants prêts à l'emploi
- Documentation complète
- Grande communauté
- Facile pour débuter
Inconvénients :
- Moins flexible
- Taille importante
- Design "Bootstrap" reconnaissable
Quand l'utiliser :
- Prototypage rapide
- Applications internes
- Besoin de composants complexes rapidement
Tailwind
Avantages :
- Très flexible
- Design unique
- Taille optimisée (purge CSS)
- Workflow rapide
Inconvénients :
- Courbe d'apprentissage
- Beaucoup de classes dans le HTML
- Nécessite compilation
Quand l'utiliser :
- Design sur mesure
- Projets modernes
- Développeurs expérimentés
Exercice
-
Installer Bootstrap
- Ajoutez Bootstrap via CDN
- Créez une page avec la grille Bootstrap
- Testez les composants (boutons, cartes)
-
Créer un layout Bootstrap
- Header avec navbar
- Contenu avec grille (2 colonnes sur desktop, 1 sur mobile)
- Footer
- Utilisez les classes utilitaires
-
Installer Tailwind
- Installez Tailwind via npm
- Configurez le fichier
tailwind.config.js - Créez un fichier CSS avec les directives Tailwind
-
Créer un composant Tailwind
- Créez une carte avec Tailwind
- Utilisez les classes utilitaires
- Ajoutez des variantes (hover, focus)
-
Comparer les deux
- Recréez le même composant avec Bootstrap et Tailwind
- Comparez le code HTML
- Identifiez les différences
Quiz
-
Qu'est-ce qu'un framework CSS ?
- Un langage de programmation
- Une collection de styles et composants pré-écrits
- Un éditeur de code
-
Combien de colonnes dans le système de grille Bootstrap ?
- 10
- 12
- 16
-
Quelle est la philosophie de Tailwind ?
- Component-first
- Utility-first
- Framework-first
-
Comment appliquer un style au survol avec Tailwind ?
- hover:bg-blue-500
- hover:bg-blue-500
- onHover:bg-blue-500
-
Quand utiliser Bootstrap plutôt que Tailwind ?
- Toujours
- Pour un prototypage rapide avec composants prêts
- Jamais
Mini défi
Mission : Créer une page avec les deux frameworks
Créez deux versions d'une même page : une avec Bootstrap, une avec Tailwind.
Page à créer : Dashboard simple
Éléments requis :
-
Header
- Logo à gauche
- Navigation à droite
- Responsive (menu hamburger sur mobile)
-
Contenu principal
- Grille avec 3 cartes
- Chaque carte : titre, texte, bouton
- Responsive (3 colonnes desktop, 1 mobile)
-
Sidebar (optionnel)
- Menu vertical
- Liens de navigation
-
Footer
- Informations de contact
- Liens sociaux
Version Bootstrap :
- Utilisez les composants Bootstrap
- Grille Bootstrap
- Classes utilitaires Bootstrap
Version Tailwind :
- Classes utilitaires uniquement
- Même design que Bootstrap
- Configuration personnalisée si nécessaire
Critères :
- ✅ Les deux versions ont le même design
- ✅ Responsive sur tous les écrans
- ✅ Code propre et bien organisé
- ✅ Utilisation correcte de chaque framework
- ✅ Comparaison documentée (avantages/inconvénients)
Objectif : Maîtriser les deux frameworks et savoir choisir selon le contexte.
Validation : Vous pouvez passer au Parcours 5 quand vous maîtrisez au moins un framework CSS et comprenez leurs différences.
Félicitations ! Vous avez terminé le Parcours 4 - Développement web HTML/CSS. Vous pouvez maintenant créer des pages web modernes et responsives !