You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Storybook Design Token的presenter中修改font-family?

解决Storybook-design-token全局设置font-family的问题

以下是几个无需为每个令牌类型创建自定义presenter的全局配置方案:

方案1:通过Storybook全局装饰器注入样式

直接给所有Storybook故事(包括插件自动生成的令牌故事)包裹一个带全局字体样式的容器。在.storybook/preview.js中添加:

import { addDecorator } from '@storybook/react';
import React from 'react';

addDecorator((story) => (
  <div style={{ fontFamily: "'open-sans', sans-serif" }}>
    {story()}
  </div>
));

这个方法会让所有故事内容都使用指定字体,包括插件生成的令牌展示组件。

方案2:通过全局CSS覆盖插件元素样式

找到插件生成的令牌展示元素的类名(可通过浏览器开发者工具查看,通常是类似.storybook-design-token-presenter或.storybook-design-token-container的类),然后在Storybook的全局CSS文件或preview-head.html中添加样式:

在.storybook/preview-head.html中加入:

<style>
  .storybook-design-token-presenter {
    font-family: "'open-sans', sans-serif" !important;
  }
</style>

这种方式更精准,只针对插件生成的令牌展示区域生效。

方案3:利用插件的全局配置参数

查看storybook-design-token插件的配置项,部分版本支持通过插件选项传递全局presenter属性。在.storybook/main.js的插件配置中尝试添加:

module.exports = {
  addons: [
    {
      name: 'storybook-design-token',
      options: {
        // 针对所有presenter设置全局样式
        presenters: {
          default: {
            style: { fontFamily: "'open-sans', sans-serif" }
          }
        }
      }
    }
  ]
};

如果你的插件版本支持这个配置,就能直接给所有默认presenter应用字体样式。

优先推荐方案1或方案2,这两种方法不需要依赖插件的特定配置,兼容性更强,能快速实现全局字体设置。

内容的提问来源于stack exchange,提问作者MacGregor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:24:54