我正在尝试一些非常简单的事情:使用 Material-UI 主题为网站构建两个主题:
一个 light
主题和 dark
一个,但效果不佳:主题在每个 Material-UI 反应元素上,但 html 文档上的根元素保持相同的默认值白色背景。
当然可以通过纯.css攻击body来改变:
body {
background-color: #222;
}
但是我想用 React 动态地改变它,我虽然这会工作,但它没有:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { ThemeProvider } from '@material-ui/styles';
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
const themeLight = createMuiTheme({
palette: {
background: {
default: "#e4f0e2"
}
},
});
const themeDark = createMuiTheme({
palette: {
background: {
default: "#222222",
}
},
});
ReactDOM.render(
<MuiThemeProvider theme = { themeDark }>
<App />
</MuiThemeProvider>, document.getElementById('root'));
我在这里迷路了,没有办法用 Material-UI 主题制作这个吗?
原文由 yuri 发布,翻译遵循 CC BY-SA 4.0 许可协议
CssBaseline 是控制这个方面的组件。如果您没有使用
CssBaseline
,那么您只会看到浏览器提供的默认值。这是一个有效的 v4 示例(下方的 v5 示例):
下面是一个 Material-UI v5 示例。与 v4 的唯一区别是
ThemeProvider
的名称更改(尽管除了MuiThemeProvider
之外,此名称在 v4 中也可用)和createTheme
(而不是createMuiTheme
)并使用新的@mui/material
包名称而不是@material-ui/core
。