Organisation des fichiers et des dossiers
Structurez vos points d’entrée CSS, feuilles de style des composants et fichiers de configuration pour conserver une organisation claire lorsque les projets dépassent le cadre d’un seul fichier.
Organisation des fichiers et des dossiers est une leçon Tailwind CSS Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Tailwind CSS Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Tailwind CSS Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why File Organization Matters
As Tailwind projects grow, the number of files involving CSS-related configuration — the Tailwind config, PostCSS config, global stylesheets, and component-level CSS — multiplies. Without a clear structure, these files scatter across the project and become hard to find. Good file organization makes it immediately obvious where to add new values, where global overrides live, and which CSS belongs to which component.
Root-Level Config Files
Config files that affect the entire build — tailwind.config.js, postcss.config.js, and .prettierrc — live at the project root alongside package.json. They are root-level because build tools discover them by convention. Never nest them inside src/ unless your toolchain explicitly supports non-root config discovery.
my-project/
├── tailwind.config.js # ← root level
├── postcss.config.js # ← root level
├── .prettierrc # ← root level
├── package.json
├── src/
│ ├── styles/
│ │ └── globals.css # @tailwind directives
│ └── components/The Styles Directory
Place all CSS files inside a dedicated src/styles/ directory. The main entry point is globals.css, which contains the three @tailwind directives, @layer overrides for base elements, and imports for any additional stylesheets. Component-specific CSS goes in separate files like button.css or prose-overrides.css, imported into globals.css.
src/styles/
├── globals.css # main entry: @tailwind base/components/utilities
├── base.css # @layer base: html, body, heading resets
├── components.css # @layer components: .btn, .card, .badge
├── utilities.css # @layer utilities: custom utility helpers
└── prose-overrides.css # @tailwindcss/typography customizationsAnatomy of globals.css
The globals.css file is the entry point imported into your application's root. It declares the three Tailwind directives in order, then imports any additional stylesheets. Avoid putting custom styles directly in this file beyond the directives — keep custom layer declarations in their own files that are imported here for clarity.
/* src/styles/globals.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Import custom layer files */
@import './base.css';
@import './components.css';
@import './utilities.css';Co-Locating Component CSS
For component-based frameworks like React or Vue, you can co-locate a small CSS file alongside the component file when the styles are tightly coupled. However, in Tailwind projects this is rare since most styling lives in class names directly in the markup. Reserve co-located CSS only for styles that genuinely cannot be expressed with utilities — such as complex :focus-within selectors or @keyframes.
src/components/
├── Button/
│ ├── Button.tsx
│ └── Button.module.css # Only if truly needed beyond Tailwind
├── Card/
│ ├── Card.tsx
│ └── Card.test.tsx
└── Modal/
└── Modal.tsx # No CSS file — pure Tailwind utilitiesSeparating Theme Extensions
When the tailwind.config.js grows large, extract the theme.extend object into a separate file like theme/extend.js. This keeps the root config file short and readable, while the theme extension file can grow as long as needed. Import and spread the extension back in the main config.
// theme/extend.js
module.exports = {
colors: {
brand: { 50: '#eff6ff', 500: '#3b82f6', 900: '#1e3a8a' },
},
fontFamily: {
display: ['Inter', 'sans-serif'],
},
spacing: {
18: '4.5rem',
128: '32rem',
},
};
// tailwind.config.js
const themeExtend = require('./theme/extend');
module.exports = {
content: [...],
theme: { extend: themeExtend },
plugins: [...],
};Separating Plugin Configuration
If your project uses several Tailwind plugins and each requires significant configuration, extract plugin setups into their own files inside a plugins/ directory. Each file exports a configured plugin and is imported in the main config's plugins array. This makes it easy to see which plugins are active and to adjust their settings independently.
plugins/
├── typography.js # require('@tailwindcss/typography')({...})
├── forms.js # require('@tailwindcss/forms')({strategy:'class'})
└── custom-utils.js # custom plugin function
// tailwind.config.js
module.exports = {
plugins: [
require('./plugins/typography'),
require('./plugins/forms'),
require('./plugins/custom-utils'),
],
};Organizing Token Files
Design tokens — colors, typography, spacing — are best defined in a separate tokens/ directory rather than inline in the Tailwind config. Each category of tokens lives in its own file: tokens/colors.js, tokens/typography.js, tokens/spacing.js. These files can be shared with design tools, Storybook configurations, and the Tailwind config simultaneously.
tokens/
├── colors.js # { primary: '#3b82f6', surface: '#ffffff', ... }
├── typography.js # { fontFamily: { sans: ['Inter', ...] }, ... }
└── spacing.js # { 18: '4.5rem', 128: '32rem', ... }
// tailwind.config.js
const colors = require('./tokens/colors');
const typography = require('./tokens/typography');
module.exports = {
theme: {
extend: { colors, ...typography },
},
};Content Glob Patterns
Keep content glob patterns organized and readable. Group them by file type and location rather than writing one catch-all glob that scans too broadly. Comment each glob to explain which part of the project it covers. Maintain this list actively — remove old patterns when directories are renamed or removed, and add new patterns when new file types are introduced.
// tailwind.config.js
content: [
// Pages and layouts
'./src/pages/**/*.{js,ts,jsx,tsx}',
'./src/layouts/**/*.{js,ts,jsx,tsx}',
// UI components
'./src/components/**/*.{js,ts,jsx,tsx}',
// Public HTML files
'./public/**/*.html',
// Email templates (if any)
'./emails/**/*.{js,ts,jsx,tsx}',
],Naming Conventions for CSS Layers
When using @layer to add custom styles, follow a consistent naming approach. Use @layer base for element-level resets (e.g., a, h1, input), @layer components for multi-utility patterns with meaningful names (.btn, .card), and @layer utilities for single-purpose utilities not in Tailwind's default set. Never mix these responsibilities.
/* src/styles/base.css */
@layer base {
html { @apply scroll-smooth; }
h1 { @apply text-4xl font-extrabold; }
a { @apply text-blue-600 hover:text-blue-700; }
}
/* src/styles/components.css */
@layer components {
.btn { @apply rounded-lg px-4 py-2 font-semibold; }
}
/* src/styles/utilities.css */
@layer utilities {
.text-balance { text-wrap: balance; }
}README for Style Conventions
Document the file and folder structure in your project's README or a dedicated STYLE_GUIDE.md. Include a diagram of the src/styles/ directory, explain which file each kind of style goes in, and note the content glob maintenance responsibility. New developers should be able to understand where to add a new custom color or a new component class by reading a single page of documentation.
# CSS Architecture
## File Map
- `tailwind.config.js` — theme tokens, content globs, plugins
- `src/styles/globals.css` — entry point, @tailwind directives
- `src/styles/base.css` — element resets in @layer base
- `src/styles/components.css` — .btn, .card, .badge in @layer components
- `tokens/colors.js` — brand color palette
## Adding a new custom utility
Add to `src/styles/utilities.css` inside `@layer utilities { }`. Quick Check
Test your understanding of Tailwind CSS Mastery concepts from this lesson.
Lesson Recap
In this lesson you learned: keeping config files at the project root for toolchain compatibility, organizing styles into a src/styles/ directory with separate files per layer, and extracting theme tokens and plugins into dedicated files as the config grows. Next up we explore coexisting with legacy CSS in existing projects.
Questions Fréquemment Posées
La leçon « Organisation des fichiers et des dossiers » est-elle gratuite ?
Oui — le texte complet de « Organisation des fichiers et des dossiers » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Tailwind CSS Academy, passe à CoddyKit PRO. Le cours Tailwind CSS Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Organisation des fichiers et des dossiers » ?
Structurez vos points d’entrée CSS, feuilles de style des composants et fichiers de configuration pour conserver une organisation claire lorsque les projets dépassent le cadre d’un seul fichier. Tu pratiques Tailwind CSS Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Tailwind CSS Academy ?
Aucune expérience préalable n'est requise. Tailwind CSS Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Organisation des fichiers et des dossiers » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Tailwind CSS Academy ?
Oui. Chaque leçon Tailwind CSS Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Organisation des fichiers et des dossiers
- Coexister avec un CSS existant
- Modules CSS et Tailwind
- Mettre Tailwind à l’échelle dans des monorepos