MUI v5 主題 (Theme):進階定制與自定義
信息
本篇文章的內容來自 MUI 的官方網站的 Theme 主題相關文件,可以將本篇文章作為官方文件的快速導讀,可以快速了解想要實作的功能以及大致使用方法,若需要進一步深入了解使用方法可以透過個段落提供的連結找到對應的官方文件。
Palette
MUI 預設的 Palette 顏色種類
Palette(調色板)能讓我們定義在不同情境要使用的顏色,而 MUI 本身預設提供了以下的 Palette 顏色種類:
palette 的 color value 可以是一個 color object,也可以是具有以下 TypeScript interface 的一個或多個 key 的 object
interface PaletteColor {
light?: string;
main: string;
dark?: string;
contrastText?: string;
}
使用 color object 引入 MUI 預設顏色
客製化 Palette 最出單的方法就是引入 MUI 提供的 color 物件,就不需要自己定義 light/main/dark/contrastText
import { createTheme } from '@mui/material/styles';
import blue from '@mui/material/colors/blue';
const theme = createTheme({
palette: {
primary: blue,
},
});
直接指定顏色
我們也可以直接定義每個顏色
const palette = {
primary: {
main: '#2196f3',
light: '#64b5f6',
dark: '#1976d2',
contrastText: '#fff',
},
secondary: {
main: '#f50057',
light: '#ff4081',
dark: '#c51162',
contrastText: '#fff',
},
// 其他 Palette 顏色
};