modifyVars.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * Copyright (c) 2013-Now https://jeesite.com All rights reserved.
  3. * No deletion without permission, or be held responsible to law.
  4. * @author ThinkGem
  5. */
  6. import { createRequire } from 'node:module';
  7. import { generateAntColors, primaryColor, darkPrimaryColor } from './themeConfig';
  8. // import { getThemeVariables } from 'ant-design-vue/dist/theme';
  9. import { theme } from 'ant-design-vue';
  10. // ant-design-vue 仅在 CJS 产物(lib)中提供该方法的默认导出,直接用 import 会被包装成模块对象,
  11. // 这里通过 require 取回真正的默认导出。
  12. const requireCjs = createRequire(import.meta.url);
  13. const convertLegacyToken = (
  14. requireCjs('ant-design-vue/lib/theme/convertLegacyToken') as {
  15. default: (mapToken: any) => Record<string, any>;
  16. }
  17. ).default;
  18. /**
  19. * less global variable
  20. */
  21. export function generateModifyVars(dark = false) {
  22. const palettes = generateAntColors(primaryColor);
  23. const primary = dark ? darkPrimaryColor : palettes[5];
  24. // const primaryColorObj: Record<string, string> = {};
  25. // for (let index = 0; index < 10; index++) {
  26. // primaryColorObj[`primary-${index + 1}`] = palettes[index];
  27. // }
  28. // const modifyVars = getThemeVariables({ dark: false });
  29. const { darkAlgorithm, defaultAlgorithm, defaultSeed } = theme;
  30. const mapToken = dark ? darkAlgorithm(defaultSeed) : defaultAlgorithm(defaultSeed);
  31. const modifyVars = convertLegacyToken(mapToken);
  32. // const modifyVars = convertLegacyToken(mapToken);
  33. // !!dark && console.log('modifyVars', dark, modifyVars);
  34. return {
  35. ...modifyVars,
  36. // Used for global import to avoid the need to import each style file separately
  37. // reference: Avoid repeated references
  38. // hack: `${modifyVars.hack} @import (reference) "${__dirname + '/../../core/design/var/index.less'}";`,
  39. hack: `true; @import (reference) "${__dirname + '/../../src/core/design/var/index.less'}";`,
  40. // ...primaryColorObj,
  41. 'primary-color': primary,
  42. 'link-color': primary,
  43. 'info-color': primary,
  44. // 'processing-color': primary,
  45. // 'success-color': '#55D187', // Success color
  46. // 'error-color': '#ED6F6F', // False color
  47. // 'warning-color': '#EFBD47', // Warning color
  48. // 'font-size-base': '14px', // Main font size
  49. 'border-radius-base': '6px',
  50. // 'content-bg-striped': '#fafafa',
  51. };
  52. }