Skip to Content
🎉 Nextra 4.0 is released. dimaMachina is looking for a new job or consulting.
指引主题主题 tokens

类型定义

type ThemeToken = { colors: ThemeTokenColor; boxShadow: { header: string; sider: string; tab: string; }; };
Note

代码位置:src/types/app.d.ts

基于 tokens 的 css 变量

初始化时会在 html 上生成一些 css 变量,这些 css 变量是基于主题 tokens 产出的

/** Theme vars */ export const themeVars: App.Theme.ThemeToken = { colors: { ...colorPaletteVars, nprogress: 'rgb(var(--nprogress-color))', container: 'rgb(var(--container-bg-color))', layout: 'rgb(var(--layout-bg-color))', inverted: 'rgb(var(--inverted-bg-color))', base_text: 'rgb(var(--base-text-color))' }, boxShadow: { header: 'var(--header-box-shadow)', sider: 'var(--sider-box-shadow)', tab: 'var(--tab-box-shadow)' } };
Note

代码位置:src/theme/vars.ts

tokens 初始化

/** * Create theme token * * @param colors Theme colors */ export function createThemeToken(colors: App.Theme.ThemeColor) { const paletteColors = createThemePaletteColors(colors); const themeTokens: App.Theme.ThemeToken = { colors: { ...paletteColors, nprogress: paletteColors.primary, container: 'rgb(255, 255, 255)', layout: 'rgb(247, 250, 252)', inverted: 'rgb(0, 20, 40)', base_text: 'rgb(31, 31, 31)' }, boxShadow: { header: '0 1px 2px rgb(0, 21, 41, 0.08)', sider: '2px 0 8px 0 rgb(29, 35, 41, 0.05)', tab: '0 1px 2px rgb(0, 21, 41, 0.08)' } }; const darkThemeTokens: App.Theme.ThemeToken = { colors: { ...themeTokens.colors, container: 'rgb(28, 28, 28)', layout: 'rgb(18, 18, 18)', base_text: 'rgb(224, 224, 224)' }, boxShadow: { ...themeTokens.boxShadow } }; return { themeTokens, darkThemeTokens }; }
Note

代码位置:src/store/slice/theme/shared.ts

Last updated on