自定义主题
主题定制 theme
自定义组件
- 引入
@mui/system/styled自定义Button组件,继承自Button的自定义组件
const MyButton = syleted(Button)({
border:'1px solid red'
})
通过sx更改单个组件的默认主题样式
- 开发者控制台得到MUI类名, 例如
.MuiSlider-thumb-a123, 只需要.MuiSlider-thumb即可 - 更改MUI组件的样式覆盖默认的组件主题
<Slider
sx={{
'& .MuiSlider-thumb': {
borderRadius: '1px',
},
}}
/>
更改组件全局属性
- 使用
createTheme创建自定义的主题 - 使用
ThemeProvider覆盖默认的主题 - 在
ThemeProvider下的子组件使用theme下继承createTheme所定义的属性
示例:
import * as React from 'react';
import { createTheme, ThemeProvider } from '@mui/material/styles';
import Button from '@mui/material/Button';
const theme = createTheme({
components: {
// Name of the component ⚛️
MuiButtonBase: {
defaultProps: {
// The default props to change
disableRipple: true, // No more ripple, on the whole application 💣!
},
},
},
});
export default function DefaultProps() {
return (
<ThemeProvider theme={theme}>
<Button>This button has disabled ripples.</Button>
</ThemeProvider>
);
}