定制主题
组件库基于Material Design (opens in a new tab)实现,具体详情请查看相关文档。
方式一:在 CSS 文件定义变量
⚠️
通过该方式,:root 应该仅包含样式变量,否则将会解析错误,通过
useTheme
无法获取正确样式变量。
global.css
:root {
--wisteria-color-primary: #6750a4;
--wisteria-color-on-primary: #fff;
--wisteria-color-primary-container: #e9ddff;
--wisteria-color-on-primary-container: #22005d;
--wisteria-color-secondary: #625b71;
--wisteria-color-on-secondary: #fff;
--wisteria-color-secondary-container: #e8def8;
--wisteria-color-on-secondary-container: #1e192b;
--wisteria-color-tertiary: #7e5260;
--wisteria-color-on-tertiary: #fff;
--wisteria-color-tertiary-container: #ffd9e3;
--wisteria-color-on-tertiary-container: #31101d;
--wisteria-color-error: #ba1a1a;
--wisteria-color-error-container: #ffdad6;
--wisteria-color-on-error: #fff;
--wisteria-color-on-error-container: #410002;
--wisteria-color-background: #fffbff;
--wisteria-color-on-background: #1c1b1e;
--wisteria-color-surface-dim: #ded8e1;
--wisteria-color-surface: #fffbff;
--wisteria-color-surface-bright: #ded8e1;
--wisteria-color-surface-container-lowest: #fff;
--wisteria-color-surface-container-low: #f7f2fa;
--wisteria-color-surface-container: #f3edf7;
--wisteria-color-surface-container-high: #ece6f0;
--wisteria-color-surface-container-highest: #e6e0e9;
--wisteria-color-on-surface: #1c1b1f;
--wisteria-color-surface-variant: #49454e;
--wisteria-color-on-surface-variant: #49454e;
--wisteria-color-outline: #7a757f;
--wisteria-color-outline-variant: #cac4cf;
--wisteria-color-inverse-surface: #313033;
--wisteria-color-inverse-on-surface: #f4eff4;
--wisteria-color-inverse-primary: #cfbcff;
--wisteria-color-scrim: #000;
--wisteria-color-shadow: #000;
--wisteria-color-scheme: #fff;
--wisteria-color-surface-tint: #6750a4;
}
方式二:通过 Provider 配置
App.tsx
<WisteriaProvider
theme={{
colors: {
background: '#fffbff',
error: '#ba1a1a',
errorContainer: '#ffdad6',
inverseOnSurface: '#f4eff4',
inversePrimary: '#cfbcff',
inverseSurface: '#313033',
onBackground: '#1c1b1e',
onError: '#fff',
onErrorContainer: '#410002',
onPrimary: '#fff',
onPrimaryContainer: '#22005d',
onSecondary: '#fff',
onSecondaryContainer: '#1e192b',
onSurface: '#1c1b1f',
onSurfaceVariant: '#49454e',
onTertiary: '#fff',
onTertiaryContainer: '#31101d',
outline: '#7a757f',
outlineVariant: '#cac4cf',
primary: '#6750a4',
primaryContainer: '#e9ddff',
scheme: '#fff',
scrim: '#000',
secondary: '#625b71',
secondaryContainer: '#e8def8',
shadow: '#000',
surface: '#fffbff',
surfaceBright: '#ded8e1',
surfaceContainer: '#f3edf7',
surfaceContainerHigh: '#ece6f0',
surfaceContainerHighest: '#e6e0e9',
surfaceContainerLow: '#f7f2fa',
surfaceContainerLowest: '#fff',
surfaceDim: '#ded8e1',
surfaceTint: '#6750a4',
surfaceVariant: '#49454e',
tertiary: '#7e5260',
tertiaryContainer: '#ffd9e3'
}
}}
/>