Configuration de Tailwind CSS

Le fichier de configuration principal de Tailwind CSS esttailwind.config.js。

tailwind.config.js est le fichier de configuration de Tailwind CSS, utilisé pour personnaliser la configuration par défaut de Tailwind.

En modifiant le fichier tailwind.config.js, les développeurs peuvent personnaliser des éléments du système de conception tels que les couleurs, les espacements, les polices et les points de rupture afin de répondre aux exigences spécifiques d'un projet.

Créer le fichier de configuration

Vous pouvez rapidement générer un fichier tailwind.config.js de base à l'aide de l'outil CLI de Tailwind CSS.

Exécutez la commande suivante dans le répertoire racine du projet :

npx tailwindcss init

Cela créera un fichier tailwind.config.js contenant la configuration de base.

Structure de base

Voici la structure d'un fichier tailwind.config.js typique :

Exemple

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./src/**/*.{html,js,vue}"], // Définir les chemins des fichiers de modèle à analyser
  theme: {
    extend: {}, // Extensions personnalisées
  },
  plugins: [], // Configurer les plugins
}

Le code ci-dessus indique à Tailwind CSS de scanner tous les fichiers .html, .js et .vue dans le répertoire src.


Principaux éléments de configuration

1. Configurer le chemin du modèle : content

Dans le fichier tailwind.config.js, l'option content sert à spécifier les fichiers que Tailwind CSS doit scanner pour collecter les noms de classe.
content: [
  "./index.html", // 单文件路径
  "./src/**/*.{html,js,ts,jsx,tsx}", // 包含多个文件类型的路径
],

Cela indique à Tailwind CSS de scanner tous les fichiers .html, .js, .ts, .jsx et .tsx dans le répertoire src.

Le champ content sert à spécifier les chemins des fichiers modèles pour Tailwind. Tailwind scanne ces fichiers pour générer les styles nécessaires, ce qui réduit la taille du fichier CSS généré en ne générant que les styles utilisés dans les fichiers modèles, empêchant les styles inutilisés d'être compilés dans la sortie finale.

2. Personnaliser le thème : theme

Dans la section theme, vous pouvez définir des couleurs, des polices, des espacements, des tailles de bordure, et plus encore.

Par exemple, étendez les couleurs par défaut ou ajoutez de nouvelles couleurs :

theme: {
  extend: {
    colors: {
      cyan: '#9CDBFF',
    }
  }
}

Cela ajoutera une nouvelle couleur nommée cyan, et vous pourrez utiliser des noms de classe comme bg-cyan dans votre projet.

Élément de configurationDescriptionExemple
fontSizeTaille de police personnaliséejavascript fontSize: { 'xs': '0.75rem', '4xl': '2.5rem', },
screensDéfinir des points de rupture (design responsive)javascript screens: { 'sm': '640px', 'xl': '1280px', },
borderRadiusRayon de bordure personnaliséjavascript borderRadius: { 'lg': '1rem', 'xl': '1.5rem', },
extendÉtendre les valeurs par défaut existantesjavascript extend: { colors: { danger: '#FF5A5F', }, },

Exemple

theme: {
  extend: {
    colors: {
      primary: '#1D4ED8',
      secondary: '#64748B',
    },
    spacing: {
      18: '4.5rem', // Ajouter un espacement de 4.5rem
    },
    fontSize: {
      '4xl': '2.5rem',
    },
    borderRadius: {
      'xl': '1.5rem',
    },
    screens: {
      '2xl': '1536px', // Ajouter de nouveaux points de rupture responsive
    },
  },
}

Définissez des couleurs via theme.colors et référencez-les dans les styles.

theme: {
  extend: {
    colors: {
      brand: {
        light: '#93C5FD',
        DEFAULT: '#3B82F6',
        dark: '#1E40AF',
      },
    },
  },
}

Exemple

<div class="bg-brand text-brand-light">Exemple de couleurs personnalisées</div>

Essayez-le »

Activez la prise en charge du mode sombre de Tailwind via darkMode.

module.exports = {
  darkMode: 'class', // ou  'media'
  theme: {
    extend: {
      colors: {
        background: {
          light: '#FFFFFF',
          dark: '#000000',
        },
      },
    },
  },
}

