From 8ef359f17daa30469e9323d8f0ea487346855263 Mon Sep 17 00:00:00 2001 From: Qingyu Wang Date: Thu, 26 Feb 2026 19:33:38 +0800 Subject: [PATCH 1/5] docs(v4): add JSDoc for plugin options --- src/index.ts | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/src/index.ts b/src/index.ts index 03154b6..e3df725 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,8 +10,102 @@ const VIRTUAL_UTILITIES_ID = '/virtual-tailwindcss/utilities.css'; const VIRTUAL_GLOBAL_ID = '/virtual-tailwindcss/global.css'; export interface PluginTailwindCSSOptions { + /** + * The path to the Tailwind CSS configuration file. + * + * @remarks + * If a relative path is provided, it is resolved from the rsbuild root + * (`api.context.rootPath`). When omitted, the plugin will look for + * `tailwind.config.js` in the project root. If the file does not exist, + * Tailwind will run with its default configuration. + * + * @example + * + * Use a config file in a custom folder: + * + * ```js + * // rsbuild.config.ts + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * config: './config/tailwind.config.js', + * }), + * ], + * } + * ``` + * + * @example + * + * Use an absolute config path: + * + * ```js + * // rsbuild.config.ts + * import path from 'node:path' + * import { fileURLToPath } from 'node:url' + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * const __dirname = path.dirname(fileURLToPath(import.meta.url)) + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * config: path.resolve(__dirname, './tailwind.config.js'), + * }), + * ], + * } + * ``` + */ config?: string; + /** + * The path to the Tailwind CSS theme entry module. + * + * @remarks + * By default this is resolved via `require.resolve('tailwindcss/theme')`. + * Override this option when you want to load the theme layer from a custom + * package or a dedicated `@theme` CSS file instead of the default Tailwind + * theme. + * + * The value can be a module id that Node.js can resolve or an absolute file + * path. + * + * @example + * + * Use a custom `@theme` CSS file: + * + * ```js + * // rsbuild.config.ts + * import path from 'node:path' + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * theme: path.resolve(__dirname, './config/custom-theme.css'), + * }), + * ], + * } + * ``` + * + * @example + * + * Use a shared theme package: + * + * ```js + * // rsbuild.config.ts + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * theme: require.resolve('@acme/tailwind-theme'), + * }), + * ], + * } + * ``` + */ theme?: string; } From 817f8e569046024d1ffc68b66e8da11c3415132b Mon Sep 17 00:00:00 2001 From: Qingyu Wang Date: Thu, 26 Feb 2026 19:40:52 +0800 Subject: [PATCH 2/5] docs(v4): improve theme option example --- src/index.ts | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/src/index.ts b/src/index.ts index e3df725..107cad8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -89,25 +89,28 @@ export interface PluginTailwindCSSOptions { * } * ``` * - * @example - * - * Use a shared theme package: - * - * ```js - * // rsbuild.config.ts - * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' - * - * export default { - * plugins: [ - * pluginTailwindCSS({ - * theme: require.resolve('@acme/tailwind-theme'), - * }), - * ], - * } - * ``` - */ - theme?: string; -} + * @example + * + * Use a shared theme package (ES module config): + * + * ```js + * // rsbuild.config.ts + * import { createRequire } from 'node:module' + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * const require = createRequire(import.meta.url) + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * theme: require.resolve('@acme/tailwind-theme'), + * }), + * ], + * } + * ``` + */ + theme?: string; + } export const pluginTailwindCSS = ( options?: PluginTailwindCSSOptions, From 71c3208c35a3c1fa3c7a620fd9e0ff3a555567d4 Mon Sep 17 00:00:00 2001 From: Qingyu Wang Date: Thu, 26 Feb 2026 19:41:09 +0800 Subject: [PATCH 3/5] chore(v4): format theme JSDoc block --- src/index.ts | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/index.ts b/src/index.ts index 107cad8..ff15fb5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -89,28 +89,28 @@ export interface PluginTailwindCSSOptions { * } * ``` * - * @example - * - * Use a shared theme package (ES module config): - * - * ```js - * // rsbuild.config.ts - * import { createRequire } from 'node:module' - * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' - * - * const require = createRequire(import.meta.url) - * - * export default { - * plugins: [ - * pluginTailwindCSS({ - * theme: require.resolve('@acme/tailwind-theme'), - * }), - * ], - * } - * ``` - */ - theme?: string; - } + * @example + * + * Use a shared theme package (ES module config): + * + * ```js + * // rsbuild.config.ts + * import { createRequire } from 'node:module' + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * const require = createRequire(import.meta.url) + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * theme: require.resolve('@acme/tailwind-theme'), + * }), + * ], + * } + * ``` + */ + theme?: string; +} export const pluginTailwindCSS = ( options?: PluginTailwindCSSOptions, From 0fbd026c8df5ef92e3a42262aef07513941091d8 Mon Sep 17 00:00:00 2001 From: Qingyu Wang Date: Thu, 26 Feb 2026 19:44:37 +0800 Subject: [PATCH 4/5] docs(v4): define __dirname in theme example --- src/index.ts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/index.ts b/src/index.ts index ff15fb5..5e16114 100644 --- a/src/index.ts +++ b/src/index.ts @@ -75,19 +75,22 @@ export interface PluginTailwindCSSOptions { * * Use a custom `@theme` CSS file: * - * ```js - * // rsbuild.config.ts - * import path from 'node:path' - * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' - * - * export default { - * plugins: [ - * pluginTailwindCSS({ - * theme: path.resolve(__dirname, './config/custom-theme.css'), - * }), - * ], - * } - * ``` + * ```js + * // rsbuild.config.ts + * import path from 'node:path' + * import { fileURLToPath } from 'node:url' + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * const __dirname = path.dirname(fileURLToPath(import.meta.url)) + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * theme: path.resolve(__dirname, './config/custom-theme.css'), + * }), + * ], + * } + * ``` * * @example * From 3bc638edd146e7277fb5c8181dcfd78848026d04 Mon Sep 17 00:00:00 2001 From: Qingyu Wang Date: Thu, 26 Feb 2026 19:44:58 +0800 Subject: [PATCH 5/5] chore(v4): normalize JSDoc indentation --- src/index.ts | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/index.ts b/src/index.ts index 5e16114..4d03193 100644 --- a/src/index.ts +++ b/src/index.ts @@ -75,22 +75,22 @@ export interface PluginTailwindCSSOptions { * * Use a custom `@theme` CSS file: * - * ```js - * // rsbuild.config.ts - * import path from 'node:path' - * import { fileURLToPath } from 'node:url' - * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' - * - * const __dirname = path.dirname(fileURLToPath(import.meta.url)) - * - * export default { - * plugins: [ - * pluginTailwindCSS({ - * theme: path.resolve(__dirname, './config/custom-theme.css'), - * }), - * ], - * } - * ``` + * ```js + * // rsbuild.config.ts + * import path from 'node:path' + * import { fileURLToPath } from 'node:url' + * import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss' + * + * const __dirname = path.dirname(fileURLToPath(import.meta.url)) + * + * export default { + * plugins: [ + * pluginTailwindCSS({ + * theme: path.resolve(__dirname, './config/custom-theme.css'), + * }), + * ], + * } + * ``` * * @example *