themeConfig.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 { generate } from '@ant-design/colors';
  7. // import { APP_PRESET_COLOR_LIST } from '../../../src/settings/designSetting';
  8. export const primaryColor = '#2a50ec'; // APP_PRESET_COLOR_LIST[0];
  9. export const darkPrimaryColor = '#2a50ec';
  10. export const darkMode = 'light';
  11. type Fn = (...arg: any) => any;
  12. type GenerateTheme = 'default' | 'dark';
  13. export interface GenerateColorsParams {
  14. mixLighten: Fn;
  15. mixDarken: Fn;
  16. tinycolor: any;
  17. color?: string;
  18. }
  19. export function generateAntColors(color: string, theme: GenerateTheme = 'default') {
  20. return generate(color, {
  21. theme,
  22. });
  23. }
  24. export function getThemeColors(color?: string) {
  25. const primary = color || primaryColor;
  26. const lightColors = generateAntColors(primary);
  27. const darkPrimary = darkPrimaryColor; //lightColors[5];
  28. const darkColors = generateAntColors(darkPrimary, 'dark');
  29. return [...lightColors, ...darkColors];
  30. }
  31. export function generateColors({ color = primaryColor, mixLighten, mixDarken, tinycolor }: GenerateColorsParams) {
  32. const arr = new Array(19).fill(0);
  33. const lightens = arr.map((_t, i) => {
  34. return mixLighten(color, i / 5);
  35. });
  36. const darkens = arr
  37. .map((_t, i) => {
  38. return mixDarken(color, i / 5);
  39. })
  40. .filter((item) => !item.includes('-'));
  41. const alphaColors = arr.map((_t, i) => {
  42. return tinycolor(color)
  43. .setAlpha(i / 20)
  44. .toRgbString();
  45. });
  46. const shortAlphaColors = alphaColors.map((item) => item.replace(/\s/g, '').replace(/0\./g, '.'));
  47. const tinycolorLightens = arr
  48. .map((_t, i) => {
  49. return tinycolor(color)
  50. .lighten(i * 5)
  51. .toHexString();
  52. })
  53. .filter((item) => item !== '#ffffff');
  54. const tinycolorDarkens = arr
  55. .map((_t, i) => {
  56. return tinycolor(color)
  57. .darken(i * 5)
  58. .toHexString();
  59. })
  60. .filter((item) => item !== '#000000');
  61. // console.log('lightens', lightens);
  62. // console.log('darkens', darkens);
  63. // console.log('alphaColors', alphaColors);
  64. // console.log('shortAlphaColors', shortAlphaColors);
  65. // console.log('tinycolorLightens', tinycolorLightens);
  66. // console.log('tinycolorDarkens', tinycolorDarkens);
  67. return [...lightens, ...darkens, ...alphaColors, ...shortAlphaColors, ...tinycolorDarkens, ...tinycolorLightens];
  68. }