mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
refactor(projects): combine theme tokens
and theme settings
. close #379
This commit is contained in:
@ -125,7 +125,11 @@ export const useThemeStore = defineStore(SetupStoreId.Theme, () => {
|
||||
|
||||
/** Setup theme vars to html */
|
||||
function setupThemeVarsToHtml() {
|
||||
const { themeTokens, darkThemeTokens } = createThemeToken(themeColors.value, settings.value.recommendColor);
|
||||
const { themeTokens, darkThemeTokens } = createThemeToken(
|
||||
themeColors.value,
|
||||
settings.value.tokens,
|
||||
settings.value.recommendColor
|
||||
);
|
||||
addThemeVarsToHtml(themeTokens, darkThemeTokens);
|
||||
}
|
||||
|
||||
|
@ -30,39 +30,40 @@ export function initThemeSettings() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create theme token
|
||||
* create theme token css vars value by theme settings
|
||||
*
|
||||
* @param colors Theme colors
|
||||
* @param tokens Theme setting tokens
|
||||
* @param [recommended=false] Use recommended color. Default is `false`
|
||||
*/
|
||||
export function createThemeToken(colors: App.Theme.ThemeColor, recommended = false) {
|
||||
export function createThemeToken(
|
||||
colors: App.Theme.ThemeColor,
|
||||
tokens?: App.Theme.ThemeSetting['tokens'],
|
||||
recommended = false
|
||||
) {
|
||||
const paletteColors = createThemePaletteColors(colors, recommended);
|
||||
|
||||
const themeTokens: App.Theme.ThemeToken = {
|
||||
const { light, dark } = tokens || themeSettings.tokens;
|
||||
|
||||
const themeTokens: App.Theme.ThemeTokenCSSVars = {
|
||||
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)'
|
||||
...light.colors
|
||||
},
|
||||
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)'
|
||||
...light.boxShadow
|
||||
}
|
||||
};
|
||||
|
||||
const darkThemeTokens: App.Theme.ThemeToken = {
|
||||
const darkThemeTokens: App.Theme.ThemeTokenCSSVars = {
|
||||
colors: {
|
||||
...themeTokens.colors,
|
||||
container: 'rgb(28, 28, 28)',
|
||||
layout: 'rgb(18, 18, 18)',
|
||||
base_text: 'rgb(224, 224, 224)'
|
||||
...dark?.colors
|
||||
},
|
||||
boxShadow: {
|
||||
...themeTokens.boxShadow
|
||||
...themeTokens.boxShadow,
|
||||
...dark?.boxShadow
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user