@@ -95,11 +95,11 @@ export const Navbar = ({
9595 preLayerElsRef . current = preLayers ;
9696
9797 const offscreen = position === 'left' ? - 100 : 100 ;
98- gsap . set ( [ panel , ...preLayers ] , { xPercent : offscreen } ) ;
99- gsap . set ( plusH , { transformOrigin : '50% 50%' , rotate : 0 } ) ;
100- gsap . set ( plusV , { transformOrigin : '50% 50%' , rotate : 90 } ) ;
101- gsap . set ( icon , { rotate : 0 , transformOrigin : '50% 50%' } ) ;
102- gsap . set ( textInner , { yPercent : 0 } ) ;
98+ gsap . set ( [ panel , ...preLayers ] , { xPercent : offscreen , force3D : true } ) ;
99+ gsap . set ( plusH , { transformOrigin : '50% 50%' , rotate : 0 , force3D : true } ) ;
100+ gsap . set ( plusV , { transformOrigin : '50% 50%' , rotate : 90 , force3D : true } ) ;
101+ gsap . set ( icon , { rotate : 0 , transformOrigin : '50% 50%' , force3D : true } ) ;
102+ gsap . set ( textInner , { yPercent : 0 , force3D : true } ) ;
103103 if ( toggleBtnRef . current ) gsap . set ( toggleBtnRef . current , { color : menuButtonColor } ) ;
104104 } ) ;
105105 return ( ) => ctx . revert ( ) ;
@@ -141,15 +141,15 @@ export const Navbar = ({
141141 const tl = gsap . timeline ( { paused : true } ) ;
142142
143143 layerStates . forEach ( ( ls , i ) => {
144- tl . fromTo ( ls . el , { xPercent : ls . start } , { xPercent : 0 , duration : 0.5 , ease : 'power4.out' } , i * 0.07 ) ;
144+ tl . fromTo ( ls . el , { xPercent : ls . start } , { xPercent : 0 , duration : 0.5 , ease : 'power4.out' , force3D : true } , i * 0.06 ) ;
145145 } ) ;
146- const lastTime = layerStates . length ? ( layerStates . length - 1 ) * 0.07 : 0 ;
147- const panelInsertTime = lastTime + ( layerStates . length ? 0.08 : 0 ) ;
146+ const lastTime = layerStates . length ? ( layerStates . length - 1 ) * 0.06 : 0 ;
147+ const panelInsertTime = lastTime + ( layerStates . length ? 0.06 : 0 ) ;
148148 const panelDuration = 0.65 ;
149149 tl . fromTo (
150150 panel ,
151151 { xPercent : panelStart } ,
152- { xPercent : 0 , duration : panelDuration , ease : 'power4.out' } ,
152+ { xPercent : 0 , duration : panelDuration , ease : 'power4.out' , force3D : true } ,
153153 panelInsertTime
154154 ) ;
155155
@@ -163,7 +163,8 @@ export const Navbar = ({
163163 rotate : 0 ,
164164 duration : 1 ,
165165 ease : 'power4.out' ,
166- stagger : { each : 0.1 , from : 'start' }
166+ force3D : true ,
167+ stagger : { each : 0.06 , from : 'start' }
167168 } ,
168169 itemsStart
169170 ) ;
@@ -174,7 +175,7 @@ export const Navbar = ({
174175 duration : 0.6 ,
175176 ease : 'power2.out' ,
176177 '--sm-num-opacity' : 1 ,
177- stagger : { each : 0.08 , from : 'start' }
178+ stagger : { each : 0.06 , from : 'start' }
178179 } ,
179180 itemsStart + 0.1
180181 ) ;
@@ -202,7 +203,8 @@ export const Navbar = ({
202203 opacity : 1 ,
203204 duration : 0.55 ,
204205 ease : 'power3.out' ,
205- stagger : { each : 0.08 , from : 'start' } ,
206+ force3D : true ,
207+ stagger : { each : 0.06 , from : 'start' } ,
206208 onComplete : ( ) => {
207209 gsap . set ( socialLinks , { clearProps : 'opacity' } ) ;
208210 }
@@ -247,6 +249,7 @@ export const Navbar = ({
247249 duration : 0.32 ,
248250 ease : 'power3.in' ,
249251 overwrite : 'auto' ,
252+ force3D : true ,
250253 onComplete : ( ) => {
251254 const itemEls = Array . from ( panel . querySelectorAll ( '.sm-panel-itemLabel' ) ) ;
252255 if ( itemEls . length ) {
@@ -270,9 +273,9 @@ export const Navbar = ({
270273 if ( ! icon ) return ;
271274 spinTweenRef . current ?. kill ( ) ;
272275 if ( opening ) {
273- spinTweenRef . current = gsap . to ( icon , { rotate : 225 , duration : 0.8 , ease : 'power4.out' , overwrite : 'auto' } ) ;
276+ spinTweenRef . current = gsap . to ( icon , { rotate : 225 , duration : 0.8 , ease : 'power4.out' , overwrite : 'auto' , force3D : true } ) ;
274277 } else {
275- spinTweenRef . current = gsap . to ( icon , { rotate : 0 , duration : 0.35 , ease : 'power3.inOut' , overwrite : 'auto' } ) ;
278+ spinTweenRef . current = gsap . to ( icon , { rotate : 0 , duration : 0.35 , ease : 'power3.inOut' , overwrite : 'auto' , force3D : true } ) ;
276279 }
277280 } , [ ] ) ;
278281
@@ -325,13 +328,14 @@ export const Navbar = ({
325328 seq . push ( targetLabel ) ;
326329 setTextLines ( seq ) ;
327330
328- gsap . set ( inner , { yPercent : 0 } ) ;
331+ gsap . set ( inner , { yPercent : 0 , force3D : true } ) ;
329332 const lineCount = seq . length ;
330333 const finalShift = ( ( lineCount - 1 ) / lineCount ) * 100 ;
331334 textCycleAnimRef . current = gsap . to ( inner , {
332335 yPercent : - finalShift ,
333336 duration : 0.5 + lineCount * 0.07 ,
334- ease : 'power4.out'
337+ ease : 'power4.out' ,
338+ force3D : true
335339 } ) ;
336340 } , [ ] ) ;
337341
0 commit comments