我在 React 中使用 Material-UI。我有以下方法:
对于全局样式,我使用 ThemeProvider
palette: {
type: 'dark',
primary: {
main: '#123',
},
secondary: {
main: '#456',
},
Run Code Online (Sandbox Code Playgroud)
对于本地样式(在组件中),我使用 withStyles:
const styles = (theme: any) => ({ ... });
export default withStyles(styles)(UperNavigationBar);
Run Code Online (Sandbox Code Playgroud)
问题 1:我的基本想法是将颜色、字体等(= 全局样式)等与间距、对齐等(本地样式)等内容分开。这样我就可以轻松地从浅色主题切换到深色主题。您如何看待这种方法?
问题2:我有几种背景颜色(默认背景颜色,导航元素有其他背景颜色也有网格)然后有不同背景颜色的悬停效果等。但是theme.pallette.backgroundColor只有两个属性。为多个组件定义更多背景颜色的最佳方法是什么?
我希望它仍然有意义。
当谈到最佳实践和方法时,我倾向于坚持使用最新的 API,即 useStyles。关于样式关注点的分离 - 在我看来,除非是全局设置,否则可能会非常令人困惑。在这种情况下,您可能希望以文档中解释的任何方式覆盖它。
我建议您首先探索默认主题,因为它确实解决了您的大部分问题。更改主题类型时,您可以看到调色板中的值会发生变化。
您可以使用主题覆盖许多属性,还可以添加自定义变量。这将帮助您遵循所有特定的背景颜色。如果您希望这些自定义颜色与主题类型相匹配 - 只需有条件地应用它们即可。
| 归档时间: |
|
| 查看次数: |
1738 次 |
| 最近记录: |