Cours Tailwind CSS Complet 🎨
Les 12 chapitres essentiels — utility-first, responsive, dark mode et composants
🏠 Hub Programmation
🎨 HTML & CSS (prérequis)
⚛️ React
💚 Vue.js
▲ Next.js
Introduction et installation
class=« card-title »>Titre
class=« card-text »>Texte
class=« mt-2 text-gray-600 »>Texte
class=« text-xl font-bold text-gray-900 »>Titre
Tailwind est un framework CSS utility-first. Au lieu d'écrire du CSS custom, vous composez des classes utilitaires directement dans le HTML. Chaque classe fait une seule chose : p-6 = padding 1.5rem, text-xl = font-size 1.25rem, rounded-lg = border-radius 0.5rem.
npm install tailwindcss @tailwindcss/vite
// vite.config.ts
import tailwindcss from '@tailwindcss/vite'
export default
/* app.css — importer Tailwind */
@import « tailwindcss »;
# Avec Next.js
# Déjà inclus si coché à l'installation (create-next-app)
# CLI standalone
npx @tailwindcss/cli -i input.css -o output.css –watch
| Concept | Exemple | CSS généré |
|---|---|---|
| Spacing | p-4 | padding: 1rem |
| Couleur | text-blue-500 | color: #3b82f6 |
| Taille de police | text-lg | font-size: 1.125rem |
| Bordure arrondie | rounded-md | border-radius: 0.375rem |
| Ombre | shadow-lg | box-shadow: 0 10px 15px… |
| Responsive | md:text-xl | @media (min-width: 768px) |
| Hover | hover:bg-blue-600 | :hover |
Typographie et couleurs
class=« text-xs »>0.75rem
class=« text-sm »>0.875rem
class=« text-base »>1rem
class=« text-lg »>1.125rem
class=« text-xl »>1.25rem
class=« text-2xl »>1.5rem
class=« text-4xl »>2.25rem
class=« font-light »>300 class=« font-normal »>400 class=« font-medium »>500 class=« font-semibold »>600 class=« font-bold »>700
class=« text-center italic underline tracking-wide leading-relaxed »>
Texte centré, italique, souligné, espacé
class=« truncate »>Texte très long coupé… class=« line-clamp-3 »>Limiter à 3 lignes…
class=« text-gray-50 »>Presque blanc
class=« text-gray-500 »>Gris moyen
class=« text-gray-950 »>Presque noir
Texte bleu, fond bleu clair, bordure bleue
Spacing et sizing
Espacement vertical de 1rem entre chaque enfant
Deuxième paragraphe
Flexbox
Centré !
Grid
Sidebar 250px
Contenu flexible
Centré dans la page
Responsive design
p-4
md:p-8
text-sm
md:text-base
lg:text-lg
flex flex-col
md:flex-row
gap-4
md:gap-8
« >
Mobile-first : les classes sans préfixe s'appliquent à TOUS les écrans. Les préfixes (md:, lg:) s'appliquent à partir de ce breakpoint. Pensez toujours mobile d'abord, puis ajoutez les adaptations desktop.
Dark mode
class=« text-gray-900 dark:text-white »>Titre
class=« text-gray-600 dark:text-gray-400 »>Texte
Card
: –>
@import « tailwindcss »;
@custom-variant dark (&:where(.dark, .dark *));
document.documentElement.classList.toggle('dark')
Animations et transitions
Card avec animation au hover
class= »
border border-gray-300
focus:border-blue-500 focus:ring-1 focus:ring-blue-500
placeholder:text-gray-400
disabled:opacity-50 disabled:cursor-not-allowed
« />
class=« group-hover:text-gray-900 »>Texte
class=« group-hover:text-blue-600 transition-colors »>Titre
Composants courants
class=« text-xl font-bold text-gray-900 »>Titre de la card
class=« mt-2 text-gray-600 »>Description courte du contenu.
Personnalisation
@import « tailwindcss »;
@theme
Valeurs exactes entre crochets
@layer components
@apply avec modération. L'intérêt de Tailwind est d'éviter d'écrire du CSS. Si vous utilisez @apply partout, vous recréez le CSS classique avec des étapes supplémentaires. Réservez-le aux patterns très répétés (boutons, inputs). Pour le reste, utilisez des composants (React/Vue).
Plugins et extensions
| Plugin | Usage |
|---|---|
| @tailwindcss/typography | Prose stylisée pour contenu riche (articles, markdown) |
| @tailwindcss/forms | Reset et base styling pour les formulaires |
| @tailwindcss/container-queries | Container queries (@container) |
@import « tailwindcss »;
@plugin « @tailwindcss/typography »;
Mon article
Le texte est automatiquement stylisé…
Les blocs de code aussi
| Librairie | Framework | Description |
|---|---|---|
| shadcn/ui | React | Composants copiables, entièrement personnalisables |
| Radix Vue | Vue | Primitives accessibles unstyled |
| Headless UI | React / Vue | Composants unstyled par les créateurs de Tailwind |
| DaisyUI | Agnostique | Composants avec classes sémantiques (btn, card) |
| Flowbite | Agnostique | Composants prêts à l'emploi |
Bonnes pratiques
flex items-center gap-4
w-full max-w-lg
p-6
bg-white
border border-gray-200
rounded-xl shadow-md
text-gray-900 text-sm
hover:shadow-lg
dark:bg-gray-800
md:p-8 lg:max-w-xl
transition-shadow duration-200
« >
✅ À FAIRE
• Mobile-first (sans préfixe = mobile)
• prettier-plugin-tailwindcss
• Composants pour réutiliser (React/Vue)
• @theme pour le design system
• dark: pour le dark mode
• group-hover: pour les interactions
• Classes sémantiques si très répétées
• Tailwind IntelliSense (VSCode)
• @tailwindcss/typography pour le contenu
❌ À ÉVITER
• @apply partout (récrée du CSS)
• Classes inutiles (reset déjà fait)
• Ignorer le responsive
• Valeurs arbitraires quand le scale suffit
• !important (! en Tailwind)
• Mélanger CSS custom et Tailwind
• Oublier les focus states (a11y)
• Lignes de classes de 200 caractères
• Ignorer Prettier plugin
🏠 Hub Programmation
🎨 Cours HTML & CSS
⚛️ Cours React
💚 Cours Vue.js
▲ Cours Next.js
Cours Tailwind CSS Complet — Utility-first, responsive et design system
Référence : tailwindcss.com | shadcn/ui | VueUse
