Material ui 除了主要/次要颜色外,向材质UI添加颜色的最佳方法是什么?

Material ui 除了主要/次要颜色外,向材质UI添加颜色的最佳方法是什么?,material-ui,Material Ui,我已经看过文件了。我搜遍了YT找图坦卡蒙,谷歌搜索也没用。也许这超出了MUI的范围,但似乎真的适得其反 我只是在寻找一种非黑客的、语义正确的方法来定义调色板,组件可以在其中访问不同的颜色(我知道颜色道具需要一个包装器,但对于我来说,即使是带有颜色变量的样式也可以) 我的颜色对象如下所示: const colors = { cultured: '#FCFAF9', darkGray: '#333333', turquoise: '#48E5C2', unbleach

我已经看过文件了。我搜遍了YT找图坦卡蒙,谷歌搜索也没用。也许这超出了MUI的范围,但似乎真的适得其反

我只是在寻找一种非黑客的、语义正确的方法来定义调色板,组件可以在其中访问不同的颜色(我知道颜色道具需要一个包装器,但对于我来说,即使是带有颜色变量的样式也可以)

我的颜色对象如下所示:

const colors = {
    cultured: '#FCFAF9',
    darkGray: '#333333',
    turquoise: '#48E5C2',
    unbleachedSilk: '#F3D3BD',
    mediumGray: '#5e5e5e'
}
我希望实现的是在大多数情况下使用主/次调色板,但对于流行颜色或装饰,我希望在调色板中添加更多颜色,而不使用语义错误的调色板对象(例如,当对象并不真正表示错误时,使用“error”设置颜色)

你真的只使用了两种主色调吗?你们是如何定义5种颜色以不违反逻辑的方式使用的

我的想法(伪代码):

doSomething}color={{colors.mediumGray}}或style={{{backgroundColor:colors.mediumGray}>
按钮

在咨询回购协议后,Material UI v5似乎解决了这个问题,在v5成为稳定版本之前(他们在2021年的某个时候说),使用一种变通方法是唯一的解决方法。

您可以使用任何您想要的扩展
主题
对象,包括附加颜色。是的,我可以添加它们,没有错误,但它们的工作方式与主/辅不一样。如何访问其他主题颜色?通过类对象?这看起来太复杂了…我不知道我是否明白。你可以通过
makeStyles
useTheme
withTheme
withStyles
withStyles
withStyles(styles,{theme:true})
到处访问
对象。我知道。但是,您无法从组件中的颜色道具访问这些新创建的颜色特性。所以,如果我创造了一种叫做“custom1”的新颜色,我不能说我尝试的东西都不管用。如果没有复杂的包装器方法,我不知道如何访问它。对于像添加自定义颜色道具这样简单的事情,这种方法似乎过于复杂。是的,您不能将它作为字符串值使用在
color
道具上(如果不添加您自己的自定义包装器)。原因是字符串为不同的组件和主题变体创建了动态类,具有正确的对比度等。我只能猜测,但我假设由于主要性能问题,MUI没有打开自定义颜色。综上所述,我猜您已经广泛使用了
类名
道具,并且在那里工作得很好。
<Button onClick={() => doSomething} color={{colors.mediumGray}} or style={{backgroundColor: colors.mediumGray}}>
Button
</Button>