# @etchteam/storybook-addon-css-variables-theme 中文文档

规范地址：https://npmcn.com/package/%40etchteam/storybook-addon-css-variables-theme/

版本：3\.0\.0
npm 元数据更新时间：2025-06-27T12:34:31.134Z
中文译文更新时间：2026-11-13T23:14:03.759Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40etchteam/storybook-addon-css-variables-theme
原文对照：https://npmcn.com/package/%40etchteam/storybook-addon-css-variables-theme/?lang=original
项目主页：https://github.com/etchteam/storybook-addon-css-variables-theme#readme
源码仓库：https://github.com/etchteam/storybook-addon-css-variables-theme

弃用说明：Package no longer supported\. Contact Support at https://www\.npmjs\.com/support for more info\.

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：28.9 kB，19 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2021-06-16T10:46:07.052Z
- 最新版本发布：2024-05-01T08:48:33.061Z
- 近 30 天下载量：26082（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：29（近 12 个月 0 个）

## 中文简介

切换 CSS 文件以更改主题

## 安装

```sh
npm install @etchteam/storybook-addon-css-variables-theme
```

也可以使用：`pnpm add @etchteam/storybook-addon-css-variables-theme`、`yarn add @etchteam/storybook-addon-css-variables-theme`、`bun add @etchteam/storybook-addon-css-variables-theme`

## README

# 故事本 Addon CSS 变量 主题

故事书 CSS 变量 主题可用于切换 CSS 文件 [故事书](https://storybook.js.org/)。 。 。 .

![React Storybook Screenshot](https://raw.githubusercontent.com/etchteam/storybook-addon-css-variables-theme/master/screenshot.gif)

## 安装

```sh
npm install @etchteam/storybook-addon-css-variables-theme --save-dev
```

## 配置

### 第1步:添加加词

创建名为的文件 `main.js` 在你身边 `.storybook` 文件夹.

增加以下代码:

```js
module.exports = {
  addons: ['@etchteam/storybook-addon-css-variables-theme'],
};
```

### 步骤2: 包含您的 CSS 文件

创建名为的文件 `preview.js` 在你身边 `.storybook` 文件夹.

在此文件中, 您需要使用加载器导入您的样式文件 。 以下是如何做到这一点的例子:

```js
import light from '!!style-loader?injectType=lazyStyleTag!css-loader!../src/styles/light.css'
import dark from '!!style-loader?injectType=lazyStyleTag!css-loader!../src/styles/dark.css'
```

此代码调用 `style-loader` 与 `?injectType=lazyStyleTag` 这样它就不会马上运行CSS.

你可以交换出去 `css-loader` 您所喜欢的SCSS/Less/etc装载器.

这里使用的任何加载器都需要安装在您的工程中: `npm i -D style-loader css-loader`

### 第3步:增加装饰器

同样 `preview.js` 文件从 CSS 变量中导入装饰器

```js
import cssVariablesTheme from '@etchteam/storybook-addon-css-variables-theme'

export const decorators = [
  cssVariablesTheme,
];
```

然后通过导出参数将 CSS 文件传递到加通.

```js
export const parameters = {
  cssVariables: {
    files: {
      'Light Theme': light,
      'Dark Theme': dark,
    }
  }
}
```

如果从第一个负载中选择默认主题, 请在选项中添加“ 默认主题 ” .

```js
export const parameters = {
  cssVariables: {
    files: {
      'Light Theme': light,
      'Dark Theme': dark,
    },
    defaultTheme: 'Light Theme'
  }
}
```

## 怎么样

### 为故事设定一个特定的主题

传出主题密钥为 `theme` 默认到特定主题的参数:

```js
export default {
  title: 'Example/Header',
  component: Header,
  parameters: {
    cssVariables: {
      theme: 'dark'
    }
  }
};
```

### 在故事中获取当前启用的主题

您可以从故事书提供的上下文对象中访问当前设定的主题作为第二个参数.

```js

const Template: ComponentStory<typeof Button> = (args, context) => (
  <Button {...args}>{context.globals.cssVariables ?? 'No theme'}</Button>
);

```

或者看习惯 `storybookcssvariables:theme:change` 活动 `document`。 。 。 .

```js
document.addEventListener(
  'storybookcssvariables:theme:change',
  (event: CustomEvent) => {
    console.info(`The theme changed to ${event?.detail?.theme}`);
  },
);
```

### 由查询字符串设置主题

主题被存储在故事书全球.

通过添加将主题传递到 URL 作为查询 `&globals=cssVariables:mytheme` 给url. 如果多词主题查询是 `&globals=cssVariables:my+theme`

### 用于 MDX 文件

此附加通过一个 [装饰](https://storybook.js.org/docs/addons/addons-api#makedecorator)。 。 。 .

因此,在MDX文件中, [样式将仅适用于 `<Story>` 或者说 `<Canvas>`](https://github.com/storybookjs/storybook/issues/12290#issuecomment-682404317)。 。 。 .

* * *

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}用.. [爱奇](https://etch.co/)

## 常见问题

### @etchteam/storybook-addon-css-variables-theme 是什么？

切换 CSS 文件以更改主题注意：该包已被作者标记为弃用——Package no longer supported\. Contact Support at https://www\.npmjs\.com/support for more info\.

### 如何安装 @etchteam/storybook-addon-css-variables-theme？

在项目目录运行 npm install @etchteam/storybook-addon-css-variables-theme，或使用 pnpm add / yarn add / bun add。

### @etchteam/storybook-addon-css-variables-theme 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @etchteam/storybook-addon-css-variables-theme 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @etchteam/storybook-addon-css-variables-theme 可以商用吗？

@etchteam/storybook-addon-css-variables-theme 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @etchteam/storybook-addon-css-variables-theme 的下载量有多少？

根据 npm 官方下载统计，@etchteam/storybook-addon-css-variables-theme 在 2026/10/14 – 2026/11/12 这 30 天内被下载 26,082 次，日均约 869 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @etchteam/storybook-addon-css-variables-theme 还在维护吗？

最新版本 3\.0\.0 发布于 2024/05/01（2 年前）；至今共发布 29 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/06/16。作者已将其标记为弃用，新项目建议寻找替代方案。

