@@ -119,34 +119,33 @@ export const Tracks = ({ tracks, categories }: TracksWithCategoriesProps) => {
119119 initial = { { y : - 20 , opacity : 0 } }
120120 animate = { { y : 0 , opacity : 1 } }
121121 transition = { { duration : 0.5 , ease : "easeInOut" , type : "spring" , damping : 10 , delay : 0.5 } }
122- className = "flex max-w-5xl flex-col gap-4 w-full mx-auto p-4"
122+ className = "flex max-w-6xl flex-col gap-8 w-full mx-auto p-4 md:p-6 "
123123 id = "tracks"
124124 >
125125 < div className = "flex w-full gap-4 justify-between items-center flex-col md:flex-row" >
126- < div className = "flex items-center gap-2 p-2 rounded-lg bg-primary/5 mx-auto md:mx-0 justify-center" >
126+ < div className = "flex items-center gap-3 p-2 rounded-2xl bg-gradient-to-r from-blue-50 to-purple-50 dark:from-blue-950/30 dark:to-purple-950/30 border border- primary/10 mx-auto md:mx-0 justify-center shadow-sm " >
127127 < Button
128128 size = { "lg" }
129129 variant = { "ghost" }
130130 onClick = { ( ) => handleCohortSelection ( 2 ) }
131- className = { isCohort2Selected ? "bg-blue-600 text-white hover:bg -blue-600 " : "" }
131+ className = { isCohort2Selected ? "bg-gradient-to-r from- blue-600 to-blue-700 text-white hover:from -blue-700 hover:to-blue-800 shadow-lg " : "hover:bg-white/50 dark:hover:bg-white/10 " }
132132 >
133133 Cohort 2.0
134134 </ Button >
135- < Separator className = "w-0.5 h-4 bg-primary/25 " />
135+ < Separator className = "w-0.5 h-6 bg-primary/20 " />
136136 < Button
137137 size = { "lg" }
138138 variant = { "ghost" }
139139 onClick = { ( ) => handleCohortSelection ( 3 ) }
140- className = { isCohort3Selected ? "bg-blue-600 text-white hover:bg -blue-600 " : "" }
140+ className = { isCohort3Selected ? "bg-gradient-to-r from- blue-600 to-blue-700 text-white hover:from -blue-700 hover:to-blue-800 shadow-lg " : "hover:bg-white/50 dark:hover:bg-white/10 " }
141141 >
142142 Cohort 3.0
143143 </ Button >
144144 </ div >
145- < div className = "flex gap-2 p-2.5 bg-primary/5 rounded-lg w-full md:w-fit" >
146- { /* Filter by Categories */ }
147- < div className = "flex gap-2 items-center " >
145+ < div className = "flex gap-3 p-3 bg-gradient-to-r from-blue-50 to-purple-50 dark:from-blue-950/30 dark:to-purple-950/30 border border-primary/10 rounded-2xl w-full md:w-fit shadow-sm" >
146+ < div className = "flex gap-2 items-center" >
148147 < Select onValueChange = { ( e ) => setSelectedCategory ( e === "All" ? "" : e ) } >
149- < SelectTrigger className = "w-[250px]" >
148+ < SelectTrigger className = "w-[250px] bg-white/80 dark:bg-neutral-900/80 border-primary/20 hover:border-blue-500/30 transition-colors " >
150149 < SelectValue placeholder = { selectedCategory || "All" } />
151150 </ SelectTrigger >
152151 < SelectContent >
@@ -160,9 +159,8 @@ export const Tracks = ({ tracks, categories }: TracksWithCategoriesProps) => {
160159 </ Select >
161160 </ div >
162161
163- { /* Sort */ }
164162 < Select onValueChange = { ( e ) => setSortBy ( e ) } >
165- < SelectTrigger className = "w-[250px]" >
163+ < SelectTrigger className = "w-[250px] bg-white/80 dark:bg-neutral-900/80 border-primary/20 hover:border-blue-500/30 transition-colors " >
166164 < SelectValue placeholder = "Sort by" />
167165 </ SelectTrigger >
168166 < SelectContent >
@@ -177,25 +175,29 @@ export const Tracks = ({ tracks, categories }: TracksWithCategoriesProps) => {
177175 </ div >
178176 </ div >
179177
180- { /* Tracks with Animation */ }
181- < motion . ul className = "flex flex-col gap-4 w-full" variants = { trackAnimation } initial = "hidden" animate = "show" >
178+ < motion . ul className = "flex flex-col gap-6 w-full" variants = { trackAnimation } initial = "hidden" animate = "show" >
182179 { loading ? (
183180 Array . from ( { length : tracksPerPage } ) . map ( ( _ , idx ) => (
184181 < div
185182 key = { idx }
186- className = "flex items-center space-x-4 w-full h-24 bg-neutral-100 dark:bg -neutral-900 p-4 rounded-xl "
183+ className = "flex items-center space-x-4 w-full h-28 bg-gradient-to-br from- neutral-100 to-neutral-50 dark:from -neutral-900 dark:to-neutral-800 p-6 rounded-2xl border border-primary/5 animate-pulse "
187184 >
188- < Skeleton className = "h-12 w-12 rounded-2xl" />
189- < div className = "space-y-2 " >
190- < Skeleton className = "h-4 w-[250px ]" />
185+ < Skeleton className = "h-16 w-16 rounded-2xl" />
186+ < div className = "space-y-3 flex-1 " >
187+ < Skeleton className = "h-5 w-[300px ]" />
191188 < Skeleton className = "h-4 w-[200px]" />
192189 </ div >
193190 </ div >
194191 ) )
195192 ) : visibleTracks . length === 0 ? (
196- < p className = "text-center font-medium tracking-tighter text-lg max-w-screen-sm px-4 mx-auto" >
197- ☹️ Sorry - currently there are no tracks available.
198- </ p >
193+ < div className = "text-center py-16" >
194+ < p className = "text-2xl font-bold tracking-tight bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent mb-2" >
195+ No tracks found
196+ </ p >
197+ < p className = "text-primary/60" >
198+ Try adjusting your filters or check back later for new content.
199+ </ p >
200+ </ div >
199201 ) : (
200202 filteredTracks . map ( ( t ) => (
201203 < motion . li key = { t . id } className = "w-full" variants = { { hidden : { opacity : 0 } , show : { opacity : 1 } } } >
@@ -205,12 +207,11 @@ export const Tracks = ({ tracks, categories }: TracksWithCategoriesProps) => {
205207 ) }
206208 </ motion . ul >
207209
208- { /* Skeleton */ }
209- { filteredTracks . length < tracksPerPage && (
210- < div className = "flex items-center space-x-4 w-full h-24 bg-neutral-100 dark:bg-neutral-900 p-4 rounded-xl" >
211- < Skeleton className = "h-12 w-12 rounded-2xl" />
212- < div className = "space-y-2" >
213- < Skeleton className = "h-4 w-[250px]" />
210+ { filteredTracks . length < tracksPerPage && filteredTracks . length > 0 && (
211+ < div className = "flex items-center space-x-4 w-full h-28 bg-gradient-to-br from-neutral-100 to-neutral-50 dark:from-neutral-900 dark:to-neutral-800 p-6 rounded-2xl border border-primary/5 animate-pulse" >
212+ < Skeleton className = "h-16 w-16 rounded-2xl" />
213+ < div className = "space-y-3 flex-1" >
214+ < Skeleton className = "h-5 w-[300px]" />
214215 < Skeleton className = "h-4 w-[200px]" />
215216 </ div >
216217 </ div >
0 commit comments