generateModifyVars.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { primaryColor } from '../config/themeConfig';
  2. import { resolve } from 'path';
  3. import { generate } from '@ant-design/colors';
  4. import { theme } from 'ant-design-vue/lib';
  5. import convertLegacyToken from 'ant-design-vue/lib/theme/convertLegacyToken';
  6. const { defaultAlgorithm, defaultSeed } = theme;
  7. function generateAntColors(color: string, theme: 'default' | 'dark' = 'default') {
  8. return generate(color, {
  9. theme,
  10. });
  11. }
  12. /**
  13. * less global variable
  14. */
  15. export function generateModifyVars() {
  16. const palettes = generateAntColors(primaryColor);
  17. const primary = palettes[5];
  18. const primaryColorObj: Record<string, string> = {};
  19. for (let index = 0; index < 10; index++) {
  20. primaryColorObj[`primary-${index + 1}`] = palettes[index];
  21. }
  22. const mapToken = defaultAlgorithm(defaultSeed);
  23. const v3Token = convertLegacyToken(mapToken);
  24. return {
  25. ...v3Token,
  26. // Used for global import to avoid the need to import each style file separately
  27. // reference: Avoid repeated references
  28. hack: `true; @import (reference) "${resolve('src/design/config.less')}";`,
  29. 'primary-color': primary,
  30. ...primaryColorObj,
  31. 'info-color': primary,
  32. 'processing-color': primary,
  33. 'success-color': '#55D187', // Success color
  34. 'error-color': '#ED6F6F', // False color
  35. 'warning-color': '#EFBD47', // Warning color
  36. 'btn-info-color': '#909399',
  37. 'text-color-secondary': 'rgba(0, 0, 0, 0.45)',
  38. 'border-color-base1': '#f0f0f0',
  39. 'font-size-base': '14px', // Main font size
  40. 'border-radius-base': '2px', // Component/float fillet
  41. 'link-color': primary, // Link color
  42. 'app-base-background': '#eaecf0',
  43. 'app-content-background': '#F1F4F8', // Link color
  44. 'app-main-background': '#ebeef5',
  45. 'selected-hover-bg': '#f5f5f5',
  46. 'hover-background': '#f5f7fa',
  47. };
  48. }