47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import type { TabsToken } from '.';
 | |
| import { initSlideMotion } from '../../style/motion';
 | |
| import type { GenerateStyle } from '../../theme/internal';
 | |
| 
 | |
| const genMotionStyle: GenerateStyle<TabsToken> = token => {
 | |
|   const { componentCls, motionDurationSlow } = token;
 | |
| 
 | |
|   return [
 | |
|     {
 | |
|       [componentCls]: {
 | |
|         [`${componentCls}-switch`]: {
 | |
|           '&-appear, &-enter': {
 | |
|             transition: 'none',
 | |
| 
 | |
|             '&-start': {
 | |
|               opacity: 0,
 | |
|             },
 | |
|             '&-active': {
 | |
|               opacity: 1,
 | |
|               transition: `opacity ${motionDurationSlow}`,
 | |
|             },
 | |
|           },
 | |
| 
 | |
|           '&-leave': {
 | |
|             position: 'absolute',
 | |
|             transition: 'none',
 | |
|             inset: 0,
 | |
| 
 | |
|             '&-start': {
 | |
|               opacity: 1,
 | |
|             },
 | |
|             '&-active': {
 | |
|               opacity: 0,
 | |
|               transition: `opacity ${motionDurationSlow}`,
 | |
|             },
 | |
|           },
 | |
|         },
 | |
|       },
 | |
|     },
 | |
| 
 | |
|     // Follow code may reuse in other components
 | |
|     [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down')],
 | |
|   ];
 | |
| };
 | |
| 
 | |
| export default genMotionStyle;
 |