【发布时间】:2021-01-03 01:30:26
【问题描述】:
我正在尝试使用定义为 css 变量 my-pallette.scss 的现有颜色创建材质 ui 主题:
:root {
--primary-color: '#FF0000';
...
}
并像这样使用它:
import { createMuiTheme } from '@material-ui/core/styles';
export const muiTheme = createMuiTheme({
palette: {
primary: {
main: 'var(--primary-color)',
},
},
});
这会引发错误:
未捕获的错误:Material-UI:不支持
var(--primary-color)颜色。 我们支持以下格式:#nnn、#nnnnnn、rgb()、rgba()、hsl()、hsla()。
根据这个 Github 帖子:Support CSS variables as theme option 目前不支持。
是否有任何解决方法,以便我可以将var(--primary-color) 用作材质ui createMuiTheme 中的primary 颜色?
最终目标是以最简单的形式使用材质 ui 组件,其主要、次要等颜色被我的颜色覆盖。
<Radio color="primary" />
我尝试过像这样使用托盘中的颜色:
const cssVariables = {
primaryColor: getComputedStyle(document.documentElement).getPropertyValue('var(--primary-color)'),
};
并使用cssVariables.primaryColor,但这不起作用并且感觉非常违反直觉。
我的最后一个解决方案是将调色板复制作为普通对象使用,但这似乎是维护的噩梦。
【问题讨论】:
标签: javascript material-ui css-variables