reactjs - Material-UI 更改默认颜色
问题描述
如何更改默认颜色?我需要在 theme.js 中修改什么对象?
编辑
primary
我想修改不是or secondary
or的默认(灰色)error
。
解决方案
我遇到了与 OP 类似的问题,特别是我想将默认按钮颜色从灰色更改为白色。问题评论者是正确的,每个组件都有自己特定的样式和颜色,而不是全局默认颜色。这些需要通过自定义主题覆盖。下面是一个覆盖Button 的默认类contained
的示例,通过创建主题覆盖来更改默认按钮颜色。CONTANTS
用于定义具体的颜色等。
import React from 'react';
import { createMuiTheme } from '@material-ui/core/styles';
import { ThemeProvider } from '@material-ui/styles';
import * as CONSTANTS from './Constants'
const theme = createMuiTheme({
palette: {
primary: {
// light: will be calculated from palette.primary.main,
main: CONSTANTS.BLUE,
// dark: will be calculated from palette.primary.main,
contrastText: CONSTANTS.CONTRAST_TEXT,
},
},
overrides:{
MuiButton:{
contained:{
color: CONSTANTS.BLUE,
backgroundColor: CONSTANTS.CONTRAST_TEXT,
'&:hover': {
backgroundColor: CONSTANTS.LIGHT_BLUE,
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
backgroundColor: CONSTANTS.CONTRAST_TEXT,
},
}
}
}
}
});
interface IThemeProps{
children:any;
}
export default function Theme(props: IThemeProps) {
return (
<ThemeProvider theme={theme}>
{props.children}
</ThemeProvider>
);
}
并使用新主题:
import React from 'react';
import Theme from './Theme';
import { Header, Home } from './Components';
const App: React.FC = () => {
return (
<Theme>
<Header>
<Home />
</Header>
</Theme>
);
}
export default App;
推荐阅读
- python - 将请求帖子应用于熊猫数据框中的文本并保存在数据框中
- python-3.x - 除法运算在 Python 中产生的最后一位十进制数字的结果与常规 calc 的结果不同
- java - 无法在命令行中显示阿拉伯字符
- javascript - 套接字代码在 Codeigniter rest api 中不起作用
- angular - previousIndex 使用 Angular Material 拖放 + cdk 虚拟滚动意外跳转
- .net - Web Api 2.0 在邮递员中工作但不在 HTML 页面中
- ios - 如何在 SwiftUI 中显示 PHLivePhotoView
- python - Xml 解析不起作用 - 它不返回任何内容
- websphere - IBM BPM/WebSphere 如何连接到 SQL Server 数据库
- amazon-web-services - aws efs 文件系统未与 describe-file-systems 一起列出