11<nav
2- x-data
32 x-ref =" nav"
43 x-init ="
54 () => {
65 if (reducedMotion) return
7- const navTimeline = gsap
8- .timeline({
9- paused: true,
10- })
11- .fromTo(
12- $refs.nav.querySelectorAll('.gsap-fadein'),
13- {
14- autoAlpha: 0,
15- y: -10,
16- },
17- {
18- autoAlpha: 1,
19- y: 0,
20- duration: 0.5,
21- stagger: 0.05,
22- },
23- )
246
25- if ($refs.nav.querySelectorAll('.gsap-popout').length) {
26- navTimeline.fromTo (
27- $refs.nav.querySelectorAll('.gsap-popout '),
7+ motion.inView($el, (element) => {
8+ motion.animate (
9+ $refAll('navItem '),
2810 {
29- autoAlpha: 0,
30- y: -30,
31- rotate: 360,
11+ y: [-10, 0],
12+ opacity: [0, 1],
3213 },
3314 {
34- autoAlpha: 1,
35- y: 0,
36- rotate: -45,
37- duration: 0.6,
38- ease: 'back.out(1.5)',
15+ duration: 0.7,
16+ ease: motion.circOut,
17+ delay: motion.stagger(0.05),
3918 },
40- '<0.2',
4119 )
42- }
43-
44- navTimeline.play()
20+ })
4521 }
4622 "
47- class =" relative mx-auto flex max-w-8xl items-center justify-between overflow-x-clip px-8 py-10 sm:overflow-x-visible"
23+ class =" relative mx-auto flex max-w-8xl items-center justify-between overflow-x-clip px-8 pb-12 pt-5 sm:overflow-x-visible"
4824>
4925 {{-- Mobile Menu Button --}}
5026 <button
51- x-data
5227 aria-controls =" main-menu"
5328 aria-haspopup =" true"
5429 x-on:click.prevent =" $store.sidebar.isOpen = ! $store.sidebar.isOpen"
@@ -79,86 +54,113 @@ class="transition duration-300 hover:scale-110 lg:hidden"
7954 @endif
8055
8156 {{-- Nav Links --}}
82- <div class =" flex items-center justify-end gap-8 font-semibold sm:gap-14" >
57+ <div class =" flex items-center justify-end gap-8 text-sm" >
58+ <a
59+ href =" {{ route (' home' ) } }"
60+ @class ([
61+ ' group relative hidden text-evening transition duration-300 hover:opacity-100 motion-reduce:transition-none lg:block' ,
62+ ' opacity-80' => ! request ()-> routeIs (' home*' ),
63+ ' font-semibold' => request ()-> routeIs (' home*' ),
64+ ] )
65+ >
66+ <div
67+ x-ref =" navItem"
68+ :class =" {'opacity-0': !reducedMotion}"
69+ >
70+ Home
71+ </div >
72+
73+ @if (request ()-> routeIs (' home*' ) )
74+ <x-nav .indicator />
75+ @endif
76+ </a >
77+
8378 <a
8479 href =" {{ route (' docs' ) } }"
8580 @class ([
86- ' hidden transition duration-300 hover:opacity-100 focus:text-butter motion-reduce:transition-none lg:block' ,
81+ ' hidden transition duration-300 hover:opacity-100 motion-reduce:transition-none lg:block' ,
8782 ' text-evening opacity-80' => ! request ()-> routeIs (' docs*' ),
8883 ' text-butter' => request ()-> routeIs (' docs*' ),
8984 ] )
9085 >
91- <div class =" gsap-fadein" >Documentation</div >
86+ <div
87+ x-ref =" navItem"
88+ :class =" {'opacity-0': !reducedMotion}"
89+ >
90+ Documentation
91+ </div >
9292 </a >
9393
9494 <a
9595 href =" {{ route (' plugins' ) } }"
9696 @class ([
97- ' group/nav-link relative hidden text-evening transition duration-300 hover:opacity-100 focus:text-butter motion-reduce:transition-none lg:block' ,
97+ ' group relative hidden text-evening transition duration-300 hover:opacity-100 motion-reduce:transition-none lg:block' ,
9898 ' opacity-80' => ! request ()-> routeIs (' plugins*' ),
99- ' font-bold ' => request ()-> routeIs (' plugins*' ),
99+ ' font-semibold ' => request ()-> routeIs (' plugins*' ),
100100 ] )
101101 >
102- <div class =" gsap-fadein" >Plugins</div >
102+ <div
103+ x-ref =" navItem"
104+ :class =" {'opacity-0': !reducedMotion}"
105+ >
106+ Plugins
107+ </div >
103108
104109 @if (request ()-> routeIs (' plugins*' ) )
105- <div
106- class =" gsap-popout absolute -bottom-4 right-1/2 translate-x-1/2"
107- >
108- <div
109- class =" h-2 w-2 bg-butter transition duration-300 group-hover/nav-link:rotate-90 group-hover/nav-link:bg-purple-400 motion-reduce:transition-none"
110- ></div >
111- </div >
110+ <x-nav .indicator />
112111 @endif
113112 </a >
114113
115114 <a
116115 href =" {{ route (' articles' ) } }"
117116 @class ([
118- ' group/nav-link relative hidden text-evening transition duration-300 hover:opacity-100 focus:text-butter motion-reduce:transition-none lg:block' ,
117+ ' group relative hidden text-evening transition duration-300 hover:opacity-100 motion-reduce:transition-none lg:block' ,
119118 ' opacity-80' => ! request ()-> routeIs (' articles*' ),
120- ' font-bold ' => request ()-> routeIs (' articles*' ),
119+ ' font-semibold ' => request ()-> routeIs (' articles*' ),
121120 ] )
122121 >
123- <div class =" gsap-fadein" >Content</div >
122+ <div
123+ x-ref =" navItem"
124+ :class =" {'opacity-0': !reducedMotion}"
125+ >
126+ Content
127+ </div >
124128
125129 @if (request ()-> routeIs (' articles*' ) )
126- <div
127- class =" gsap-popout absolute -bottom-4 right-1/2 translate-x-1/2"
128- >
129- <div
130- class =" h-2 w-2 bg-butter transition duration-300 group-hover/nav-link:rotate-90 group-hover/nav-link:bg-purple-400 motion-reduce:transition-none"
131- ></div >
132- </div >
130+ <x-nav .indicator />
133131 @endif
134132 </a >
135133
136134 <a
137135 href =" {{ route (' consulting' ) } }"
138136 @class ([
139- ' group/nav-link relative hidden text-evening transition duration-300 hover:opacity-100 focus:text-butter motion-reduce:transition-none lg:block' ,
137+ ' group relative hidden text-evening transition duration-300 hover:opacity-100 motion-reduce:transition-none lg:block' ,
140138 ' opacity-80' => ! request ()-> routeIs (' consulting*' ),
141- ' font-bold ' => request ()-> routeIs (' consulting*' ),
139+ ' font-semibold ' => request ()-> routeIs (' consulting*' ),
142140 ] )
143141 >
144- <div class =" gsap-fadein" >Consulting</div >
142+ <div
143+ x-ref =" navItem"
144+ :class =" {'opacity-0': !reducedMotion}"
145+ >
146+ Consulting
147+ </div >
145148
146149 @if (request ()-> routeIs (' consulting*' ) )
147- <div
148- class =" gsap-popout absolute -bottom-4 right-1/2 translate-x-1/2"
149- >
150- <div
151- class =" h-2 w-2 bg-butter transition duration-300 group-hover/nav-link:rotate-90 group-hover/nav-link:bg-purple-400 motion-reduce:transition-none"
152- ></div >
153- </div >
150+ <x-nav .indicator />
154151 @endif
155152 </a >
156153
157154 <a
158155 href =" https://shop.filamentphp.com"
159- class =" group/nav-link relative hidden text-evening opacity-80 transition duration-300 hover:opacity-100 focus:text-butter motion-reduce:transition-none lg:block"
156+ class =" group relative hidden text-evening opacity-80 transition duration-300 hover:opacity-100 motion-reduce:transition-none lg:block"
160157 >
161- <div class =" gsap-fadein" >Shop</div >
158+ <div
159+ x-ref =" navItem"
160+ :class =" {'opacity-0': !reducedMotion}"
161+ >
162+ Shop
163+ </div >
162164 </a >
163165
164166 {{-- Github --}}
@@ -169,7 +171,10 @@ class="group/nav-link relative hidden text-evening opacity-80 transition duratio
169171 target =" _blank"
170172 class =" peer text-evening opacity-80 transition delay-75 duration-300 group-hover/github:opacity-100 motion-reduce:transition-none"
171173 >
172- <div class =" gsap-fadein" >
174+ <div
175+ x-ref =" navItem"
176+ :class =" {'opacity-0': !reducedMotion}"
177+ >
173178 <svg
174179 fill =" currentColor"
175180 viewBox =" 0 0 29 29"
0 commit comments