vuecssuiant-designantdreactantantd-vueenterprisefrontendui-designvue-antdvue-antd-uivue3vuecomponent
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.
46 lines
1.1 KiB
46 lines
1.1 KiB
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;
|
|
|