@@ -36,6 +36,7 @@ const MobileMenu = ({ links }: IMobileMenuProps) => {
36
36
type : "spring" ,
37
37
stiffness : 400 ,
38
38
damping : 40 ,
39
+ delay : 0.2 , // Delay the menu closing to allow text to fade out first
39
40
} ,
40
41
} ,
41
42
open : {
@@ -53,7 +54,10 @@ const MobileMenu = ({ links }: IMobileMenuProps) => {
53
54
x : i % 2 === 0 ? "-100%" : "100%" ,
54
55
opacity : 0 ,
55
56
transition : {
56
- delay : 0.15 ,
57
+ type : "spring" ,
58
+ stiffness : 300 ,
59
+ damping : 24 ,
60
+ duration : 0.15 ,
57
61
} ,
58
62
} ) ,
59
63
open : ( i : number ) => ( {
@@ -82,14 +86,27 @@ const MobileMenu = ({ links }: IMobileMenuProps) => {
82
86
data-testid = "mobile-menu"
83
87
data-cy = "mobile-menu"
84
88
aria-hidden = { ! isExpanded }
85
- className = "fixed top-0 right-0 w-screen h-screen bg-gray-800 flex items-center justify-center -z-50 "
89
+ className = "fixed top-0 right-0 w-screen h-screen bg-gray-800 flex items-center justify-center -z-10 "
86
90
initial = "closed"
87
91
animate = "open"
88
92
exit = "closed"
89
93
variants = { menuVariants }
90
94
>
91
95
< nav aria-label = "Navigasjon" className = "w-full" >
92
- < ul className = "w-full" >
96
+ < motion . ul
97
+ className = "w-full"
98
+ initial = "closed"
99
+ animate = "open"
100
+ exit = "closed"
101
+ variants = { {
102
+ open : {
103
+ transition : { staggerChildren : 0.07 , delayChildren : 0.2 }
104
+ } ,
105
+ closed : {
106
+ transition : { staggerChildren : 0.05 , staggerDirection : - 1 }
107
+ }
108
+ } }
109
+ >
93
110
{ links . map ( ( { title, name, hash, href } , index ) => (
94
111
< motion . li
95
112
key = { title }
@@ -119,7 +136,7 @@ const MobileMenu = ({ links }: IMobileMenuProps) => {
119
136
) }
120
137
</ motion . li >
121
138
) ) }
122
- </ ul >
139
+ </ motion . ul >
123
140
</ nav >
124
141
</ motion . div >
125
142
) }
@@ -128,4 +145,4 @@ const MobileMenu = ({ links }: IMobileMenuProps) => {
128
145
) ;
129
146
} ;
130
147
131
- export default MobileMenu ;
148
+ export default MobileMenu ;
0 commit comments