From a22e1408b3ee5a5167c9fd300922732f0eacb026 Mon Sep 17 00:00:00 2001 From: Diya-od Date: Tue, 2 Jun 2026 21:52:54 +0530 Subject: [PATCH 1/6] add dynamic clear button to leaderboard search --- frontend/leaderboard.html | 24 +++++++++++++++++++++++- frontend/styles/main.css | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/frontend/leaderboard.html b/frontend/leaderboard.html index f7c46088..15458662 100644 --- a/frontend/leaderboard.html +++ b/frontend/leaderboard.html @@ -81,6 +81,14 @@

Leaderboard

autocomplete="off" spellcheck="false" /> + Ctrl+K @@ -146,11 +154,25 @@

Leaderboard

const searchInput = document.getElementById("leaderboard-search"); const shortcutBadge = document.getElementById("search-shortcut"); + const clearBtn = document.getElementById("clear-search"); searchInput.addEventListener("input", (e) => { currentSearchTerm = e.target.value.toLowerCase().trim(); + + clearBtn.style.display = + e.target.value.trim() !== "" ? "flex" : "none"; + applyFiltersAndRender(); }); + clearBtn.addEventListener("click", () => { + searchInput.value = ""; + currentSearchTerm = ""; + + clearBtn.style.display = "none"; + + searchInput.focus(); + applyFiltersAndRender(); +}); searchInput.addEventListener("focus", () => { shortcutBadge.style.opacity = "0"; @@ -196,7 +218,7 @@

Leaderboard

applyFiltersAndRender(); } }); - + clearBtn.style.display = "none"; fetchLeaderboardData(); }); diff --git a/frontend/styles/main.css b/frontend/styles/main.css index 3c4d5781..accd6792 100644 --- a/frontend/styles/main.css +++ b/frontend/styles/main.css @@ -2305,6 +2305,39 @@ body::-webkit-scrollbar-thumb { transition: opacity 0.15s ease; user-select: none; } +.clear-search-btn { + background: transparent; + border: 1px solid var(--border); + color: var(--red); + width: 26px; + height: 26px; + border-radius: 4px; + cursor: pointer; + + display: flex; + align-items: center; + justify-content: center; + + font-family: "Fira Code", monospace; + font-size: 0.8rem; + + transition: all 0.2s ease; +} + +.clear-search-btn:hover { + border-color: var(--red); + background: rgba(255, 51, 51, 0.12); + + box-shadow: + 0 0 10px rgba(255, 51, 51, 0.25), + inset 0 0 8px rgba(255, 51, 51, 0.08); + + text-shadow: 0 0 6px rgba(255, 51, 51, 0.8); +} + +.clear-search-btn:active { + transform: scale(0.95); +} .no-results { text-align: center; From 8ecdb5ada0dde81b8f56cc2bbd55c9e7fe9240e1 Mon Sep 17 00:00:00 2001 From: Diya-od Date: Wed, 3 Jun 2026 22:40:31 +0530 Subject: [PATCH 2/6] change according to suggestion --- frontend/leaderboard.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/leaderboard.html b/frontend/leaderboard.html index 15458662..752a2344 100644 --- a/frontend/leaderboard.html +++ b/frontend/leaderboard.html @@ -81,6 +81,9 @@

Leaderboard

autocomplete="off" spellcheck="false" /> + + + Ctrl+K - - Ctrl+K From fdc769b026750c3872d3a330a63450f129d9701d Mon Sep 17 00:00:00 2001 From: Diya-od Date: Fri, 5 Jun 2026 16:33:48 +0530 Subject: [PATCH 3/6] Add scroll to top button --- frontend/leaderboard.html | 65 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/frontend/leaderboard.html b/frontend/leaderboard.html index 752a2344..9940d62e 100644 --- a/frontend/leaderboard.html +++ b/frontend/leaderboard.html @@ -11,6 +11,47 @@ rel="stylesheet" /> + @@ -81,7 +122,7 @@

Leaderboard

autocomplete="off" spellcheck="false" /> - + Ctrl+K + @@ -209,7 +159,7 @@

Leaderboard

+ + + + diff --git a/frontend/styles/main.css b/frontend/styles/main.css index 8aa49642..da6c75b6 100644 --- a/frontend/styles/main.css +++ b/frontend/styles/main.css @@ -2522,6 +2522,7 @@ body::-webkit-scrollbar-thumb { .active-page::after { display: none; } +<<<<<<< HEAD /* ── Leaderboard Rank Change ── */ .rank-change { @@ -2543,4 +2544,42 @@ body::-webkit-scrollbar-thumb { .rank-neutral { color: var(--text-muted); +======= +#scrollTopBtn { + position: fixed; + right: 16px; + bottom: 80px; + + width: 42px; + height: 42px; + + border: 1px solid var(--green); + border-radius: 50%; + + background: rgba(0, 0, 0, 0.9); + color: var(--green); + + display: none; + align-items: center; + justify-content: center; + + cursor: pointer; + z-index: 999; + + font-size: 18px; + + box-shadow: 0 0 8px rgba(0, 255, 100, 0.25); + + transition: all 0.25s ease; +} + +#scrollTopBtn:hover { + transform: translateY(-2px); +} + +@media (min-width: 769px) { + #scrollTopBtn { + display: none !important; + } +>>>>>>> 78c4107 (required things added in up button) } From fc9d09ed25a88b68638de547fa0f369d92738820 Mon Sep 17 00:00:00 2001 From: Diya-od Date: Mon, 8 Jun 2026 22:46:01 +0530 Subject: [PATCH 6/6] changes --- frontend/js/load-leaderboard.js | 0 frontend/leaderboard.html | 217 +++++++++++++++++++++++++++----- frontend/styles/main.css | 24 ---- scripts/mobile-scroll-top.js | 20 +++ 4 files changed, 207 insertions(+), 54 deletions(-) create mode 100644 frontend/js/load-leaderboard.js create mode 100644 scripts/mobile-scroll-top.js diff --git a/frontend/js/load-leaderboard.js b/frontend/js/load-leaderboard.js new file mode 100644 index 00000000..e69de29b diff --git a/frontend/leaderboard.html b/frontend/leaderboard.html index 71856fc3..442a3b38 100644 --- a/frontend/leaderboard.html +++ b/frontend/leaderboard.html @@ -13,30 +13,6 @@ - - - - - - - - - - - - @@ -163,7 +139,6 @@

Leaderboard

- + diff --git a/frontend/styles/main.css b/frontend/styles/main.css index da6c75b6..71e0c73c 100644 --- a/frontend/styles/main.css +++ b/frontend/styles/main.css @@ -2522,29 +2522,6 @@ body::-webkit-scrollbar-thumb { .active-page::after { display: none; } -<<<<<<< HEAD - -/* ── Leaderboard Rank Change ── */ -.rank-change { - display: inline-block; - font-size: 0.65rem; - font-family: "Fira Code", monospace; - margin-left: 0.4rem; - vertical-align: middle; - opacity: 0.85; -} - -.rank-up { - color: var(--green); -} - -.rank-down { - color: var(--red); -} - -.rank-neutral { - color: var(--text-muted); -======= #scrollTopBtn { position: fixed; right: 16px; @@ -2581,5 +2558,4 @@ body::-webkit-scrollbar-thumb { #scrollTopBtn { display: none !important; } ->>>>>>> 78c4107 (required things added in up button) } diff --git a/scripts/mobile-scroll-top.js b/scripts/mobile-scroll-top.js new file mode 100644 index 00000000..722a3ba8 --- /dev/null +++ b/scripts/mobile-scroll-top.js @@ -0,0 +1,20 @@ +document.addEventListener("DOMContentLoaded", () => { + const scrollTopBtn = document.getElementById("scrollTopBtn"); + + if (!scrollTopBtn) return; + + window.addEventListener("scroll", () => { + if (window.innerWidth <= 768 && window.scrollY > 300) { + scrollTopBtn.style.display = "flex"; + } else { + scrollTopBtn.style.display = "none"; + } + }); + + scrollTopBtn.addEventListener("click", () => { + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + }); +}); \ No newline at end of file