Skip to content

Commit a4c3835

Browse files
authored
Feature/leaderboard style update (#206)
* fix:leaderboard update leaderboard-style * fix:leaderboard update leaderboard-style on mobile * fix: resolve CodeRabbit issues and conflicts * fix: move row border to first cell to resolve CodeRabbit issue * fix: move row border to first cell to resolve CodeRabbit issue new * fix(leaderboard): improve table mobile * fix(leaderboard): correct malformed shadow class syntax for avatar glow
1 parent 6046e26 commit a4c3835

1 file changed

Lines changed: 17 additions & 14 deletions

File tree

frontend/components/leaderboard/LeaderboardTable.tsx

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ export function LeaderboardTable({
3333
return (
3434
<div className="w-full max-w-4xl flex flex-col gap-4">
3535
<div className="bg-white dark:bg-white/5 backdrop-blur-md rounded-2xl border border-slate-200 dark:border-white/10 overflow-hidden shadow-lg dark:shadow-2xl">
36-
<div className="overflow-x-auto w-full">
37-
<table className="w-full text-left border-separate border-spacing-0">
36+
<div className="w-full">
37+
<table className="w-full text-left border-separate border-spacing-0 table-fixed">
3838
<caption className="sr-only">{t('tableCaption')}</caption>
3939

4040
<thead className="bg-slate-50/80 dark:bg-white/5">
4141
<tr>
42-
<th className="px-2 sm:px-6 py-3 sm:py-5 text-center text-[10px] sm:text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest w-12 sm:w-[15%] border-b border-slate-200 dark:border-white/10">
42+
<th className="px-2 sm:px-6 py-3 sm:py-5 text-center text-[10px] sm:text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest w-[15%] sm:w-[12%] border-b border-slate-200 dark:border-white/10">
4343
{t('rank')}
4444
</th>
4545
<th className="px-2 sm:px-6 py-3 sm:py-5 text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest w-auto border-b border-slate-200 dark:border-white/10">
4646
{t('user')}
4747
</th>
48-
<th className="px-2 sm:px-6 py-3 sm:py-5 text-right text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest w-[25%] sm:w-[20%] border-b border-slate-200 dark:border-white/10">
48+
<th className="pl-2 pr-4 sm:px-6 py-3 sm:py-5 text-right text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest w-[25%] sm:w-[20%] border-b border-slate-200 dark:border-white/10">
4949
{t('score')}
5050
</th>
5151
</tr>
@@ -78,8 +78,8 @@ export function LeaderboardTable({
7878
</div>
7979

8080
<div className="bg-white dark:bg-white/5 backdrop-blur-md rounded-2xl border-2 border-[var(--accent-primary)] overflow-hidden shadow-[0_0_20px_var(--accent-primary)]">
81-
<div className="overflow-x-auto w-full">
82-
<table className="w-full text-left border-separate border-spacing-0">
81+
<div className="w-full">
82+
<table className="w-full text-left border-separate border-spacing-0 table-fixed">
8383
<tbody>
8484
<TableRow user={matchedUser} isCurrentUser={true} t={t} />
8585
</tbody>
@@ -105,8 +105,11 @@ function TableRow({
105105
'px-2 sm:px-6 py-3 sm:py-4 border-b border-slate-100 dark:border-white/5';
106106

107107
const leftBorderClass = isCurrentUser
108-
? 'border-l-[1px] sm:border-l-[1px] border-l-[var(--accent-primary)]'
108+
? 'border-l-[1px] sm:border-l-[1px] border-l-transparent'
109109
: 'border-l-[1px] sm:border-l-[1px] border-l-transparent';
110+
const rightBorderClass = isCurrentUser
111+
? 'border-r-[1px] sm:border-r-[1px] border-r-transparent'
112+
: 'border-r-[1px] sm:border-r-[1px] border-r-transparent';
110113

111114
return (
112115
<tr
@@ -124,12 +127,12 @@ function TableRow({
124127
</td>
125128

126129
<td className={cellClass}>
127-
<div className="flex items-center gap-2 sm:gap-4">
130+
<div className="flex items-center gap-2 sm:gap-4 overflow-hidden">
128131
<div
129132
className={cn(
130133
'w-8 h-8 sm:w-10 sm:h-10 rounded-full border flex-shrink-0 flex items-center justify-center text-xs sm:text-sm font-bold transition-all duration-300',
131134
isCurrentUser
132-
? 'bg-[var(--accent-primary)] border-[var(--accent-primary)] text-white shadow-[0_0_15px_var(--accent-primary)]'
135+
? 'bg-[var(--accent-primary)] border-[var(--accent-primary)] text-white shadow-[0_0_1px_var(--accent-primary)]'
133136
: 'bg-slate-100 border-slate-200 text-slate-600 dark:bg-gradient-to-br dark:from-slate-800 dark:to-slate-900 dark:border-white/10 dark:text-slate-300 group-hover:border-[var(--accent-primary)] group-hover:text-[var(--accent-primary)]'
134137
)}
135138
aria-hidden="true"
@@ -140,15 +143,13 @@ function TableRow({
140143
<div className="flex flex-col min-w-0">
141144
<span
142145
className={cn(
143-
'font-medium text-sm transition-colors flex items-center gap-1 sm:gap-2 truncate',
146+
'font-medium text-sm transition-colors flex items-center gap-1 sm:gap-2',
144147
isCurrentUser
145148
? 'text-[var(--accent-primary)] font-black text-sm sm:text-base'
146149
: 'text-slate-700 dark:text-slate-200 group-hover:text-[var(--accent-primary)] dark:group-hover:text-[var(--accent-primary)]'
147150
)}
148151
>
149-
<span className="truncate max-w-[100px] sm:max-w-none">
150-
{user.username}
151-
</span>
152+
<span className="truncate">{user.username}</span>
152153

153154
{isCurrentUser && (
154155
<div className="relative flex-shrink-0 flex items-center justify-center w-5 h-5 sm:w-8 sm:h-8 ml-1">
@@ -183,7 +184,9 @@ function TableRow({
183184
</div>
184185
</td>
185186

186-
<td className={cn(cellClass, 'text-right')}>
187+
<td
188+
className={cn(cellClass, 'text-right pr-4 sm:pr-6', rightBorderClass)}
189+
>
187190
<span
188191
className={cn(
189192
'font-mono font-bold inline-block transition-all',

0 commit comments

Comments
 (0)