12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { generate } from '@ant-design/colors';
- export const primaryColor = '#377DFF';
- export const darkMode = 'light';
- type Fn = (...arg: any) => any;
- type GenerateTheme = 'default' | 'dark';
- export interface GenerateColorsParams {
- mixLighten: Fn;
- mixDarken: Fn;
- tinycolor: any;
- color?: string;
- }
- export function generateAntColors(color: string, theme: GenerateTheme = 'default') {
- return generate(color, {
- theme,
- });
- }
- export function getThemeColors(color?: string) {
- const tc = color || primaryColor;
- const lightColors = generateAntColors(tc);
- const primary = lightColors[5];
- const modeColors = generateAntColors(primary, 'dark');
- return [...lightColors, ...modeColors];
- }
- export function generateColors({
- color = primaryColor,
- mixLighten,
- mixDarken,
- tinycolor,
- }: GenerateColorsParams) {
- const arr = new Array(19).fill(0);
- const lightens = arr.map((_t, i) => {
- return mixLighten(color, i / 5);
- });
- const darkens = arr.map((_t, i) => {
- return mixDarken(color, i / 5);
- });
- const alphaColors = arr.map((_t, i) => {
- return tinycolor(color)
- .setAlpha(i / 20)
- .toRgbString();
- });
- const shortAlphaColors = alphaColors.map((item) => item.replace(/\s/g, '').replace(/0\./g, '.'));
- const tinycolorLightens = arr
- .map((_t, i) => {
- return tinycolor(color)
- .lighten(i * 5)
- .toHexString();
- })
- .filter((item) => item !== '#ffffff');
- const tinycolorDarkens = arr
- .map((_t, i) => {
- return tinycolor(color)
- .darken(i * 5)
- .toHexString();
- })
- .filter((item) => item !== '#000000');
- return [
- ...lightens,
- ...darkens,
- ...alphaColors,
- ...shortAlphaColors,
- ...tinycolorDarkens,
- ...tinycolorLightens,
- ].filter((item) => !item.includes('-'));
- }
|