使用 Chrome DevTools(或其他浏览器的开发工具)找出一个类,该类将为您提供有关要覆盖的元素的信息。
例如,假设你发现类名是
.MuiStepIcon-root-78。公式是Mui[component name]-[style rule name]-[UUID],其中 Mui 是默认前缀,78 只是一个 id。因此,元素的名称是MuiStepIcon,后续属性是root。
说,你想改变颜色。如果您执行层次结构MuiStepIcon -> root -> color,您将只更改默认颜色。要更改任何其他颜色,请注意pseudo classes。比如使用devtools,如果类是.MuiStepIcon-root-78.MuiStepIcon-active-80,那么伪类是active,你的代码应该是MuiStepIcon -> root -> '&$active' -> color。参考下面的代码。
查看文档以获取更多信息https://material-ui.com/customization/overrides/#overriding-with-classes
您还可以通过引用createMuiTheme -> overrides 来确定要覆盖的可用元素,这会将您带到overrides.d.ts 文件。有一个列出所有组件名称的界面,例如 MuiStepIcon,但它不会像 devtools 那样为您提供其他信息。
import React, { Component } from 'react';
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
const muiTheme = createMuiTheme({
overrides: {
MuiStepIcon: {
root: {
color: '#000000', // or 'rgba(0, 0, 0, 1)'
'&$active': {
color: '#000000',
},
'&$completed': {
color: '#000000',
},
},
},
}
});
const otherStyles = theme => ({
root: {
// Whatever needed
},
});
class MyComponent extends Component {
render(){
return (
<MuiThemeProvider theme={muiTheme}>
{
// Your stepper here, should be within MuiThemeProvider
}
</MuiThemeProvider>
);
}
};
export default withStyles(otherStyles, { withTheme: true })(MyComponent);