Intégration de Tailwind CSS avec Docusaurus
Étape 1 : Installation de Tailwind CSS et ses dépendances
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init
Pourquoi c'est nécessaire :
tailwindcss
: La librairie principale de Tailwind CSS qui génère les classes utilitairespostcss
: Requis pour le traitement du CSS de Tailwind (Tailwind est un plugin PostCSS)autoprefixer
: Ajoute les préfixes vendeurs aux règles CSS pour une meilleure compatibilité navigateurnpx tailwindcss init
: Crée un fichier de configuration par défaut (tailwind.config.js
) pour personnaliser Tailwind
Étape 2 : Configuration de Tailwind CSS
Le fichier tailwind.config.js
indique à Tailwind où chercher les classes utilisées :
content: [
'./src/**/*.{js,jsx,ts,tsx}',
'./docs/**/*.{md,mdx}',
'./blog/**/*.{md,mdx}',
'./static/**/*.html',
'./docusaurus.config.js',
]
Pourquoi c'est important :
- Tailwind scanne ces fichiers pour trouver les classes à générer
- Sans les bons chemins, vos classes utilitaires ne fonctionneront pas
- On inclut les fichiers JS/TS, MD/MDX et HTML pour couvrir tout le contenu Docusaurus
Étape 3 : Création de la configuration PostCSS
postcss.config.js
configure le pipeline de traitement CSS :
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
Pourquoi c'est nécessaire :
- PostCSS doit savoir quels plugins utiliser
- L'ordre compte : Tailwind s'exécute d'abord, puis autoprefixer
- Docusaurus utilise déjà PostCSS en interne, ceci l'étend simplement
Étape 4 : Ajout des directives Tailwind
Dans votre fichier CSS principal (src/css/custom.css
) :
@tailwind base;
@tailwind components;
@tailwind utilities;
Ce que cela fait :
@tailwind base
: Ajoute les styles de base de Tailwind (normalize.css + styles basiques)@tailwind components
: Ajoute les classes de composants (comme .btn, .card)@tailwind utilities
: Génère toutes les classes utilitaires (la partie la plus importante)
Étape 5 : Mise à jour de la configuration Docusaurus
Le plugin dans docusaurus.config.js
:
async function myPlugin() {
return {
name: 'docusaurus-tailwindcss',
configurePostCss(postcssOptions) {
postcssOptions.plugins.push(require('tailwindcss'));
postcssOptions.plugins.push(require('autoprefixer'));
return postcssOptions;
},
};
}
Pourquoi c'est critique :
- Docusaurus a sa propre configuration PostCSS
- Ce plugin garantit que Tailwind est ajouté à ce pipeline
- Sans cela, Docusaurus ignorerait le traitement de Tailwind
Étape 6 : Purge des styles inutilisés (Optionnel)
L'option purge
dans Tailwind v2 (appelée content
dans v3+) :
purge: [
'./src/**/*.{js,jsx,ts,tsx}',
// ... autres chemins
]
Objectif :
- En production, supprime les classes CSS inutilisées
- Réduit significativement la taille du fichier CSS final
- Ne scanne que les fichiers correspondant à ces motifs
Étape 7 : Utilisation de Tailwind dans les composants
Exemple d'utilisation dans un composant :
<div className="bg-blue-500 text-white p-4 rounded-lg">
Points clés :
- Utilisez
className
au lieu declass
dans les composants React - Les classes utilitaires fonctionnent comme en HTML
- Fonctionne dans les composants React et les fichiers MDX
Notes importantes
- Processus de build : Tailwind fonctionne pendant le build, pas au runtime
- Détection des classes : Seules les classes trouvées dans vos fichiers de contenu seront générées
- Conflits CSS : Les styles de base de Tailwind peuvent entrer en conflit avec Docusaurus - des ajustements peuvent être nécessaires
- Mode sombre : Le mode sombre de Tailwind peut fonctionner avec le système de thème de Docusaurus
- Redémarrage nécessaire : Après des changements de configuration, redémarrez votre serveur de développement