@@ -22,8 +22,14 @@ export const matTabsAnimations: {
22
22
translateTab : trigger ( 'translateTab' , [
23
23
// Note: transitions to `none` instead of 0, because some browsers might blur the content.
24
24
state ( 'center, void, left-origin-center, right-origin-center' , style ( { transform : 'none' } ) ) ,
25
- state ( 'left' , style ( { transform : 'translate3d(-100%, 0, 0)' } ) ) ,
26
- state ( 'right' , style ( { transform : 'translate3d(100%, 0, 0)' } ) ) ,
25
+
26
+ // If the tab is either on the left or right, we additionally add a `min-height` of 1px
27
+ // in order to ensure that the element has a height before its state changes. This is
28
+ // necessary because Chrome does seem to skip the transition in RTL mode if the element does
29
+ // not have a static height and is not rendered. See related issue: #9465
30
+ state ( 'left' , style ( { transform : 'translate3d(-100%, 0, 0)' , minHeight : '1px' } ) ) ,
31
+ state ( 'right' , style ( { transform : 'translate3d(100%, 0, 0)' , minHeight : '1px' } ) ) ,
32
+
27
33
transition ( '* => left, * => right, left => center, right => center' ,
28
34
animate ( '500ms cubic-bezier(0.35, 0, 0.25, 1)' ) ) ,
29
35
transition ( 'void => left-origin-center' , [
0 commit comments