在 html 标签中添加 data 属性以在深色/浅色模式之间切换。

在 Github 上查看

Storybook 主题切换

此插件可用于在 Storybook 的 iframe html 元素中设置 data 属性,从而触发深色和浅色模式之间的切换。

这需要在您的项目中进行适当的配置。

用例

您有一个使用 next-themes 管理主题的 React 应用程序,它在 html 元素上添加了一个 data 属性,您可以使用它来设置应用程序的样式。

您将 CSS 捆绑到单个文件中并在 Storybook 中加载它。

// .storybook/preview.ts
import './styles.css';

您的捆绑 CSS 包含深色和浅色模式样式。

您的主 CSS 文件中包含类似以下内容

:root {
    --background: white;
    --foreground: black;
}

[data-color-theme='dark'] {
    --background: black;
    --foreground: white;
}

:warning: 警告! 目前此插件仅适用于 data-color-theme 属性名称。

将来会提供可配置选项。

安装

需要 Storybook 6.1 或更高版本。

使用 npm 安装模块

npm i -D storybook-theme-toggle

或使用 yarn

yarn add -D storybook-theme-toggle

然后,将以下内容添加到 .storybook/main.js

module.exports = {
    addons: ['storybook-theme-toggle'],
};

用法

单击工具栏中的新主题切换按钮,在深色和浅色模式之间切换。

您可能希望使用应用程序的画布样式创建一个自定义 Layout 组件,以获得更好的效果。