ant-design/components/theme/themes/default/palettes.ts
MadCcc 0b2acfc6cb
refactor: color map token (#36285)
* refactor: map token

* fix: remove colorBase in maptoken

* chore: interface

* feat: genCommonMapToken
2022-06-29 16:15:58 +08:00

96 lines
2.7 KiB
TypeScript

import { generate } from '@ant-design/colors';
import type {
BgPalettes,
ErrorPalettes,
InfoPalettes,
PrimaryPalettes,
SuccessPalettes,
TextAlphaPalettes,
WarningPalettes,
} from '../IPalettes';
import { getAlphaColor, getSolidColor } from './colorAlgorithm';
export function generatePrimaryPalettes(primaryBaseColor: string): PrimaryPalettes {
const primaryColors = generate(primaryBaseColor);
return {
0: '#0e161f',
1: primaryColors[0],
2: primaryColors[1],
3: primaryColors[2],
4: primaryColors[3],
5: primaryColors[4],
6: primaryColors[5],
7: primaryColors[6],
};
}
export function generateSuccessPalettes(successBaseColor: string): SuccessPalettes {
const successColors = generate(successBaseColor);
return {
1: successColors[0],
3: successColors[2],
6: successColors[5],
};
}
export function generateErrorPalettes(errorBaseColor: string): ErrorPalettes {
const errorColors = generate(errorBaseColor);
return {
1: errorColors[0],
3: errorColors[2],
5: errorColors[4],
6: errorColors[5],
7: errorColors[6],
};
}
export function generateWarningPalettes(warningBaseColor: string): WarningPalettes {
const warningColors = generate(warningBaseColor);
return {
1: warningColors[0],
3: warningColors[2],
5: warningColors[4],
6: warningColors[5],
7: warningColors[6],
};
}
export function generateInfoPalettes(infoBaseColor: string): InfoPalettes {
const infoColors = generate(infoBaseColor);
return {
1: infoColors[0],
3: infoColors[2],
6: infoColors[5],
};
}
export function generateBgPalettes(bgBaseColor: string): BgPalettes {
return {
26: getSolidColor(bgBaseColor, 15),
'light-2': getSolidColor(bgBaseColor, 2),
'light-10': getSolidColor(bgBaseColor, 10),
'light-12': getSolidColor(bgBaseColor, 12),
19: getSolidColor(bgBaseColor, 6),
15: getSolidColor(bgBaseColor, 4),
12: getSolidColor(bgBaseColor, 0),
8: getSolidColor(bgBaseColor, 0),
0: getSolidColor(bgBaseColor, 4),
};
}
export function generateTextAlphaPalettes(textBaseColor: string): TextAlphaPalettes {
return {
85: getAlphaColor(textBaseColor, 0.85),
'light-75': getAlphaColor(textBaseColor, 0.75), // 目前只有 Popover 用了
65: getAlphaColor(textBaseColor, 0.65), // 目前只有 Segment Label 用了
45: getAlphaColor(textBaseColor, 0.45),
30: getAlphaColor(textBaseColor, 0.25),
25: getAlphaColor(textBaseColor, 0.25),
// 从 12 往下基本上就是偏背景和装饰性元素了
12: getAlphaColor(textBaseColor, 0.06), // 主要是 Split
8: getAlphaColor(textBaseColor, 0.04),
4: getAlphaColor(textBaseColor, 0.03),
3: getAlphaColor(textBaseColor, 0.02),
};
}