From 67e5cd0e51744aae34bf2e38ec359a2859357134 Mon Sep 17 00:00:00 2001 From: FloPinguin <25036848+FloPinguin@users.noreply.github.com> Date: Sun, 22 Feb 2026 17:38:21 +0100 Subject: [PATCH] style: refine leaderboard component layouts for better visual consistency --- .../leaderboard/LeaderboardClanTable.ts | 12 +- .../leaderboard/LeaderboardPlayerList.ts | 237 +++++++++--------- .../components/leaderboard/LeaderboardTabs.ts | 2 +- 3 files changed, 124 insertions(+), 127 deletions(-) diff --git a/src/client/components/leaderboard/LeaderboardClanTable.ts b/src/client/components/leaderboard/LeaderboardClanTable.ts index f67bbe3fc..28bcdb212 100644 --- a/src/client/components/leaderboard/LeaderboardClanTable.ts +++ b/src/client/components/leaderboard/LeaderboardClanTable.ts @@ -195,9 +195,9 @@ export class LeaderboardClanTable extends LitElement { const maxGames = Math.max(...clans.map((c) => c.games), 1); return html` -
+
@@ -214,7 +214,7 @@ export class LeaderboardClanTable extends LitElement { class="py-4 px-4 text-right font-bold w-32 cursor-pointer hover:text-white/60 transition-colors" > + + + `; } @@ -374,87 +373,85 @@ export class LeaderboardPlayerList extends LitElement { if (this.error) return this.renderError(); 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()} - > - ${virtualize({ - items: this.playerData, - renderItem: (player) => this.renderPlayerRow(player), - scroller: true, - })} - ${this.renderPlayerFooter()} -
- ${this.currentUserEntry - ? html` -
+
this.handleScroll()} + > +
${rankIcon}
- -
- ${player.username} - ${player.clanTag - ? html`
- ${player.clanTag} -
` - : ""} -
-
-
- ${player.elo} - ${translateText("leaderboard_modal.elo")} +
+
+ ${player.clanTag + ? html`
+ ${player.clanTag.replace(/^\[|\]$/g, "")} +
` + : ""} + ${player.clanTag + ? player.username.replace(/^\[.*?\]\s*/, "") + : player.username}
- -
-
- ${player.games} - ${translateText("leaderboard_modal.games")} +
+ ${player.elo} + ${translateText("leaderboard_modal.elo")} + + ${player.games} + ${translateText("leaderboard_modal.games")} + +
+ ${(winRate * 100).toFixed(1)}% + ${translateText("leaderboard_modal.ratio")}
- -
- ${(winRate * 100).toFixed(1)}% - ${translateText("leaderboard_modal.ratio")} -
- +
+ + + + + + + + + + + ${this.playerData.map((player) => this.renderPlayerRow(player))} + +
+ ${translateText("leaderboard_modal.rank")} + + ${translateText("leaderboard_modal.player")} + + ${translateText("leaderboard_modal.elo")} + + ${translateText("leaderboard_modal.games")} + + ${translateText("leaderboard_modal.win_loss_ratio")} +
+ ${this.renderPlayerFooter()} +
+ ${this.currentUserEntry + ? html` +
+
+
-
-
- ${this.currentUserEntry.rank} -
-
-
- ${translateText( - "leaderboard_modal.your_ranking", - )} - ${this.currentUserEntry.username} -
-
-
- ${this.currentUserEntry.elo} - ${translateText("leaderboard_modal.elo")} -
-
+ ${this.currentUserEntry.rank}
- ` - : ""} -
-
+
+ ${translateText( + "leaderboard_modal.your_ranking", + )} + ${this.currentUserEntry.username} +
+
+
+ ${this.currentUserEntry.elo} + ${translateText("leaderboard_modal.elo")} +
+
+
+
+ ` + : ""} `; diff --git a/src/client/components/leaderboard/LeaderboardTabs.ts b/src/client/components/leaderboard/LeaderboardTabs.ts index 976e4bca0..9401e200d 100644 --- a/src/client/components/leaderboard/LeaderboardTabs.ts +++ b/src/client/components/leaderboard/LeaderboardTabs.ts @@ -47,7 +47,7 @@ export class LeaderboardTabs extends LitElement { return html`