50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { resolve } from 'node:path'
|
|
|
|
import { generate } from '@ant-design/colors'
|
|
|
|
import { theme } from 'ant-design-vue/lib'
|
|
import convertLegacyToken from 'ant-design-vue/lib/theme/convertLegacyToken'
|
|
import { primaryColor } from '../config/themeConfig'
|
|
|
|
const { defaultAlgorithm, defaultSeed } = theme
|
|
|
|
function generateAntColors(color: string, theme: 'default' | 'dark' = 'default') {
|
|
return generate(color, {
|
|
theme,
|
|
})
|
|
}
|
|
|
|
/**
|
|
* less global variable
|
|
*/
|
|
export function generateModifyVars() {
|
|
const palettes = generateAntColors(primaryColor)
|
|
const primary = palettes[5]
|
|
|
|
const primaryColorObj: Record<string, string> = {}
|
|
|
|
for (let index = 0; index < 10; index++)
|
|
primaryColorObj[`primary-${index + 1}`] = palettes[index]
|
|
|
|
// const modifyVars = getThemeVariables();
|
|
const mapToken = defaultAlgorithm(defaultSeed)
|
|
const v3Token = convertLegacyToken(mapToken)
|
|
|
|
return {
|
|
...v3Token,
|
|
// reference: Avoid repeated references
|
|
'hack': `true; @import (reference) "${resolve('src/design/config.less')}";`,
|
|
'primary-color': primary,
|
|
...primaryColorObj,
|
|
'info-color': primary,
|
|
'processing-color': primary,
|
|
'success-color': '#55D187', // Success color
|
|
'error-color': '#ED6F6F', // False color
|
|
'warning-color': '#EFBD47', // Warning color
|
|
'font-size-base': '14px', // Main font size
|
|
'border-radius-base': '2px', // Component/float fillet
|
|
'link-color': primary, // Link color
|
|
'app-content-background': '#fafafa', // Link color
|
|
}
|
|
}
|