@@ -139,18 +139,18 @@ function Index() {
139139 </ p >
140140 </ div >
141141 </ div >
142- < div className = "h-8 " />
142+ < div className = "my-16 " />
143143 < div className = "w-fit mx-auto px-4" >
144144 < OpenSourceStats />
145145 </ div >
146- < div className = "h-12 " />
146+ < div className = "my-16 " />
147147 < div className = "px-4 lg:max-w-screen-lg md:mx-auto" >
148148 < h3 className = { `text-4xl font-light` } > Open Source Libraries</ h3 >
149149
150150 { Object . entries ( librariesByGroup ) . map (
151151 ( [ groupName , groupLibraries ] : [ string , Library [ ] ] ) => (
152152 < div key = { groupName } className = "mt-8" >
153- < h4 className = { `text-2xl font-medium capitalize mb-4 ` } >
153+ < h4 className = { `text-2xl font-medium capitalize mb-6 ` } >
154154 {
155155 librariesGroupNamesMap [
156156 groupName as keyof typeof librariesGroupNamesMap
@@ -159,7 +159,7 @@ function Index() {
159159 </ h4 >
160160 { /* Library Cards */ }
161161 < div
162- className = { `grid grid-cols-1 gap-4 gap-y-8 justify-center
162+ className = { `grid grid-cols-1 gap-6 gap-y-8 justify-center
163163 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-3` }
164164 >
165165 { groupLibraries . map ( ( library , i : number ) => {
@@ -169,7 +169,7 @@ function Index() {
169169 to = { library . to ?? '#' }
170170 params
171171 className = { twMerge (
172- `border-2 border-transparent rounded-xl shadow-md p-6 transition-all duration-200
172+ `border-2 border-transparent rounded-xl shadow-md p-8 transition-all duration-300
173173 bg-white/90 dark:bg-black/40 backdrop-blur-sm
174174 dark:border-gray-800/50` ,
175175 'hover:shadow-lg' ,
@@ -226,9 +226,9 @@ function Index() {
226226
227227 { /* Foreground content that appears on hover */ }
228228 < div
229- className = "absolute inset-0 z-10 bg-white/95 dark:bg-black/95 p-6
230- flex flex-col justify-center opacity-0 group-hover:opacity-100
231- transition-opacity duration-200 "
229+ className = "absolute inset-0 z-30 bg-white/95 dark:bg-black/95 p-6
230+ backdrop-blur-sm flex flex-col justify-center opacity-0 group-hover:opacity-100
231+ transition-opacity duration-300 "
232232 >
233233 < div
234234 className = { `text-sm text-gray-800 dark:text-gray-200 leading-relaxed` }
@@ -264,16 +264,16 @@ function Index() {
264264 >
265265 < div
266266 className = { twMerge (
267- `w-20 h-20 rounded-full translate-x-1/2 -translate-y-1/2` ,
267+ `w-[100px] h-[100px] rounded-full translate-x-1/2 -translate-y-1/2` ,
268268 library . bgStyle
269269 ) }
270270 />
271271 < span
272272 className = { twMerge (
273- 'inline-block transform rotate-45 uppercase text-white font-black italic animate-pulse absolute top-3 right-1 ' ,
273+ 'inline-block transform rotate-45 uppercase text-white font-black italic animate-pulse text-xs ' ,
274274 library . badge . length > 4
275- ? 'text-[10px ]'
276- : 'text-xs '
275+ ? 'absolute top-[16px] right-[-2px ]'
276+ : 'absolute top-[14px] right-[5px] '
277277 ) }
278278 >
279279 { library . badge }
@@ -288,9 +288,9 @@ function Index() {
288288 )
289289 ) }
290290 </ div >
291- < div className = "h-12 " />
291+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
292292 < div className = "px-4 lg:max-w-screen-lg md:mx-auto" >
293- < h3 className = { `text-4xl font-light mb-4 ` } > Partners</ h3 >
293+ < h3 className = { `text-4xl font-light mb-6 ` } > Partners</ h3 >
294294 < div className = { `grid grid-cols-1 gap-6 sm:grid-cols-2` } >
295295 { partners . map ( ( partner ) => {
296296 return (
@@ -301,20 +301,20 @@ function Index() {
301301 className = "bg-white/80 shadow-xl shadow-gray-500/20 rounded-lg dark:border border-gray-500/20 dark:bg-black/40 dark:shadow-none group overflow-hidden grid"
302302 rel = "noreferrer"
303303 >
304- < div className = "z-0 row-start-1 col-start-1 flex items-center justify-center group-hover:blur-sm transition-all duration-200" >
304+ < div className = "z-0 row-start-1 col-start-1 flex items-center justify-center group-hover:blur-md transition-all duration-200 p-4 " >
305305 { partner . homepageImg }
306306 </ div >
307- < div className = "z-10 row-start-1 col-start-1 max-w-full p-4 text-sm flex flex-col gap-4 items-start opacity-0 group-hover:opacity-100 transition-opacity duration-200 bg-white/70 dark:bg-gray-800/70 " >
307+ < div className = "z-10 row-start-1 col-start-1 max-w-full p-4 text-sm flex flex-col gap-4 items-start justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 bg-white/70 dark:bg-gray-800/80 " >
308308 { partner . content }
309309 </ div >
310310 </ a >
311311 )
312312 } ) }
313313 </ div >
314314 </ div >
315- < div className = "h-20 " />
315+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
316316 < div className = { `lg:max-w-screen-lg px-4 mx-auto` } >
317- < h3 className = { `text-4xl font-light` } > Courses</ h3 >
317+ < h3 className = { `text-4xl font-light mb-6 ` } > Courses</ h3 >
318318 < div className = { `mt-4 grid grid-cols-1 gap-4` } >
319319 { courses . map ( ( course ) => (
320320 < a
@@ -346,24 +346,25 @@ function Index() {
346346 ) ) }
347347 </ div >
348348 </ div >
349- < div className = "h-12 " />
349+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
350350 < div className = { `lg:max-w-screen-lg px-4 mx-auto` } >
351351 < h3 className = { `text-4xl font-light` } > OSS Sponsors</ h3 >
352- < div className = "h-4 " />
352+ < div className = "h-6 " />
353353 < div
354354 style = { {
355355 aspectRatio : '1/1' ,
356356 } }
357+ className = "max-w-2xl mx-auto"
357358 >
358359 < Await
359360 promise = { sponsorsPromise }
360- fallback = { < CgSpinner className = "text-2xl animate-spin" /> }
361+ fallback = { < CgSpinner className = "text-2xl animate-spin mx-auto " /> }
361362 children = { ( sponsors ) => {
362363 return < SponsorPack sponsors = { sponsors } />
363364 } }
364365 />
365366 </ div >
366- < div className = { `h-6 ` } />
367+ < div className = { `h-8 ` } />
367368 < div className = { `text-center` } >
368369 < div >
369370 < a
@@ -384,29 +385,29 @@ function Index() {
384385 </ p >
385386 </ div >
386387 </ div >
387- < div className = "h-12 " />
388+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
388389 < div className = { `lg:max-[400px] px-4 mx-auto` } >
389- < div className = "flex flex-col gap-4" >
390+ < div className = "flex flex-col gap-4 items-center " >
390391 < div className = "shadow-lg rounded-lg overflow-hidden bg-white dark:bg-gray-800 dark:text-white max-w-[250px] mx-auto" >
391392 < Carbon />
392393 </ div >
393394 < span
394395 className = "text-[.7rem] bg-gray-500 bg-opacity-10 py-1 px-2 rounded text-gray-500
395- dark:bg-opacity-20 self-center"
396+ dark:bg-opacity-20 self-center text-center "
396397 >
397398 This ad helps us be happy about our invested time and not burn out
398399 and rage-quit OSS. Yay money! 😉
399400 </ span >
400401 </ div >
401402 </ div >
402- < div className = "h-12 " />
403+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
403404 < div className = "px-4 mx-auto max-w-screen-lg" >
404405 < div
405406 className = { `
406407 rounded-md p-4 grid gap-6
407408 bg-discord text-white overflow-hidden relative
408409 shadow-xl shadow-indigo-700/30
409- sm:p-8 sm:grid-cols-3` }
410+ sm:p-8 sm:grid-cols-3 items-center ` }
410411 >
411412 < div
412413 className = { `absolute transform opacity-10 z-0
0 commit comments