【问题标题】:Material UI Styling Best PracticesMaterial UI 样式最佳实践
【发布时间】:2020-03-17 10:27:40
【问题描述】:

我正在使用带有 React 的 Material-UI。我有以下方法:

对于全局样式,我使用的是 ThemeProvider

    palette: {
        type: 'dark',
        primary: {
            main: '#123',
        },
        secondary: {
            main: '#456',
        },

对于本地样式(在组件中),我使用 withStyles:

        const styles = (theme: any) => ({ ... });
        export default withStyles(styles)(UperNavigationBar);

问题 1: 我的基本想法是将颜色、字体等(= 全局样式)等与间距、对齐方式等(本地样式)分开。这样我就可以轻松地从浅色主题切换到深色主题。您如何看待这种方法?

问题 2: 我有几种背景颜色(默认背景颜色,导航元素有其他背景颜色还有网格)然后有不同背景颜色的悬停效果等。 但是 theme.pallette.backgroundColor 只有两个属性。为多个组件定义更多背景颜色的最佳方法是什么?

【问题讨论】:

    标签: material-ui


    【解决方案1】:

    我希望它仍然相关。

    谈到最佳实践和方法 - 我倾向于坚持使用最新的 API,即 useStyles。关于样式的关注点分离-在我看来,除非它是全局设置,否则它可能会非常令人困惑。在这种情况下,您可能希望以documentation 中解释的任何方式覆盖它。

    我建议您首先探索default theme,因为它确实回答了您的大部分问题。更改主题类型时,您可以看到调色板中的值会发生变化。

    您可以使用主题覆盖许多属性,也可以添加自定义变量。这将帮助您遵循您拥有的所有特定背景颜色。如果您希望这些自定义颜色与主题类型相匹配 - 只需有条件地应用它们即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      相关资源
      最近更新 更多