Tailwind CSS : maîtriser les classes utilitaires et construire une interface responsive pas à pas – illustration Tailwind CSS

Tailwind CSS : maîtriser les classes utilitaires et construire une interface responsive pas à pas

Thématique
Développement web & mobile
Tous les guides
HTML, CSS, JavaScript et frameworks
Mis à jour
Lecture
12 min
Formation
Maîtriser Tailwind CSS : De la théorie au déploiement

L'essentiel en 30 secondes

  • Tailwind CSS est un framework CSS « utility-first » : on met en forme les éléments en combinant de petites classes directement dans le HTML, sans écrire de feuille de style dédiée.
  • Chaque classe utilitaire applique une seule propriété CSS, par exemple p-4 pour un padding de 1rem ou text-center pour centrer le texte.
  • Le responsive se gère avec des préfixes de points de rupture (sm:, md:, lg:, xl:) appliqués selon une logique mobile first.
  • Tailwind ne génère dans le fichier final que les classes réellement utilisées dans le code, ce qui produit une feuille de style légère.
  • Tailwind ne remplace pas la connaissance du CSS : chaque classe correspond à une propriété CSS qu'il faut comprendre pour bien l'utiliser.
Sommaire de l'article
  1. Qu’est-ce que Tailwind CSS ?
  2. Pourquoi utiliser Tailwind CSS ?
  3. Installer Tailwind CSS dans un projet
  4. Utiliser Tailwind CSS : les étapes pour construire une interface
  5. Organiser son code Tailwind dans un projet réel
  6. Déployer un site Tailwind CSS
  7. Les erreurs fréquentes avec Tailwind CSS
  8. Tailwind vs CSS classique vs Bootstrap : comparaison
  9. Comment apprendre Tailwind CSS efficacement ?
  10. En résumé

Tailwind CSS est un framework CSS qui permet de mettre en forme une page directement dans le HTML, en combinant de petites classes utilitaires comme flex, p-4, text-lg ou bg-blue-600. Au lieu d’inventer des noms de classes et d’écrire une feuille de style à côté, vous composez le design élément par élément, avec un système d’espacements, de couleurs et de tailles cohérent.

Ce tutoriel s’adresse aux développeurs et intégrateurs qui connaissent les bases du HTML et du CSS, ainsi qu’aux designers qui veulent coder leurs maquettes. Vous y verrez comment installer Tailwind dans un projet réel, créer une carte, une barre de navigation et une grille, gérer le responsive, les états interactifs et le mode sombre, personnaliser le thème, puis déployer votre site.

Qu’est-ce que Tailwind CSS ?

Tailwind CSS est un framework CSS open source dit utility-first : il fournit des milliers de classes qui appliquent chacune une seule règle CSS. On construit l’apparence d’un élément en assemblant ces classes dans son attribut class. À la compilation, Tailwind analyse vos fichiers et ne génère que les styles réellement utilisés.

Concrètement, là où vous écririez en CSS classique :

.bouton {
  padding: 0.5rem 1rem;
  background-color: #2563eb;
  color: white;
  border-radius: 0.5rem;
  font-weight: 600;
}

vous écrivez avec Tailwind, directement dans le HTML :

<button class="px-4 py-2 bg-blue-600 text-white rounded-lg font-semibold">
  S'inscrire
</button>

Contrairement à Bootstrap, Tailwind ne fournit aucun composant tout fait (bouton, carte, fenêtre modale). Il donne des briques de bas niveau : c’est ce qui permet d’obtenir un design sur mesure, sans l’aspect « déjà vu » des sites construits avec un kit de composants.

Pourquoi utiliser Tailwind CSS ?

Les avantages que nous constatons en formation et en projet :

  • Vitesse d’intégration : plus de va-et-vient entre le HTML et la feuille de style, plus de temps perdu à nommer des classes.
  • Cohérence visuelle : espacements, couleurs, tailles de police et ombres suivent une échelle commune. Impossible d’avoir 13 px ici et 14 px là par inadvertance.
  • Pas d’effets de bord : modifier les classes d’un élément ne casse rien ailleurs, contrairement à une règle CSS globale.
  • Responsive et états intégrés : md:flex ou hover:bg-blue-700 se lisent directement sur l’élément concerné.
  • CSS final léger : seules les classes utilisées sont générées.
  • Adapté aux composants : avec React, Vue, Svelte ou Astro, chaque composant porte son propre style.

