@@ -139,18 +139,18 @@ function Index() {
139
139
</ p >
140
140
</ div >
141
141
</ div >
142
- < div className = "h-8 " />
142
+ < div className = "my-16 " />
143
143
< div className = "w-fit mx-auto px-4" >
144
144
< OpenSourceStats />
145
145
</ div >
146
- < div className = "h-12 " />
146
+ < div className = "my-16 " />
147
147
< div className = "px-4 lg:max-w-screen-lg md:mx-auto" >
148
148
< h3 className = { `text-4xl font-light` } > Open Source Libraries</ h3 >
149
149
150
150
{ Object . entries ( librariesByGroup ) . map (
151
151
( [ groupName , groupLibraries ] : [ string , Library [ ] ] ) => (
152
152
< 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 ` } >
154
154
{
155
155
librariesGroupNamesMap [
156
156
groupName as keyof typeof librariesGroupNamesMap
@@ -159,7 +159,7 @@ function Index() {
159
159
</ h4 >
160
160
{ /* Library Cards */ }
161
161
< 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
163
163
sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-3` }
164
164
>
165
165
{ groupLibraries . map ( ( library , i : number ) => {
@@ -169,7 +169,7 @@ function Index() {
169
169
to = { library . to ?? '#' }
170
170
params
171
171
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
173
173
bg-white/90 dark:bg-black/40 backdrop-blur-sm
174
174
dark:border-gray-800/50` ,
175
175
'hover:shadow-lg' ,
@@ -226,9 +226,9 @@ function Index() {
226
226
227
227
{ /* Foreground content that appears on hover */ }
228
228
< 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 "
232
232
>
233
233
< div
234
234
className = { `text-sm text-gray-800 dark:text-gray-200 leading-relaxed` }
@@ -264,16 +264,16 @@ function Index() {
264
264
>
265
265
< div
266
266
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` ,
268
268
library . bgStyle
269
269
) }
270
270
/>
271
271
< span
272
272
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 ' ,
274
274
library . badge . length > 4
275
- ? 'text-[10px ]'
276
- : 'text-xs '
275
+ ? 'absolute top-[16px] right-[-2px ]'
276
+ : 'absolute top-[14px] right-[5px] '
277
277
) }
278
278
>
279
279
{ library . badge }
@@ -288,9 +288,9 @@ function Index() {
288
288
)
289
289
) }
290
290
</ div >
291
- < div className = "h-12 " />
291
+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
292
292
< 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 >
294
294
< div className = { `grid grid-cols-1 gap-6 sm:grid-cols-2` } >
295
295
{ partners . map ( ( partner ) => {
296
296
return (
@@ -301,20 +301,20 @@ function Index() {
301
301
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"
302
302
rel = "noreferrer"
303
303
>
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 " >
305
305
{ partner . homepageImg }
306
306
</ 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 " >
308
308
{ partner . content }
309
309
</ div >
310
310
</ a >
311
311
)
312
312
} ) }
313
313
</ div >
314
314
</ div >
315
- < div className = "h-20 " />
315
+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
316
316
< 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 >
318
318
< div className = { `mt-4 grid grid-cols-1 gap-4` } >
319
319
{ courses . map ( ( course ) => (
320
320
< a
@@ -346,24 +346,25 @@ function Index() {
346
346
) ) }
347
347
</ div >
348
348
</ div >
349
- < div className = "h-12 " />
349
+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
350
350
< div className = { `lg:max-w-screen-lg px-4 mx-auto` } >
351
351
< h3 className = { `text-4xl font-light` } > OSS Sponsors</ h3 >
352
- < div className = "h-4 " />
352
+ < div className = "h-6 " />
353
353
< div
354
354
style = { {
355
355
aspectRatio : '1/1' ,
356
356
} }
357
+ className = "max-w-2xl mx-auto"
357
358
>
358
359
< Await
359
360
promise = { sponsorsPromise }
360
- fallback = { < CgSpinner className = "text-2xl animate-spin" /> }
361
+ fallback = { < CgSpinner className = "text-2xl animate-spin mx-auto " /> }
361
362
children = { ( sponsors ) => {
362
363
return < SponsorPack sponsors = { sponsors } />
363
364
} }
364
365
/>
365
366
</ div >
366
- < div className = { `h-6 ` } />
367
+ < div className = { `h-8 ` } />
367
368
< div className = { `text-center` } >
368
369
< div >
369
370
< a
@@ -384,29 +385,29 @@ function Index() {
384
385
</ p >
385
386
</ div >
386
387
</ div >
387
- < div className = "h-12 " />
388
+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
388
389
< 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 " >
390
391
< div className = "shadow-lg rounded-lg overflow-hidden bg-white dark:bg-gray-800 dark:text-white max-w-[250px] mx-auto" >
391
392
< Carbon />
392
393
</ div >
393
394
< span
394
395
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 "
396
397
>
397
398
This ad helps us be happy about our invested time and not burn out
398
399
and rage-quit OSS. Yay money! 😉
399
400
</ span >
400
401
</ div >
401
402
</ div >
402
- < div className = "h-12 " />
403
+ < hr className = "my-16 border-gray-200 dark:border-gray-500/10 " />
403
404
< div className = "px-4 mx-auto max-w-screen-lg" >
404
405
< div
405
406
className = { `
406
407
rounded-md p-4 grid gap-6
407
408
bg-discord text-white overflow-hidden relative
408
409
shadow-xl shadow-indigo-700/30
409
- sm:p-8 sm:grid-cols-3` }
410
+ sm:p-8 sm:grid-cols-3 items-center ` }
410
411
>
411
412
< div
412
413
className = { `absolute transform opacity-10 z-0
0 commit comments