From c9d41a8abeab59eaeb4868fb12a4a65e135c2328 Mon Sep 17 00:00:00 2001 From: Hyko Date: Sun, 26 Apr 2026 11:53:18 -0400 Subject: [PATCH] docs(styles): add tailwind source scanning for zen modules - add `@source` directive in zen.css to auto-scan `@zen/module-*/dist/**/*.js` - document tailwind class auto-discovery mechanism for modules in MODULES.md --- docs/MODULES.md | 16 ++++++++++++++++ src/shared/styles/zen.css | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/docs/MODULES.md b/docs/MODULES.md index f5a6ec3..f2c40f1 100644 --- a/docs/MODULES.md +++ b/docs/MODULES.md @@ -371,6 +371,22 @@ Toute variable requise par le module doit être déclarée dans `manifest.envVar --- +## Classes Tailwind + +Le projet consommateur importe `@zen/core/styles/zen.css`, qui déclare deux directives `@source` : + +1. `@source "../../**/*.js"` — scanne `node_modules/@zen/core/dist/**/*.js` +2. `@source "../../../../module-*/dist/**/*.js"` — scanne `node_modules/@zen/module-*/dist/**/*.js` + +Conséquence pour un module : les classes Tailwind utilisées dans les composants du module sont générées **automatiquement** par le Tailwind du consommateur, à condition que : + +- Le package soit publié sous le nom `@zen/module-` (la convention est déjà imposée par la découverte runtime des modules). +- Les fichiers compilés se trouvent dans `dist/` (pattern de scan). + +Aucune action n'est requise côté module ni côté consommateur — un module peut donc utiliser librement n'importe quelle classe Tailwind, y compris des variantes responsives (`md:`, `lg:`...) ou des valeurs arbitraires (`w-[300px]`). + +--- + ## Squelette minimal d'un module ``` diff --git a/src/shared/styles/zen.css b/src/shared/styles/zen.css index 4ca8c04..2ab07c6 100644 --- a/src/shared/styles/zen.css +++ b/src/shared/styles/zen.css @@ -1,5 +1,9 @@ /* Tailwind v4: tells the consumer's Tailwind to scan this package's components */ @source "../../**/*.js"; +/* Découverte automatique des classes Tailwind dans les modules `@zen/module-*` + installés dans le projet consommateur. Chemin résolu depuis + node_modules/@zen/core/dist/shared/styles/zen.css. */ +@source "../../../../module-*/dist/**/*.js"; /* ── IBM Plex Sans (variable font) ──────────────────────────────────────── */ @font-face {