designtokenscss

使用 CSS 变量和设计令牌将 Storybook 插件添加到主题中

在 Github 上查看

使用变量 CSS 的设计令牌

使用变量 CSS 添加您的主题并在组件中使用它们。

根据您要使用的主题创建带有变量 CSS 的组件。

分步指南

  • 安装插件 npm 或 yarn
  • 添加 .storybook/main.(js,ts)
  • 在 .storybook/preview.(js,ts) 中配置您的主题

链接示例

主机 描述 链接
代码和预览 简单示例 链接
代码和预览 使用自定义面板 Storybook 变量的示例 链接

图像示例

要求

  • Storybook@>=6.0.0

    此插件应该与任何框架都能很好地配合使用:如果您发现插件无法工作,请提交问题。

入门指南

1. 安装

npm install --save-dev @outlinestudio/designtokenscss
# yarn add -D @outlinestudio/designtokenscss

2. 在 .storybook/main.(js,ts) 中注册插件

module.exports = {
  addons: ["@outlinestudio/designtokenscss"],
};

3. 在 .storybook/preview.(js,ts) 中注册插件

export const parameters = {
  designTokensCss: {
      label: 'Themes',
      persistData: true,
      themes: [
        {
          "name": "Theme One",
          "miniLogo": "",
          "tokens": {
            ## add all yours css variables here
            "--yours-primary": "#c8c615",
            "--yours-primary-text": "#faf9e8",
            "--yours-primary-container": "#b4b213",
            "--yours-primary-light": "#e9e8a1",
            "--yours-primary-dark": "#62610a",
            "--yours-primary-hover": "#969510" 
            ## add all yours css variables here
          }
        },
        {
          "name": "Theme Two",
          "miniLogo": "https://javisperez.github.io/tailwindcolorshades/img/icons/favicon-16x16.png",
          "tokens": {
            ## add all yours css variables here
            "--yours-primary": "#c8c615",
            "--yours-primary-text": "#faf9e8",
            "--yours-primary-container": "#b4b213",
            "--yours-primary-light": "#e9e8a1",
            "--yours-primary-dark": "#62610a",
            "--yours-primary-hover": "#969510"
            ## add all yours css variables here
           }
        },
      ]
    }

插件类型

参数 类型 备注
标签 字符串 在选择默认值中设置参数文本
persistData 布尔值 设置 persistData 以在 localStorage 中保存选定的主题,加载开始时使用
主题 ThemeType[] 包含主题及其 CSS 变量属性的数组

主题

参数 类型 备注
名称 字符串 主题名称
miniLogo 字符串(可选) 在选择中显示的主题迷你徽标
令牌 对象 声明名称和值 CSS 变量

包含主题的配置示例

配置示例

在主题中添加您的变量

  export const parameters = {
    designTokensCss: {
      label: "Themes",
      persistData: true,
      themes: [
        {
        "name": "Theme one",
        "tokens": {
          "font-family": "Roboto, sans-serif",
          "primary": "#fcfc30",
          "primary-text": "#00A8FF",
          "primary-container": "#fcf130",
          "primary-light": "#fcfc30",
          "primary-dark": "#FFFFFF",
          "primary-hover": "#fae128",
          "secondary": "#465eff",
          "secondary-text": "#fff",
          "secondary-container": "#2f4af8",
          "secondary-light": "#465eff",
          "secondary-dark": "#465eff",  
          "secondary-hover": "#465eff",
          "background": "#fcfc30",
          "text": "#000"
        }
      },
      {
        "name": "Theme Two",
        "miniLogo": "https://javisperez.github.io/tailwindcolorshades/img/icons/favicon-16x16.png",
        "tokens": {
          "primary": "#c8c615",
          "primary-text": "#faf9e8",
          "primary-container": "#b4b213",
          "primary-light": "#e9e8a1",
          "primary-dark": "#62610a",
          "primary-hover": "#969510",
          "secondary": "#8a59a7",
          "secondary-text": "#f3eef6",
          "secondary-container": "#7c5096",
          "secondary-light": "#d0bddc",
          "secondary-dark": "#533564",  
          "secondary-hover": "#533564",
          "background": "#fcfc30",
          "text": "#000"
        }
      },
      {
        "name": "Theme Tree",
        "miniLogo": "https://www.gclaims.com.br/assets/images/favicon/favicon-16x16.png",
        "tokens": {
          "primary": "#00a8ff",
          "primary-text": "#e6f6ff",
          "primary-container": "#007ebf",
          "primary-light": "#99dcff",
          "primary-dark": "#006599",
          "primary-hover": "#007ebf",
          "secondary": "#00c9a8",
          "secondary-text": "#e6faf6",
          "secondary-container": "#00c9a8",
          "secondary-light": "#4dd9c2",
          "secondary-dark": "#00977e",  
          "secondary-hover": "#00b597",
          "background": "#fcfc30",
          "text": "#000"
        }
      }
    ]
    }
  }

在 Storybook 面板中设置您的主题(可选)

您可以更改 Storybook 中的默认面板,所有自定义内容都通过 .storybook/manager-head.html 文件中的 CSS 变量接受。在样式标签中添加您的自定义变量和参数。
使用 Storybook 主题自定义面板的示例

示例

作者
  • raulmelo
    raulmelo
支持框架
    Angular
    Ember
    Mithril
    Preact
    React
    Riot
    Svelte
    Vue
    Web Components
标签