You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
import type { MapToken } from '../../interface';
|
|
|
|
const genRadius = (
|
|
radiusBase: number,
|
|
): Pick<
|
|
MapToken,
|
|
'borderRadiusXS' | 'borderRadiusSM' | 'borderRadiusLG' | 'borderRadius' | 'borderRadiusOuter'
|
|
> => {
|
|
let radiusLG = radiusBase;
|
|
let radiusSM = radiusBase;
|
|
let radiusXS = radiusBase;
|
|
let radiusOuter = radiusBase;
|
|
|
|
// radiusLG
|
|
if (radiusBase < 6 && radiusBase >= 5) {
|
|
radiusLG = radiusBase + 1;
|
|
} else if (radiusBase < 16 && radiusBase >= 6) {
|
|
radiusLG = radiusBase + 2;
|
|
} else if (radiusBase >= 16) {
|
|
radiusLG = 16;
|
|
}
|
|
|
|
// radiusSM
|
|
if (radiusBase < 7 && radiusBase >= 5) {
|
|
radiusSM = 4;
|
|
} else if (radiusBase < 8 && radiusBase >= 7) {
|
|
radiusSM = 5;
|
|
} else if (radiusBase < 14 && radiusBase >= 8) {
|
|
radiusSM = 6;
|
|
} else if (radiusBase < 16 && radiusBase >= 14) {
|
|
radiusSM = 7;
|
|
} else if (radiusBase >= 16) {
|
|
radiusSM = 8;
|
|
}
|
|
|
|
// radiusXS
|
|
if (radiusBase < 6 && radiusBase >= 2) {
|
|
radiusXS = 1;
|
|
} else if (radiusBase >= 6) {
|
|
radiusXS = 2;
|
|
}
|
|
|
|
// radiusOuter
|
|
if (radiusBase > 4 && radiusBase < 8) {
|
|
radiusOuter = 4;
|
|
} else if (radiusBase >= 8) {
|
|
radiusOuter = 6;
|
|
}
|
|
|
|
return {
|
|
borderRadius: radiusBase > 16 ? 16 : radiusBase,
|
|
borderRadiusXS: radiusXS,
|
|
borderRadiusSM: radiusSM,
|
|
borderRadiusLG: radiusLG,
|
|
borderRadiusOuter: radiusOuter,
|
|
};
|
|
};
|
|
|
|
export default genRadius;
|
|
|