Material UI 全局 css 变量
Material UI global css variables
我想声明一些 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,
},
}));
但它不起作用。
"createMuiTheme" 函数接受具有有限键集的对象。(调色板、排版、间距...等)
您可以只使用普通对象。
const theme = {
shadowing: {
boxShadow: "0 2px 5px -1px rgba(0, 0, 0, 0.3)",
}
};
在我的例子中,我不得不同时使用 createMuiTheme 和自定义变量。为了实现它,我做了如下操作。
首先我用createMuiTheme创建了一个主题
const theme = createMuiTheme({
typography: {
fontFamily: "verdana",
},
});
然后我创建了一个单独的对象,我在其中添加了我的变量:
const cssVariables = {
shadowing: {
boxShadow: "0 2px 5px -1px rgba(0, 0, 0, 0.3)",
}
};
然后我将这两个对象传递给我的 ThemeProvider:
<ThemeProvider theme={{ ...theme, ...cssVariables }}>
最后,访问变量:
const useStyles = makeStyles(theme => ({
workImage: {
boxShadow: theme.shadowing.boxShadow,
},
}));
我想声明一些 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,
},
}));
但它不起作用。
"createMuiTheme" 函数接受具有有限键集的对象。(调色板、排版、间距...等)
您可以只使用普通对象。
const theme = {
shadowing: {
boxShadow: "0 2px 5px -1px rgba(0, 0, 0, 0.3)",
}
};
在我的例子中,我不得不同时使用 createMuiTheme 和自定义变量。为了实现它,我做了如下操作。
首先我用createMuiTheme创建了一个主题
const theme = createMuiTheme({
typography: {
fontFamily: "verdana",
},
});
然后我创建了一个单独的对象,我在其中添加了我的变量:
const cssVariables = {
shadowing: {
boxShadow: "0 2px 5px -1px rgba(0, 0, 0, 0.3)",
}
};
然后我将这两个对象传递给我的 ThemeProvider:
<ThemeProvider theme={{ ...theme, ...cssVariables }}>
最后,访问变量:
const useStyles = makeStyles(theme => ({
workImage: {
boxShadow: theme.shadowing.boxShadow,
},
}));