Les limites existent aussi : un HTML plus chargé, une phase d’apprentissage du vocabulaire des classes, et une dépendance à un outil de compilation. Tailwind n’est pas non plus un raccourci pour éviter d’apprendre le CSS : si vous ne savez pas ce que fait justify-between, la classe ne vous aidera pas. Si nécessaire, commencez par notre guide pour apprendre CSS.

Installer Tailwind CSS dans un projet

Tester sans installation

Pour découvrir Tailwind en quelques secondes, ajoutez le script navigateur officiel dans le <head> d’une page HTML :

<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>

Toutes les classes fonctionnent immédiatement. Réservez cette méthode à l’expérimentation : en production, les styles doivent être compilés.

Installer Tailwind avec Vite

Pour un projet réel, la méthode la plus simple passe par Vite. Dans un terminal, avec Node.js installé :

npm create vite@latest mon-projet
cd mon-projet
npm install tailwindcss @tailwindcss/vite

Ajoutez le plugin dans vite.config.js :

import { defineConfig } from "vite";
import tailwindcss from "@tailwindcss/vite";

export default defineConfig({
  plugins: [tailwindcss()],
});

Puis importez Tailwind en tête de votre fichier CSS principal (par exemple src/style.css) :

@import "tailwindcss";

Lancez npm run dev : les classes Tailwind sont disponibles dans tous vos fichiers. Avec Next.js, l’assistant create-next-app propose d’installer Tailwind directement.

Les projets plus anciens, sous Tailwind 3, utilisent un fichier tailwind.config.js et des directives @tailwind base, @tailwind components et @tailwind utilities. Vous les croiserez encore souvent : la logique des classes est la même, seule la configuration change.

Configurer VS Code

Deux outils changent le confort de travail :

  • l’extension Tailwind CSS IntelliSense, qui propose l’autocomplétion des classes, affiche le CSS correspondant au survol et signale les classes en conflit ;
  • le plugin prettier-plugin-tailwindcss, qui trie automatiquement les classes dans un ordre cohérent à chaque enregistrement.

Utiliser Tailwind CSS : les étapes pour construire une interface

Schéma des étapes pour construire une interface avec Tailwind CSS, des classes utilitaires au thème et au mode sombre
Construire une interface avec Tailwind CSS : les étapes

Étape 1 — Comprendre la logique des classes utilitaires

Les noms de classes suivent une grammaire régulière : propriété-valeur. Une fois quelques règles comprises, vous devinez la plupart des classes sans documentation.

FamilleExemplesÉquivalent CSS
Espacementp-4, px-6, mt-8, gap-4padding, margin, gap (1 unité = 0,25rem)
Dimensionsw-full, max-w-md, h-screenwidth, max-width, height
Typographietext-lg, font-bold, leading-relaxedfont-size, font-weight, line-height
Couleursbg-slate-100, text-blue-600, border-red-500couleurs de fond, de texte, de bordure
Bordures et ombresrounded-xl, border, shadow-mdborder-radius, border, box-shadow
Mise en pageflex, grid, items-center, justify-betweendisplay, align-items, justify-content

