@@ -22,69 +22,61 @@ export function LeaderboardPodium({ topThree }: { topThree: User[] }) {
2222 key = { user . id }
2323 className = { cn (
2424 'flex flex-col items-center transition-all duration-500 relative' ,
25-
2625 isFirst ? 'order-2 z-10 -mt-8' : 'z-0' ,
2726 isSecond ? 'order-1' : '' ,
2827 isThird ? 'order-3' : ''
2928 ) }
3029 >
31- < article className = "flex flex-col items-center" >
30+ < div className = "flex flex-col items-center" >
3231 < div className = "relative mb-4 group cursor-pointer" >
3332 { isFirst && (
3433 < Crown
35- className = "absolute -top-12 left-1/2 -translate-x-1/2 w-10 h-10 text-yellow-500 fill-yellow-500 animate-bounce drop-shadow-lg"
36- strokeWidth = { 1.5 }
34+ className = "absolute -top-12 left-1/2 -translate-x-1/2 w-10 h-10 text-yellow-400 animate-bounce drop-shadow-lg"
3735 aria-hidden = "true"
3836 />
3937 ) }
40-
4138 < div
4239 className = { cn (
43- 'relative flex items-center justify-center rounded-full overflow-hidden shadow-2xl transition-transform duration-300 group-hover:scale-105 border-4 ' ,
40+ 'relative rounded-full p-1 transition-transform duration-300 group-hover:scale-105' ,
4441 isFirst
45- ? 'w-28 h-28 border -yellow-400 dark:border -yellow-500'
42+ ? 'bg-gradient-to-tr from-yellow-300 via -yellow-100 to -yellow-500 shadow-yellow-500/50 shadow-lg '
4643 : '' ,
4744 isSecond
48- ? 'w-20 h-20 border -slate-300 dark:border -slate-500 '
45+ ? 'bg-gradient-to-tr from -slate-300 via -slate-100 to-slate-400 shadow-slate-400/50 shadow-md '
4946 : '' ,
5047 isThird
51- ? 'w-20 h-20 border-orange-300 dark:border-orange-400'
52- : '' ,
53- 'bg-white dark:bg-slate-800'
48+ ? 'bg-gradient-to-tr from-orange-300 via-orange-100 to-orange-400 shadow-orange-400/50 shadow-md'
49+ : ''
5450 ) }
5551 >
56- { user . avatar ? (
52+ < div className = "relative w-16 h-16 md:w-20 md:h-20 rounded-full overflow-hidden border-2 border-white dark:border-slate-800 bg-slate-200 dark:bg-slate-800" >
5753 < Image
5854 src = { user . avatar }
5955 alt = { `${ user . username } 's avatar` }
60- width = { 64 }
61- height = { 64 }
62- className = "w-full h-full object-cover"
56+ fill
57+ className = "object-cover"
6358 />
64- ) : (
65- < span className = "text-2xl font-bold text-slate-700 dark:text-slate-200" >
66- { user . username . slice ( 0 , 2 ) . toUpperCase ( ) }
67- </ span >
68- ) }
59+ </ div >
6960 </ div >
7061
7162 < div
7263 className = { cn (
73- 'absolute -bottom-3 left-1/2 -translate-x-1/2 flex items-center justify-center w-8 h-8 rounded-full text-sm font-bold border-2 border-white dark:border-slate-900 shadow-md' ,
74- isFirst ? 'bg-yellow-500 text-white' : '' ,
75- isSecond ? 'bg-slate-400 text-white' : '' ,
76- isThird ? 'bg-orange-400 text-white' : ''
64+ 'absolute -bottom-3 left-1/2 -translate-x-1/2 flex items-center justify-center w-8 h-8 rounded-full font-bold border-2 border-white dark:border-slate-900 shadow-md' ,
65+ isFirst
66+ ? 'bg-yellow-500 text-white'
67+ : isSecond
68+ ? 'bg-slate-400 text-white'
69+ : 'bg-orange-400 text-white'
7770 ) }
78- aria-label = { `Rank ${ user . rank } ` }
7971 >
8072 { user . rank }
8173 </ div >
8274 </ div >
8375
8476 < div className = "text-center mb-3" >
85- < h3 className = "font-bold text-slate-800 dark:text-slate-100 text-base mb-1 truncate max-w-[120px]" >
77+ < div className = "font-bold text-slate-800 dark:text-slate-100 text-base mb-1 truncate max-w-[120px]" >
8678 { user . username }
87- </ h3 >
79+ </ div >
8880 < div className = "font-mono font-bold text-xl text-slate-900 dark:text-white tracking-tight" >
8981 { user . points } { ' ' }
9082 < span className = "text-xs font-normal text-slate-500" >
@@ -105,11 +97,11 @@ export function LeaderboardPodium({ topThree }: { topThree: User[] }) {
10597 ? 'h-24 border-slate-300/30 dark:border-slate-500/30'
10698 : '' ,
10799 isThird
108- ? 'h-16 border-orange-300/30 dark:border-orange-500/30'
100+ ? 'h-20 border-orange-300/30 dark:border-orange-500/30'
109101 : ''
110102 ) }
111103 />
112- </ article >
104+ </ div >
113105 </ li >
114106 ) ;
115107 } ) }
0 commit comments