0

我已经使用 theme.js 文件利用情感和样式系统对我的网站进行了样式设置,并希望在前端显示值(例如 #141414)与令牌名称(例如 bgPrimary)。

显然,当我在实践中使用令牌时,我的网站背景是正确的值,但我也想在前端展示令牌名称和值(出于文档目的)。

我经常使用它的一个例子是这样的:

background-color: ${props => props.theme.colors.bgPrimary)

但是,如果我想在 Text 组件的前端显示 bgPrimary 的值,如下所示:

<Text value={___} />

我如何在不实际硬编码 HEX 值的情况下返回值 #141414?

以下是主题文件中颜色对象当前的外观:

const colors = {
  accent: '#8548FF',
  actionPrimary: '#12A55C',
  actionPrimaryInteractive: '#0C6E3D',
  actionSecondary: '#292929',
  actionSecondaryInteractive: '#1F1F1F',
  bgPrimary: '#141414',
  bgSecondary: '#0A0A0A',
  contentPrimary: '#F5F5F5',
  contentSecondary: '#8F8F8F',
  modes: {
    light: {
      accent: '#691FFF',
      actionPrimary: '#16CA70',
      actionPrimaryInteractive: '#109351',
      actionSecondary: '#E0E0E0',
      actionSecondaryInteractive: '#CCCCCC',
      bgPrimary: '#EBEBEB',
      bgSecondary: '#F5F5F5',
      contentPrimary: '#0A0A0A',
      contentSecondary: '#707070',
    },
  }
}

如您所见,我有两种颜色模式,并且 bgPrimary 根据您设置的模式而有所不同。这就是为什么从主题中提取价值而不是硬编码很重要的原因。

4

0 回答 0