From 27c4d5f02691bc897ffd5842f831cb7ca96a6a38 Mon Sep 17 00:00:00 2001 From: FloPinguin <25036848+FloPinguin@users.noreply.github.com> Date: Sun, 22 Feb 2026 17:54:28 +0100 Subject: [PATCH] style: enhance leaderboard component layout for improved responsiveness and usability --- .../leaderboard/LeaderboardClanTable.ts | 207 ++++++++++-------- .../leaderboard/LeaderboardPlayerList.ts | 64 ++++-- 2 files changed, 155 insertions(+), 116 deletions(-) diff --git a/src/client/components/leaderboard/LeaderboardClanTable.ts b/src/client/components/leaderboard/LeaderboardClanTable.ts index 25ff090b9..a1e428404 100644 --- a/src/client/components/leaderboard/LeaderboardClanTable.ts +++ b/src/client/components/leaderboard/LeaderboardClanTable.ts @@ -196,22 +196,28 @@ export class LeaderboardClanTable extends LitElement { return html`
-
- - +
+
+ + + + + + + + + - - - ${sorted.map((clan, index) => { - const displayRank = index + 1; - const rankColor = - displayRank === 1 - ? "text-yellow-400 bg-yellow-400/10 ring-1 ring-yellow-400/20" - : displayRank === 2 - ? "text-slate-300 bg-slate-400/10 ring-1 ring-slate-400/20" - : displayRank === 3 - ? "text-amber-600 bg-amber-600/10 ring-1 ring-amber-600/20" - : "text-white/40 bg-white/5"; - const rankIcon = - displayRank === 1 - ? "👑" - : displayRank === 2 - ? "🥈" - : displayRank === 3 - ? "🥉" - : String(displayRank); - - return html` - - - - - - - - - `; - })} -
+ ${translateText("leaderboard_modal.rank")} ${translateText("leaderboard_modal.clan")}
-
- ${rankIcon} -
-
-
- ${clan.clanTag} -
-
-
- ${clan.games.toLocaleString()} -
-
-
-
-
- ${clan.weightedWins.toLocaleString("fullwide", { - maximumFractionDigits: 1, - })} - - ${clan.weightedLosses.toLocaleString("fullwide", { - maximumFractionDigits: 1, - })} - -
- ${clan.weightedWLRatio.toLocaleString("fullwide", { - maximumFractionDigits: 2, - })} - ${translateText("leaderboard_modal.ratio")} -
-
+
+ + + + + + + + + + + ${sorted.map((clan, index) => { + const displayRank = index + 1; + const rankColor = + displayRank === 1 + ? "text-yellow-400 bg-yellow-400/10 ring-1 ring-yellow-400/20" + : displayRank === 2 + ? "text-slate-300 bg-slate-400/10 ring-1 ring-slate-400/20" + : displayRank === 3 + ? "text-amber-600 bg-amber-600/10 ring-1 ring-amber-600/20" + : "text-white/40 bg-white/5"; + const rankIcon = + displayRank === 1 + ? "👑" + : displayRank === 2 + ? "🥈" + : displayRank === 3 + ? "🥉" + : String(displayRank); + + return html` + + + + + + + + + `; + })} + +
+
+ ${rankIcon} +
+
+
+ ${clan.clanTag} +
+
+
+ ${clan.games.toLocaleString()} +
+
+
+
+
+ ${clan.weightedWins.toLocaleString("fullwide", { + maximumFractionDigits: 1, + })} + + ${clan.weightedLosses.toLocaleString("fullwide", { + maximumFractionDigits: 1, + })} + +
+ ${clan.weightedWLRatio.toLocaleString("fullwide", { + maximumFractionDigits: 2, + })} + ${translateText("leaderboard_modal.ratio")} +
+
+
`; diff --git a/src/client/components/leaderboard/LeaderboardPlayerList.ts b/src/client/components/leaderboard/LeaderboardPlayerList.ts index d62da69cd..5763b0f9b 100644 --- a/src/client/components/leaderboard/LeaderboardPlayerList.ts +++ b/src/client/components/leaderboard/LeaderboardPlayerList.ts @@ -375,37 +375,53 @@ export class LeaderboardPlayerList extends LitElement { return html`
+ + + + + + + + + + + + + + + + + +
+ ${translateText("leaderboard_modal.rank")} + + ${translateText("leaderboard_modal.player")} + + ${translateText("leaderboard_modal.elo")} + + ${translateText("leaderboard_modal.games")} + + ${translateText("leaderboard_modal.win_loss_ratio")} +
this.handleScroll()} > - - - - - - - - - - +
- ${translateText("leaderboard_modal.rank")} - - ${translateText("leaderboard_modal.player")} - - ${translateText("leaderboard_modal.elo")} - - ${translateText("leaderboard_modal.games")} - - ${translateText("leaderboard_modal.win_loss_ratio")} -
+ + + + + + + ${this.playerData.map((player) => this.renderPlayerRow(player))}