MUI 自定义主题样式

目录结构

- /
  - themes
    - light.tsx
  - index.tsx

组件页面

index.tsx

import React from 'react'
import ReactDOM from 'react-dom'
import './index.css'
import Router from './routes'
import reportWebVitals from './reportWebVitals';

// Begin 关键配置
// 自定义主题
import { ThemeProvider } from "@mui/material/styles"
import { themeLight } from './themes/light'
// End 关键配置

ReactDOM.render(
  <React.StrictMode>
    <ThemeProvider theme={ themeLight }> // 向组件注入样式
      <Router />
    </ThemeProvider>
  </React.StrictMode>,
  document.getElementById('root')
);

样式配置

themes/light.tsx

import { createTheme } from '@mui/material/styles'

import { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';

export const light: ThemeOptions = createTheme({
  palette: {
    primary: {
      main: '#ff0000'
    }
  };
});

typescript 可能需要声明文件,与 light.tsx 放一起,但我这边没用上
light.d.ts

declare module '@mui/material/styles' {
  interface Theme {
    palette: {
      primary: {
        main: string
      }
    };
  }
  // 允许配置文件使用 `createTheme`
  interface ThemeOptions {
    palette?: {
      primary?: {
        main?: string
      }
    };
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容