From ece35e64c54edc55205b9d298704714f733021ef Mon Sep 17 00:00:00 2001 From: Michelle Aquilera Date: Mon, 24 Nov 2025 13:38:21 +0700 Subject: [PATCH] Leaaderboard --- Leaderboard.css | 277 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 Leaderboard.css diff --git a/Leaderboard.css b/Leaderboard.css new file mode 100644 index 0000000..5f6b51b --- /dev/null +++ b/Leaderboard.css @@ -0,0 +1,277 @@ +/* ========== LEADERBOARD CONTAINER ========== */ +.leaderboard { + position: relative; + z-index: 2; + background: rgba(20, 0, 40, 0.65); + border-radius: 20px; + padding: 40px 30px; + width: 90%; + max-width: 450px; + + border: 2px solid rgba(0, 255, 255, 0.4); + box-shadow: + 0 0 25px rgba(0, 255, 255, 0.4), + 0 0 60px rgba(255, 0, 255, 0.25), + inset 0 0 40px rgba(0, 255, 255, 0.2); + animation: scanGlow 4s ease-in-out infinite alternate; +} + +/* ========== LEADERBOARD TITLE ========== */ +.leaderboard-title { + text-align: center; + font-size: 1.8rem; + margin-bottom: 30px; + background: linear-gradient(90deg, #00d9ff 0%, #ff00ff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + text-transform: uppercase; + letter-spacing: 3px; + font-weight: bold; + display: flex; + align-items: center; + justify-content: center; + gap: 12px; +} + +.leaderboard-title::before { + content: '🏆'; + -webkit-text-fill-color: initial; + font-size: 1.6rem; + filter: drop-shadow(0 0 8px #ffd700); +} + +/* ========== LEADERBOARD LIST ========== */ +.leaderboard-list { + list-style: none; + display: flex; + flex-direction: column; + gap: 12px; +} + +/* ========== LEADERBOARD ITEM ========== */ +.leaderboard-item { + display: flex; + align-items: center; + gap: 15px; + padding: 16px 18px; + border-radius: 14px; + background: rgba(30, 0, 50, 0.5); + border: 1px solid rgba(0, 255, 255, 0.2); + transition: all 0.3s ease; +} + +.leaderboard-item:hover { + transform: translateX(6px); + border-color: rgba(0, 255, 255, 0.5); + box-shadow: 0 0 20px rgba(0, 255, 255, 0.3); +} + +/* ========== RANK 1 - GOLD/CYAN ========== */ +.leaderboard-item.rank-1 { + background: linear-gradient(135deg, rgba(0, 234, 255, 0.2), rgba(255, 0, 255, 0.15)); + border: 2px solid rgba(0, 234, 255, 0.6); + box-shadow: + 0 0 20px rgba(0, 234, 255, 0.4), + inset 0 0 20px rgba(0, 234, 255, 0.1); +} + +.leaderboard-item.rank-1:hover { + box-shadow: + 0 0 30px rgba(0, 234, 255, 0.6), + 0 0 50px rgba(255, 0, 255, 0.3); +} + +/* ========== RANK 2 - MAGENTA ========== */ +.leaderboard-item.rank-2 { + background: linear-gradient(135deg, rgba(255, 0, 255, 0.15), rgba(150, 0, 200, 0.2)); + border: 2px solid rgba(255, 0, 255, 0.4); + box-shadow: 0 0 15px rgba(255, 0, 255, 0.25); +} + +.leaderboard-item.rank-2:hover { + box-shadow: 0 0 25px rgba(255, 0, 255, 0.5); +} + +/* ========== RANK 3 - PURPLE ========== */ +.leaderboard-item.rank-3 { + background: linear-gradient(135deg, rgba(138, 43, 226, 0.2), rgba(75, 0, 130, 0.25)); + border: 2px solid rgba(138, 43, 226, 0.4); + box-shadow: 0 0 12px rgba(138, 43, 226, 0.25); +} + +.leaderboard-item.rank-3:hover { + box-shadow: 0 0 22px rgba(138, 43, 226, 0.5); +} + +/* ========== RANK BADGE ========== */ +.rank-badge { + width: 38px; + height: 38px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 15px; + font-weight: bold; + flex-shrink: 0; + transition: all 0.3s ease; +} + +.rank-1 .rank-badge { + background: linear-gradient(135deg, #00eaff, #00ff88); + color: #0c001a; + box-shadow: 0 0 18px rgba(0, 234, 255, 0.7); + animation: pulseBadge 2s ease-in-out infinite; +} + +.rank-2 .rank-badge { + background: linear-gradient(135deg, #ff00ff, #cc00ff); + color: #ffffff; + box-shadow: 0 0 15px rgba(255, 0, 255, 0.6); +} + +.rank-3 .rank-badge { + background: linear-gradient(135deg, #8a2be2, #4b0082); + color: #ffffff; + box-shadow: 0 0 12px rgba(138, 43, 226, 0.5); +} + +.rank-other .rank-badge { + background: rgba(60, 20, 80, 0.8); + color: rgba(200, 200, 255, 0.7); + border: 1px solid rgba(0, 255, 255, 0.2); +} + +@keyframes pulseBadge { + 0%, 100% { + transform: scale(1); + box-shadow: 0 0 18px rgba(0, 234, 255, 0.7); + } + 50% { + transform: scale(1.08); + box-shadow: 0 0 25px rgba(0, 234, 255, 0.9); + } +} + +/* ========== PLAYER INFO ========== */ +.player-name { + flex: 1; + font-weight: 600; + font-size: 16px; + color: #e1e8ff; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-shadow: 0 0 8px rgba(0, 234, 255, 0.3); +} + +.rank-1 .player-name { + background: linear-gradient(90deg, #00eaff, #00ff88); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + text-shadow: none; + filter: drop-shadow(0 0 6px rgba(0, 234, 255, 0.5)); +} + +.player-score { + font-weight: 700; + font-size: 16px; + color: #00eaff; + text-shadow: 0 0 10px rgba(0, 234, 255, 0.6); +} + +.rank-1 .player-score { + font-size: 18px; + background: linear-gradient(90deg, #00eaff, #ff00ff); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + filter: drop-shadow(0 0 8px rgba(0, 234, 255, 0.7)); +} + +.rank-2 .player-score { + color: #ff00ff; + text-shadow: 0 0 10px rgba(255, 0, 255, 0.6); +} + +.rank-3 .player-score { + color: #a855f7; + text-shadow: 0 0 10px rgba(138, 43, 226, 0.5); +} + +/* ========== EMPTY STATE ========== */ +.leaderboard-empty { + text-align: center; + padding: 30px 20px; + color: rgba(200, 200, 255, 0.5); + font-size: 15px; + border: 2px dashed rgba(0, 255, 255, 0.2); + border-radius: 14px; +} + +.leaderboard-empty::before { + content: '🎮'; + display: block; + font-size: 40px; + margin-bottom: 10px; + opacity: 0.6; +} + +/* ========== YOUR RANK HIGHLIGHT ========== */ +.leaderboard-item.your-rank { + position: relative; + border-color: #00ff88 !important; + box-shadow: + 0 0 20px rgba(0, 255, 136, 0.5), + inset 0 0 15px rgba(0, 255, 136, 0.1) !important; +} + +.leaderboard-item.your-rank::after { + content: 'YOU'; + position: absolute; + right: -8px; + top: -8px; + background: linear-gradient(135deg, #00ff88, #00eaff); + color: #0c001a; + font-size: 10px; + font-weight: bold; + padding: 4px 8px; + border-radius: 6px; + box-shadow: 0 0 10px rgba(0, 255, 136, 0.6); +} + +/* ========== RESPONSIVE ========== */ +@media (max-width: 480px) { + .leaderboard { + padding: 30px 20px; + } + + .leaderboard-title { + font-size: 1.5rem; + } + + .leaderboard-item { + padding: 14px 15px; + gap: 12px; + } + + .rank-badge { + width: 32px; + height: 32px; + font-size: 13px; + } + + .player-name { + font-size: 14px; + } + + .player-score { + font-size: 14px; + } + + .rank-1 .player-score { + font-size: 16px; + } +} \ No newline at end of file