60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
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;
 |