如何更改 Material-UI AppBar 背景颜色?
How do I change the Material-UI AppBar background colour?
我正在使用 Material-UI 组件创建一个应用程序,并按如下方式更改了主题中的颜色(在 src/index.js 中):
const theme = createMuiTheme({
palette: {
pale: {
main: '#FCF4D9',
contrastText: '#383838'
}
}
})
ReactDOM.render(
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>,
document.getElementById('root'))
然后,在我的一个组件中,我想使用它来使应用栏具有浅色背景。我正在尝试按如下方式执行此操作 (src/Header/index.js):
const Header = () => {
const theme = useTheme()
return (
<AppBar position="fixed" className="appBar" color={`${theme.palette.pale}`}>
...
</AppBar>
)
}
这不起作用 - 背景显示为白色。如果我将“pale”重命名为“primary”然后使用
color="primary"
效果很好,但我已经有另一种颜色称为“主要”,所以我不能那样做。
我怀疑我做错了模板字面量,但我不确定 - 我已经尝试了方括号、$ 符号等的各种其他组合,但这是唯一可以编译的组合。还是只能用“primary”和“secondary”,不能用主题属性?如果可以,如何使用主题属性?
希望对您有所帮助,Material-UI 让您可以自定义您自己的主题。
import { createMuiTheme } from '@material-ui/core/styles';
import purple from '@material-ui/core/colors/purple';
import green from '@material-ui/core/colors/green';
const theme = createMuiTheme({
palette: {
primary: {
main: purple[500],
},
secondary: {
main: green[500],
},
pale: {
main: '#FCF4D9',
contrastText: '#383838',
}
},
});
已更新
自定义主题后,您可以根据组件的名称在组件上使用不同的颜色。
例如,在您的 src/Header/index.js
组件中,您可以这样做:
const useTheme = makeStyles((theme) => ({
header: {
color: theme.pale.main,
},
}));
const Header = () => {
const theme = useTheme()
return (
<AppBar position="fixed" className="appBar" color={theme.header}>
...
</AppBar>
)
}
我正在使用 Material-UI 组件创建一个应用程序,并按如下方式更改了主题中的颜色(在 src/index.js 中):
const theme = createMuiTheme({
palette: {
pale: {
main: '#FCF4D9',
contrastText: '#383838'
}
}
})
ReactDOM.render(
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>,
document.getElementById('root'))
然后,在我的一个组件中,我想使用它来使应用栏具有浅色背景。我正在尝试按如下方式执行此操作 (src/Header/index.js):
const Header = () => {
const theme = useTheme()
return (
<AppBar position="fixed" className="appBar" color={`${theme.palette.pale}`}>
...
</AppBar>
)
}
这不起作用 - 背景显示为白色。如果我将“pale”重命名为“primary”然后使用
color="primary"
效果很好,但我已经有另一种颜色称为“主要”,所以我不能那样做。
我怀疑我做错了模板字面量,但我不确定 - 我已经尝试了方括号、$ 符号等的各种其他组合,但这是唯一可以编译的组合。还是只能用“primary”和“secondary”,不能用主题属性?如果可以,如何使用主题属性?
希望对您有所帮助,Material-UI 让您可以自定义您自己的主题。
import { createMuiTheme } from '@material-ui/core/styles';
import purple from '@material-ui/core/colors/purple';
import green from '@material-ui/core/colors/green';
const theme = createMuiTheme({
palette: {
primary: {
main: purple[500],
},
secondary: {
main: green[500],
},
pale: {
main: '#FCF4D9',
contrastText: '#383838',
}
},
});
已更新
自定义主题后,您可以根据组件的名称在组件上使用不同的颜色。
例如,在您的 src/Header/index.js
组件中,您可以这样做:
const useTheme = makeStyles((theme) => ({
header: {
color: theme.pale.main,
},
}));
const Header = () => {
const theme = useTheme()
return (
<AppBar position="fixed" className="appBar" color={theme.header}>
...
</AppBar>
)
}