我想声明一些css变量,以便在我的组件中重用。这是你在普通css中的做法:
:root {
--box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.3);
}
然后将按如下方式使用:
.my-class {
box-shadow: var(--box-shadow);
}
我怎样才能用useStyles达到同样的效果呢?我尝试了以下方法,但没有效果:
const theme = createMuiTheme({
shadowing: {
boxShadow: "0 2px 5px -1px rgba(0, 0, 0, 0.3)",
}
});
我的主应用程序包含在
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>
我试着在我的组件中使用它:
const useStyles = makeStyles(theme => ({
workImage: {
boxShadow: theme.shadowing,
},
}));
但它不起作用。
4条答案
按热度按时间92dk7w1h1#
在我的例子中,我必须同时使用createMuiTheme和自定义变量。
首先,我用createMuiTheme创建了一个主题
然后我创建了一个单独的对象,在其中添加变量:
然后将这两个对象传递给ThemeProvider:
最后,要访问变量:
9o685dep2#
“createMuiTheme”函数接受具有有限键集的对象。(调色板、排版、间距等)
你可以只使用普通物体。
50pmv0ei3#
我通过声明一个值为的js const并将其赋给CSS属性来实现这一点:
x4shl7ld4#
材质UI(v5.6.0)现在支持CSS变量作为一个 * 实验性 * 特性(docs)。