Comment utiliser CSS dans votre application
Next.js offre plusieurs façons d'utiliser CSS dans votre application, notamment :
Modules CSS
Les modules CSS limitent la portée du CSS en générant des noms de classe uniques. Cela vous permet d'utiliser la même classe dans différents fichiers sans craindre les collisions de noms.
Pour commencer à utiliser les modules CSS, créez un nouveau fichier avec l'extension .module.css
et importez-le dans n'importe quel composant du répertoire app
:
CSS global
Vous pouvez utiliser le CSS global pour appliquer des styles à toute votre application.
Créez un fichier app/global.css
et importez-le dans la mise en page racine pour appliquer les styles à chaque route de votre application :
Bon à savoir : Les styles globaux peuvent être importés dans n'importe quelle mise en page, page ou composant du répertoire
app
. Cependant, comme Next.js utilise la prise en charge native des feuilles de style par React pour s'intégrer à Suspense, cela ne supprime actuellement pas les feuilles de style lors de la navigation entre les routes, ce qui peut entraîner des conflits. Nous recommandons d'utiliser les styles globaux pour le CSS vraiment global, et les modules CSS pour le CSS à portée limitée.
Feuilles de style externes
Les feuilles de style publiées par des packages externes peuvent être importées n'importe où dans le répertoire app
, y compris dans les composants colocalisés :
Bon à savoir : Dans React 19,
<link rel="stylesheet" href="..." />
peut également être utilisé. Consultez la documentation React surlink
pour plus d'informations.
Ordre et fusion
Next.js optimise le CSS lors des builds de production en regroupant automatiquement (fusionnant) les feuilles de style. L'ordre de votre CSS dépend de l'ordre dans lequel vous importez les styles dans votre code.
Par exemple, base-button.module.css
sera ordonné avant page.module.css
car <BaseButton>
est importé avant page.module.css
:
Recommandations
Pour maintenir un ordre CSS prévisible :
- Essayez de limiter les imports CSS à un seul fichier d'entrée JavaScript ou TypeScript
- Importez les styles globaux et les feuilles de style Tailwind à la racine de votre application.
- Utilisez des modules CSS plutôt que des styles globaux pour les composants imbriqués.
- Utilisez une convention de nommage cohérente pour vos modules CSS. Par exemple, utilisez
<nom>.module.css
plutôt que<nom>.tsx
. - Extrayez les styles partagés dans des composants partagés pour éviter les imports en double.
- Désactivez les linters ou formateurs qui trient automatiquement les imports comme
sort-imports
d'ESLint. - Vous pouvez utiliser l'option
cssChunking
dansnext.config.js
pour contrôler comment le CSS est regroupé.
Développement vs Production
- En développement (
next dev
), les mises à jour CSS s'appliquent instantanément avec Fast Refresh. - En production (
next build
), tous les fichiers CSS sont automatiquement concaténés en plusieurs fichiers.css
minifiés et découpés, garantissant que la quantité minimale de CSS est chargée pour une route. - Le CSS se charge toujours avec JavaScript désactivé en production, mais JavaScript est nécessaire en développement pour Fast Refresh.
- L'ordre du CSS peut se comporter différemment en développement, vérifiez toujours le build (
next build
) pour confirmer l'ordre final du CSS.