Exemple

<div class="bg-background-light dark:bg-background-dark">
  Exemple de mode sombre
</div>

3. Configurer les variantes : variants

L'option variants vous permet de définir quels états (tels que hover, focus, etc.) doivent être inclus dans le CSS final.

Vous pouvez étendre ou remplacer les variants par défaut :

variants: {
  extend: {
    borderColor: ['focus-visible'],
    opacity: ['disabled'],
  }
}

4. Utiliser les plugins : plugins

L'option plugins vous permet d'ajouter des classes utilitaires personnalisées.

Ces plugins peuvent être officiellement fournis par Tailwind CSS ou créés par la communauté, avec le format suivant :

plugins: [
  require('some-tailwindcss-plugin')
]

Exemple d'utilisation d'un plugin :

Exemple

const plugin = require('tailwindcss/plugin');

module.exports = {
  plugins: [
    plugin(function ({ addUtilities }) {
      addUtilities({
        '.text-shadow': {
          textShadow: '2px 2px 4px rgba(0,0,0,0.5)',
        },
      });
    }),
  ],
}

Importer les plugins de la communauté :

Exemple

module.exports = {
  plugins: [
    require('@tailwindcss/forms'), // Plugin de styles de formulaire
    require('@tailwindcss/typography'), // Plugin de typographie
  ],
}

Configuration de Tailwind CSS

Par défaut, Tailwind recherche le fichier tailwind.config.js dans le répertoire racine du projet, où vous pouvez définir les informations de configuration dont vous avez besoin :

Exemple

/** @type {import('tailwindcss').Config} */
module.exports = {
  // Spécifiez les fichiers à partir desquels Tailwind CSS doit extraire les noms de classes. Ici, il est configuré pour extraire de tous les fichiers `.html` et `.js` du répertoire `./src`.
  content: ['./src/**/*.{html,js}'],

  theme: {
    // Configuration des couleurs personnalisées
    colors: {
      'blue': '#1fb6ff', // Définit une couleur nommée 'blue' avec la valeur #1fb6ff
      'purple': '#7e5bef', // Définit une couleur nommée 'purple' avec la valeur #7e5bef
      'pink': '#ff49db', // Définit une couleur nommée 'pink' avec la valeur #ff49db
      'orange': '#ff7849', // Définit une couleur nommée 'orange' avec la valeur #ff7849
      'green': '#1370CE', // Définit une couleur nommée 'green' avec la valeur #1370CE
      'yellow': '#ffc82c', // Définit une couleur nommée 'yellow' avec la valeur #ffc82c
      'gray-dark': '#273444', // Définit une couleur nommée 'gray-dark' avec la valeur #273444
      'gray': '#8492a6', // Définit une couleur nommée 'gray' avec la valeur #8492a6
      'gray-light': '#d3dce6' // Définit une couleur nommée 'gray-light' avec la valeur #d3dce6
    },
    // Configuration personnalisée de la famille de polices
    fontFamily: {
      sans: ['Graphik', 'sans-serif'], // Définit une famille de polices nommée 'sans', incluant 'Graphik' et la générique 'sans-serif'
      serif: ['Merriweather', 'serif'] // Définit une famille de polices nommée 'serif', incluant 'Merriweather' et la générique 'serif'
    },
    // Configuration d'extension personnalisée
    extend: {
      // Extension personnalisée des espacements
      spacing: {
        '8xl': '96rem', // Définit un espacement nommé '8xl' avec la valeur 96rem
        '9xl': '128rem' // Définit un espacement nommé '9xl' avec la valeur 128rem
      },
      // Extension personnalisée du rayon de bordure
      borderRadius: {
        '4xl': '2rem' // Définit un rayon de bordure nommé '4xl' avec la valeur 2rem
      }
    }
  },
}

Le tableau suivant répertorie les options de configuration du fichier tailwind.config.js et leurs descriptions d'utilisation :

