modifyVars.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { resolve } from 'node:path';
  2. import { generate } from '@ant-design/colors';
  3. // @ts-ignore: typo
  4. /* import { getThemeVariables } from 'ant-design-vue/dist/theme'; */
  5. import { theme } from 'ant-design-vue/lib';
  6. import convertLegacyToken from 'ant-design-vue/lib/theme/convertLegacyToken';
  7. const { defaultAlgorithm, defaultSeed } = theme;
  8. const primaryColor = '#0960bd';
  9. function generateAntColors(color: string, theme: 'default' | 'dark' = 'default') {
  10. return generate(color, {
  11. theme,
  12. });
  13. }
  14. /**
  15. * less global variable
  16. */
  17. export function generateModifyVars() {
  18. const palettes = generateAntColors(primaryColor);
  19. const primary = palettes[5];
  20. const primaryColorObj: Record<string, string> = {};
  21. for (let index = 0; index < 10; index++) {
  22. primaryColorObj[`primary-${index + 1}`] = palettes[index];
  23. }
  24. // const modifyVars = getThemeVariables();
  25. const mapToken = defaultAlgorithm(defaultSeed);
  26. const v3Token = convertLegacyToken(mapToken);
  27. return {
  28. ...v3Token,
  29. // reference: Avoid repeated references
  30. hack: `true; @import (reference) "${resolve('src/design/config.less')}";`,
  31. 'primary-color': primary,
  32. ...primaryColorObj,
  33. 'info-color': primary,
  34. 'processing-color': primary,
  35. 'success-color': '#55D187', // Success color
  36. 'error-color': '#ED6F6F', // False color
  37. 'warning-color': '#EFBD47', // Warning color
  38. 'font-size-base': '14px', // Main font size
  39. 'border-radius-base': '2px', // Component/float fillet
  40. 'link-color': primary, // Link color
  41. };
  42. }