L’échelle d’espacement repose sur un pas de 0,25rem : p-1 vaut 0,25rem, p-4 vaut 1rem, p-8 vaut 2rem. Les couleurs vont de 50 (très clair) à 950 (très foncé). Pour une valeur hors échelle, utilisez la notation entre crochets : w-[327px], bg-[#0f766e]. Notre conseil : limitez ces valeurs arbitraires, sinon vous perdez la cohérence qui fait l’intérêt du framework.

Étape 2 — Créer une première carte

<article class="max-w-sm rounded-2xl bg-white p-6 shadow-md">
  <img src="images/atelier.jpg" alt="Atelier de formation" class="mb-4 h-40 w-full rounded-xl object-cover">
  <h2 class="text-xl font-bold text-slate-900">Atelier Tailwind</h2>
  <p class="mt-2 text-slate-600">Construire une interface responsive en une après-midi.</p>
  <a href="#" class="mt-4 inline-block rounded-lg bg-teal-600 px-4 py-2 font-semibold text-white">
    Découvrir
  </a>
</article>

Lisez les classes de gauche à droite : largeur maximale, coins arrondis, fond blanc, marge intérieure, ombre. Chaque décision de design est visible sur l’élément lui-même, sans ouvrir d’autre fichier.

Étape 3 — Aligner avec Flexbox : la barre de navigation

<header class="flex items-center justify-between border-b px-6 py-4">
  <a href="/" class="text-lg font-bold">MonSite</a>
  <nav class="flex gap-6 text-sm font-medium">
    <a href="#cours" class="text-slate-700">Cours</a>
    <a href="#tarifs" class="text-slate-700">Tarifs</a>
    <a href="#contact" class="text-slate-700">Contact</a>
  </nav>
</header>

flex active Flexbox, items-center centre verticalement, justify-between repousse le logo et le menu aux deux extrémités, et gap-6 espace les liens. Ce sont exactement les propriétés CSS display, align-items, justify-content et gap.

Étape 4 — Construire une grille avec CSS Grid

<section class="grid grid-cols-1 gap-6 p-6 sm:grid-cols-2 lg:grid-cols-3">
  <article class="rounded-xl bg-white p-6 shadow">Carte 1</article>
  <article class="rounded-xl bg-white p-6 shadow">Carte 2</article>
  <article class="rounded-xl bg-white p-6 shadow lg:col-span-1 sm:col-span-2">Carte 3</article>
</section>

grid-cols-3 crée trois colonnes de largeur égale, col-span-2 fait s’étendre un élément sur deux colonnes. Utilisez Flexbox pour aligner des éléments sur une ligne, et Grid pour des mises en page en deux dimensions.

Étape 5 — Gérer le responsive avec Tailwind

Le responsive Tailwind repose sur des préfixes de points de rupture. La logique est mobile first : une classe sans préfixe s’applique à toutes les tailles, une classe préfixée s’applique à partir de la largeur indiquée.

PréfixeLargeur minimaleUsage typique
(aucun)0Téléphones, style de base
sm:640 pxGrands téléphones en paysage
md:768 pxTablettes
lg:1024 pxOrdinateurs portables
xl:1280 pxÉcrans larges
2xl:1536 pxTrès grands écrans

Ainsi, grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 affiche une colonne sur mobile, deux sur tablette, trois sur ordinateur. De même, hidden md:flex masque un menu sur mobile et l’affiche à partir de 768 px. L’erreur classique consiste à écrire sm: en pensant « sur petit écran » : il signifie « à partir de 640 px ».

Étape 6 — Gérer les états : hover, focus, group et peer

Les préfixes d’état appliquent une classe seulement dans une situation donnée :

<button class="rounded-lg bg-teal-600 px-4 py-2 text-white transition
               hover:bg-teal-700 focus-visible:outline-2 focus-visible:outline-offset-2
               focus-visible:outline-teal-600 disabled:opacity-50">
  Valider
</button>

Deux variantes permettent de styler un élément selon l’état d’un autre :

  • group : ajoutez group au parent, puis group-hover: aux enfants. Survoler toute la carte change alors la couleur de son titre.
  • peer : ajoutez peer à un élément, puis peer-invalid: ou peer-checked: à un élément frère qui le suit.
<a href="#" class="group block rounded-xl p-6 shadow hover:shadow-lg">
  <h3 class="font-bold group-hover:text-teal-600">Voir le cours</h3>
</a>

<input type="email" class="peer rounded border px-3 py-2" placeholder="E-mail">
<p class="hidden text-sm text-red-600 peer-invalid:block">Adresse e-mail invalide.</p>

Ne supprimez jamais le contour de focus sans le remplacer : les personnes qui naviguent au clavier en ont besoin pour savoir où elles se trouvent.

Étape 7 — Personnaliser le thème et activer le mode sombre

Dans les versions récentes, la configuration Tailwind se fait directement dans le fichier CSS, avec la directive @theme. Chaque variable déclarée crée les classes correspondantes :

@import "tailwindcss";

@theme {
  --color-marque-500: #0d9488;
  --color-marque-700: #0f766e;
  --font-titre: "Poppins", sans-serif;
  --breakpoint-3xl: 1920px;
}

Vous disposez alors de bg-marque-500, text-marque-700, font-titre et du préfixe 3xl:. Sous Tailwind 3, les mêmes personnalisations se déclarent dans l’objet theme.extend du fichier tailwind.config.js.

Pour le mode sombre, le préfixe dark: s’applique par défaut selon la préférence du système d’exploitation : bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-100. Pour laisser l’utilisateur choisir avec un bouton, redéfinissez la variante afin qu’elle dépende d’une classe dark posée sur l’élément html :

@custom-variant dark (&:where(.dark, .dark *));

Un script de quelques lignes ajoute ou retire alors cette classe et mémorise le choix.

Organiser son code Tailwind dans un projet réel

Sur une page isolée, répéter des classes ne pose pas de problème. Sur un site entier, il faut une stratégie.

Les composants d’abord. Avec React, Vue, Astro ou un moteur de gabarits, créez un composant Bouton ou Carte qui contient ses classes. La liste n’est écrite qu’une fois, et chaque utilisation reste courte.

Les boucles pour les cartes dynamiques. Quand les cartes proviennent de données, générez-les avec une boucle plutôt que de copier le HTML :

const cours = [
  { id: 1, titre: "Flexbox", niveau: "Débutant" },
  { id: 2, titre: "CSS Grid", niveau: "Intermédiaire" },
];

export function ListeCours() {
  return (
    <div className="grid gap-6 md:grid-cols-2">
      {cours.map((c) => (
        <article key={c.id} className="rounded-xl bg-white p-6 shadow">
          <h3 className="font-bold">{c.titre}</h3>
          <span className="text-sm text-slate-500">{c.niveau}</span>
        </article>
      ))}
    </div>
  );
}

La fusion de classes. Quand un composant accepte des classes supplémentaires, deux classes contradictoires peuvent coexister (px-4 et px-6). La bibliothèque tailwind-merge, souvent associée à clsx, résout ces conflits en ne gardant que la dernière :

import { twMerge } from "tailwind-merge";

twMerge("px-4 py-2 bg-teal-600", "px-6"); // "py-2 bg-teal-600 px-6"

@apply avec parcimonie. La directive @apply regroupe des utilitaires dans une classe CSS classique. Elle reste utile pour styler du contenu que vous ne contrôlez pas (texte issu d’un CMS, par exemple), mais l’utiliser partout revient à réécrire du CSS traditionnel avec une étape de plus.

Déployer un site Tailwind CSS

Avant la mise en ligne, lancez npm run build : Vite compile le projet dans un dossier dist qui contient une feuille de style réduite aux classes utilisées. Ce dossier peut être hébergé sur n’importe quel serveur statique.

Le déploiement le plus simple passe par un dépôt Git :

  1. Poussez votre projet sur GitHub. Si vous ne maîtrisez pas encore les commandes, notre guide pour apprendre Git et GitHub vous accompagne.
  2. Créez un compte sur une plateforme d’hébergement comme Vercel et importez le dépôt.
  3. La plateforme détecte Vite (ou Next.js), exécute la compilation et publie le site sur une adresse publique.
  4. Chaque nouveau git push redéploie automatiquement le site.

Les erreurs fréquentes avec Tailwind CSS

ErreurCauseSolution
Une classe n’a aucun effetClasse construite dynamiquement (bg-${couleur}-500) : Tailwind ne peut pas la détecterÉcrire les noms de classes complets, par exemple via un objet de correspondance
Aucun style dans un fichierFichier hors du périmètre analysé par TailwindDéclarer le dossier avec @source (ou content sous Tailwind 3)
Le responsive semble inversésm: compris comme « petit écran »Styler d’abord le mobile sans préfixe, puis ajouter md:, lg:
Deux classes se contredisentp-4 et p-6 sur le même élémentSupprimer le doublon, ou utiliser tailwind-merge dans les composants
Le mode sombre ne se déclenche pas au clicVariante dark: toujours liée au systèmeRedéfinir la variante avec @custom-variant et une classe dark
Mise en page cassée sur mobileBalise meta viewport absenteAjouter <meta name="viewport" content="width=device-width, initial-scale=1.0">
Site lent en productionScript CDN utilisé à la place d’une compilationInstaller Tailwind avec Vite ou la CLI et compiler

Tailwind vs CSS classique vs Bootstrap : comparaison

CritèreCSS classiqueBootstrapTailwind CSS
ApprocheFeuille de style écrite à la mainComposants prêts à l’emploiClasses utilitaires à combiner
Design sur mesureTotalLimité sans personnalisation pousséeTotal, dans une échelle cohérente
Vitesse pour un prototypeLenteTrès rapideRapide
Poids du CSS finalSelon votre codeImportant si non optimiséRéduit aux classes utilisées
Composants JavaScript inclusNonOui (modales, carrousels, menus)Non
Courbe d’apprentissageBase indispensableFaibleMoyenne, suppose de connaître le CSS

Le débat Tailwind vs CSS est en partie un faux débat : Tailwind génère du CSS et en exige la compréhension. Bootstrap reste pertinent pour un back-office ou un prototype où l’apparence standard convient, comme nous l’expliquons dans notre guide Bootstrap 5. Tailwind prend l’avantage dès que vous partez d’une maquette personnalisée, surtout dans une application en composants comme celles construites avec React et Next.js.

Comparatif de Tailwind CSS, du CSS classique et de Bootstrap : approche, design sur mesure, vitesse et poids du CSS
Tailwind CSS, CSS classique ou Bootstrap ?

Comment apprendre Tailwind CSS efficacement ?

Avec des bases en HTML et CSS, voici le parcours que nous recommandons :

  1. Premières heures : découverte avec le script CDN, logique utility-first, espacements, couleurs, typographie. Reproduisez une carte ou un bouton trouvés sur un site que vous aimez.
  2. Premiers jours : Flexbox, Grid, responsive, états hover et focus, variantes group et peer.
  3. Première semaine : installation avec Vite, extension IntelliSense, personnalisation du thème, mode sombre.
  4. Ensuite : un projet complet (page d’accueil, navigation, cartes générées dynamiquement, menu latéral animé), puis son déploiement.

Pour être guidé du premier utilitaire à la mise en ligne, la formation vidéo pour maîtriser Tailwind CSS en projet réel d’EspritAcadémique dure 2 h 20 et ne demande aucun prérequis. Elle couvre notamment :

  • la philosophie utility-first et la création de vos premières cartes ;
  • les mises en page avec Flexbox et CSS Grid, et le responsive par points de rupture ;
  • les états hover et focus, les variantes group et peer ;
  • la personnalisation du thème, les directives et le mode sombre ;
  • la construction d’un projet dans VS Code : barre de navigation, page d’accueil, cartes dynamiques, fusion de classes et menu latéral animé ;
  • le déploiement du site avec GitHub et Vercel.

En résumé

Tailwind CSS remplace l’écriture d’une feuille de style par l’assemblage de classes utilitaires cohérentes, directement dans le HTML. Installez-le avec Vite, apprenez la grammaire des classes, construisez vos mises en page avec Flexbox et Grid, pensez mobile first avec les préfixes responsive, puis personnalisez le thème avec @theme. Organisez votre code en composants, et gardez en tête que chaque classe traduit une propriété CSS qu’il faut comprendre.

Sources et documentation officielle

Questions fréquentes

Faut-il connaître le CSS avant d'apprendre Tailwind CSS ?

Oui, c'est fortement recommandé. Tailwind ne fait que proposer des raccourcis vers des propriétés CSS : flex, grid, padding, marges, positionnement. Sans comprendre le modèle de boîte, Flexbox ou Grid, vous saurez écrire des classes mais pas pourquoi une mise en page ne fonctionne pas. Quelques semaines de bases en CSS rendent l'apprentissage de Tailwind beaucoup plus rapide.

Tailwind CSS est-il gratuit ?

Oui. Tailwind CSS est un projet open source sous licence MIT, utilisable gratuitement dans des projets personnels comme commerciaux. L'équipe qui le développe commercialise en revanche des produits complémentaires, comme des bibliothèques de composants et de modèles prêts à l'emploi, qui restent facultatifs pour utiliser le framework.

Tailwind CSS alourdit-il le code HTML ?

Les attributs class deviennent plus longs, c'est la principale critique faite à Tailwind. En contrepartie, la feuille de style finale est réduite aux seules classes utilisées. Pour garder un code lisible, on découpe l'interface en composants réutilisables (React, Vue, Blade, Astro…) : la longue liste de classes n'est alors écrite qu'une seule fois par composant.

Peut-on utiliser Tailwind CSS avec React ou Next.js ?

Oui, c'est même l'un des usages les plus répandus. L'assistant de création de projet Next.js propose d'installer Tailwind CSS automatiquement, et l'intégration avec Vite pour React tient en quelques lignes. Dans les composants JSX, les classes Tailwind s'écrivent simplement dans l'attribut className.

Combien de temps faut-il pour apprendre Tailwind CSS ?

Avec des bases en CSS, quelques heures suffisent pour comprendre la logique utility-first et créer une première page. Comptez une à deux semaines de pratique sur un projet réel pour mémoriser les classes courantes, maîtriser le responsive, les états et la personnalisation du thème. L'extension IntelliSense de VS Code accélère nettement cette phase.

Peut-on utiliser Tailwind CSS avec un CDN ?

Oui, pour tester ou prototyper : Tailwind fournit un script navigateur qui génère les styles à la volée. Il est pratique pour découvrir le framework sans installation, mais il n'est pas prévu pour la production, car il alourdit la page et calcule les styles dans le navigateur. Pour un vrai site, installez Tailwind avec son outil de compilation.