Élément de configurationDescriptionValeur par défautExemple
contentConfigurer les chemins des fichiers modèles que Tailwind CSS doit analyser, servant à supprimer les styles inutilisés.['./src/**/*.{html,js,ts,jsx,tsx}']content: ["./src/**/*.html", "./src/**/*.vue"]
themeUtilisé pour définir et étendre le système de design par défaut de Tailwind, y compris les couleurs, l'espacement, les polices, etc.extend: {}theme: { colors: { primary: '#3490dc' } }
extendUtilisé pour étendre les éléments de configuration par défaut de Tailwind plutôt que de remplacer les valeurs par défaut.{}extend: { colors: { primary: '#3490dc' } }
screensConfigurer les points de rupture responsives pour déterminer quand des styles spécifiques sont appliqués.{ sm: '640px', md: '768px', lg: '1024px', xl: '1280px' }screens: { '2xl': '1536px' }
colorsPersonnaliser ou étendre la palette de couleurs.Fournit une gamme de couleurs par défaut, telles queblue, red, greenwaitcolors: { primary: '#1D4ED8', secondary: '#64748B' }
spacingDéfinir les marges intérieures et extérieures (p, m, pt, mtetc.).Fournit des unités par défaut, telles que0.5rem, 1rem, 2remwaitspacing: { 18: '4.5rem' }
fontFamilyPersonnaliser la famille de polices.'sans', 'serif', 'mono'fontFamily: { sans: ['Inter', 'sans-serif'] }
fontSizePersonnaliser la taille de police.'sm': '0.875rem', 'lg': '1.125rem'fontSize: { '4xl': '2.5rem' }
fontWeightPersonnaliser l'épaisseur de police.'normal', 'bold', 'bolder', 'lighter'fontWeight: { 'light': '300', 'bold': '700' }
lineHeightDéfinir la hauteur de ligne.'none': '1', 'tight': '1.25', 'normal': '1.5', 'loose': '2'lineHeight: { 'relaxed': '1.75', 'loose': '2' }
borderRadiusDéfinir le rayon de bordure.'none': '0px', 'sm': '0.125rem', 'md': '0.375rem', 'lg': '0.5rem'borderRadius: { 'xl': '1.5rem' }
borderWidthDéfinir la largeur de bordure.{ default: '1px', '0': '0', '2': '2px' }borderWidth: { '3': '3px' }
zIndexSetz-indexle niveau.{ '0': '0', '10': '10', '20': '20' }zIndex: { 'max': '9999' }
opacityDéfinir la valeur d'opacité.{ '0': '0', '25': '0.25', '50': '0.5', '75': '0.75', '100': '1' }opacity: { '40': '0.4' }
boxShadowDéfinir l'ombre portée.{ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)', default: '0 4px 6px rgba(0, 0, 0, 0.1)'}boxShadow: { 'lg': '0 10px 15px -3px rgba(0, 0, 0, 0.1)' }
containerDéfinir la largeur maximale du conteneur (pour le responsive design).{ center: false, padding: '2rem' }container: { center: true, padding: '1rem' }
aspectRatioDéfinir le rapport d'aspect des éléments.{ 'none': 'none' }aspectRatio: { '16/9': '16/9' }
gridTemplateColumnsDéfinir le modèle de colonnes de CSS Grid.{ auto: 'auto', '1fr': '1fr' }gridTemplateColumns: { 'layout': 'repeat(3, 1fr)' }
gridColumnDéfinir le comportement column-span des éléments de grille.{ 'span-1': 'span 1 / span 1' }gridColumn: { 'span-2': 'span 2 / span 2' }
transitionPropertyDéfinir les propriétés de transition.{ all: 'all' }transitionProperty: { 'color': 'color' }
transitionDurationDéfinir la durée de transition.{ 75: '75ms', 150: '150ms', 300: '300ms' }transitionDuration: { '400': '400ms' }
transitionTimingFunctionDéfinir la fonction de temporisation des transitions.{ 'ease': 'ease', 'linear': 'linear' }transitionTimingFunction: { 'ease-out': 'ease-out' }

Avec tailwind.config.js, vous pouvez facilement personnaliser les fonctionnalités et les styles de Tailwind CSS pour répondre à divers besoins de conception. Une utilisation raisonnable de fonctionnalités telles que extend, plugins et la configuration du thème peut grandement améliorer l'efficacité de développement du projet et la flexibilité des styles.

Autres extensions