reactjs - 带有 Theme-UI 的多个变体
问题描述
我正在尝试学习如何使用Theme-UI (由制作Styled-System和Rebass的同一个人制作)。就像在 Styled-System(和 Rebass)中一样,有一个主题文件可以选择创建变体(有关详细信息,请参见此处: https ://theme-ui.com/theme-spec/#variants )。
因此,例如,我可以创建不同样式的按钮——像这样:
buttons: {
primary: {
// you can reference other values defined in the theme
color: 'white',
bg: 'primary',
},
secondary: {
color: 'text',
bg: 'secondary',
},
}
然后我可以按如下方式使用这些变体:
<button
sx={{
variant: 'buttons.primary',
}}>
问题是,我希望能够为按钮创建多个变体。例如,假设我想要以下三个变体:
- 尺寸(小、中、大等)。
- 看(主要、次要、禁用等)。
- 种类(默认、大纲、文本等)。
这样我就可以设置这样的按钮样式:
<button
sx={{
size="buttons.size.large"
kind="buttons.kind.outline"
look="buttons.look.secondary"
}}
/>
这对于样式系统是可能的——这里是一个例子:
- https://mathanpec.github.io/component-library/?path=/story/button--size-variant
- https://github.com/mathanpec/component-library/blob/basic-setup/src/theme/buttonStyle.ts
但我不知道如何使用 Theme-UI。
有谁知道如何使用 Theme-UI 做到这一点?
解决方案
推荐阅读
- gensim - gensim 中 malletmodel2ldamodel 后的主题词分布问题
- regex - sed to edit a line on a file
- django - Django 查询集对象查询花费太多时间?
- python - 在 for 循环中向前 x 个项目添加不同的特定项目,而不使用 enumerate
- regex - 需要一个不接受第二个点的十进制数的正则表达式
- azure - 不支持关键字:@microsoft.keyvault
- javascript - 在 Node.js 模块中使用函数
- java - 如何修复 Talend 中的“日期格式”问题
- c# - 如何在 UWP(通用 Windows 编程)应用程序中进行简单的用户登录
- curl - 无法从托管它的服务器内部 curl 到站点,它返回 403 Forbidden,但是从外部到站点使用 curl 很好