@etchteam/storybook-addon-css-variables-theme

中文文档
3.0.0发布于 2024/05/01MITTypeScriptESM + CJS零依赖近 30 天下载 2.6万

切换 CSS 文件以更改主题

此软件包已被标记为弃用

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

中文使用文档
文档目录10 节
  1. 安装
  2. 配置
  3. 第1步:添加加词
  4. 步骤2: 包含您的 CSS 文件
  5. 第3步:增加装饰器
  6. 怎么样
  7. 为故事设定一个特定的主题
  8. 在故事中获取当前启用的主题
  9. 由查询字符串设置主题
  10. 用于 MDX 文件

故事本 Addon CSS 变量 主题

故事书 CSS 变量 主题可用于切换 CSS 文件 故事书。 。 。 .

React Storybook Screenshot

安装

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

配置

第1步:添加加词

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

增加以下代码:

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

步骤2: 包含您的 CSS 文件

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

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

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 变量中导入装饰器

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

export const decorators = [
  cssVariablesTheme,
];

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

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

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

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

怎么样

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

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

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

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

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


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

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

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 文件

此附加通过一个 装饰。 。 。 .

因此,在MDX文件中, 样式将仅适用于 <Story> 或者说 <Canvas>。 。 。 .


{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}用.. 爱奇

版本与发布记录

@etchteam/storybook-addon-css-variables-theme 共发布 29 个版本,首次发布于 2021/06/16;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.0.0latest2024/05/012 年前
2.1.22024/05/012 年前
2.1.12024/04/302 年前
2.1.02024/04/262 年前
2.0.62023/12/142 年前
2.0.52023/12/142 年前

关于 @etchteam/storybook-addon-css-variables-theme 的常见问题

@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。作者已将其标记为弃用,新项目建议寻找替代方案。