@@ -36,41 +36,73 @@ const MobileNav = () => {
3636 />
3737 </ svg >
3838 </ button >
39- < div
40- className = { `fixed left-0 top-0 z-10 h-full w-full transform bg-white opacity-95 duration-300 ease-in-out dark:bg-gray-950 dark:opacity-[0.98] ${
41- navShow ? 'translate-x-0' : 'hidden translate-x-full'
42- } `}
43- >
44- < nav className = "fixed mt-8 h-full" >
45- { headerNavLinks . map ( ( link ) => (
46- < div key = { link . title } className = "px-12 py-4" >
47- < Link
48- href = { link . href }
49- className = "text-2xl font-bold tracking-widest text-gray-900 dark:text-gray-100"
50- onClick = { onToggleNav }
39+
40+ < Transition appear show = { navShow } as = { Fragment } >
41+ < Dialog as = "div" className = "relative z-10" onClose = { onToggleNav } >
42+ < Transition . Child
43+ as = { Fragment }
44+ enter = "ease-out duration-300"
45+ enterFrom = "opacity-0"
46+ enterTo = "opacity-100"
47+ leave = "ease-in duration-200"
48+ leaveFrom = "opacity-100"
49+ leaveTo = "opacity-0"
50+ >
51+ < div className = "fixed inset-0 bg-black/25" />
52+ </ Transition . Child >
53+
54+ < div className = "fixed inset-0 overflow-y-auto" >
55+ < div className = "flex min-h-full items-center justify-center p-4 text-center" >
56+ < Transition . Child
57+ as = { Fragment }
58+ enter = "transition ease-in-out duration-300 transform"
59+ enterFrom = "translate-x-full opacity-0"
60+ enterTo = "translate-x-0 opacity-95"
61+ leave = "transition ease-in duration-200 transform"
62+ leaveFrom = "translate-x-0 opacity-95"
63+ leaveTo = "translate-x-full opacity-0"
5164 >
52- { link . title }
53- </ Link >
65+ < Dialog . Panel className = "fixed left-0 top-0 z-10 h-full w-full bg-white opacity-95 duration-300 dark:bg-gray-950 dark:opacity-[0.98]" >
66+ < nav className = "fixed mt-8 h-full text-left" >
67+ { headerNavLinks . map ( ( link ) => (
68+ < div key = { link . title } className = "px-12 py-4" >
69+ < Link
70+ href = { link . href }
71+ className = "text-2xl font-bold tracking-widest text-gray-900 dark:text-gray-100"
72+ onClick = { onToggleNav }
73+ >
74+ { link . title }
75+ </ Link >
76+ </ div >
77+ ) ) }
78+ </ nav >
79+
80+ < div className = "flex justify-end" >
81+ < button
82+ className = "mr-8 mt-11 h-8 w-8"
83+ aria-label = "Toggle Menu"
84+ onClick = { onToggleNav }
85+ >
86+ < svg
87+ xmlns = "http://www.w3.org/2000/svg"
88+ viewBox = "0 0 20 20"
89+ fill = "currentColor"
90+ className = "text-gray-900 dark:text-gray-100"
91+ >
92+ < path
93+ fillRule = "evenodd"
94+ d = "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
95+ clipRule = "evenodd"
96+ />
97+ </ svg >
98+ </ button >
99+ </ div >
100+ </ Dialog . Panel >
101+ </ Transition . Child >
54102 </ div >
55- ) ) }
56- </ nav >
57- < div className = "flex justify-end" >
58- < button className = "mr-8 mt-11 h-8 w-8" aria-label = "Toggle Menu" onClick = { onToggleNav } >
59- < svg
60- xmlns = "http://www.w3.org/2000/svg"
61- viewBox = "0 0 20 20"
62- fill = "currentColor"
63- className = "text-gray-900 dark:text-gray-100"
64- >
65- < path
66- fillRule = "evenodd"
67- d = "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
68- clipRule = "evenodd"
69- />
70- </ svg >
71- </ button >
72- </ div >
73- </ div >
103+ </ div >
104+ </ Dialog >
105+ </ Transition >
74106 </ >
75107 )
76108}
0 commit comments