modified: templates/leaderboard.html

This commit is contained in:
SimolZimol
2025-08-18 15:16:21 +02:00
parent 317f6e13e2
commit ef1b1aacf8

View File

@@ -8,17 +8,18 @@
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<style> <style>
body { body {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
min-height: 100vh; min-height: 100vh;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
color: #e0e0e0;
} }
.leaderboard-container { .leaderboard-container {
background: rgba(255, 255, 255, 0.95); background: rgba(30, 30, 46, 0.95);
border-radius: 20px; border-radius: 20px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2); border: 1px solid rgba(255, 255, 255, 0.1);
padding: 2rem; padding: 2rem;
margin-top: 2rem; margin-top: 2rem;
} }
@@ -30,24 +31,25 @@
} }
.leaderboard-title { .leaderboard-title {
color: #2c3e50; color: #f8f9fa;
font-weight: 700; font-weight: 700;
font-size: 2.5rem; font-size: 2.5rem;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
} }
.leaderboard-subtitle { .leaderboard-subtitle {
color: #7f8c8d; color: #a0a0a0;
font-size: 1.1rem; font-size: 1.1rem;
font-weight: 400; font-weight: 400;
} }
.trophy-icon { .trophy-icon {
font-size: 3rem; font-size: 3rem;
color: #f39c12; color: #ffd700;
margin-bottom: 1rem; margin-bottom: 1rem;
animation: bounce 2s infinite; animation: bounce 2s infinite;
text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
} }
@keyframes bounce { @keyframes bounce {
@@ -79,12 +81,13 @@
.table { .table {
margin-bottom: 0; margin-bottom: 0;
background: white; background: rgba(40, 40, 56, 0.9);
color: #e0e0e0;
} }
.table thead th { .table thead th {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); background: linear-gradient(135deg, #2d3748 0%, #1a202c 100%);
color: white; color: #f7fafc;
border: none; border: none;
padding: 1rem; padding: 1rem;
font-weight: 600; font-weight: 600;
@@ -94,24 +97,27 @@
position: sticky; position: sticky;
top: 0; top: 0;
z-index: 10; z-index: 10;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
} }
.table tbody tr { .table tbody tr {
transition: all 0.3s ease; transition: all 0.3s ease;
border: none; border: none;
background: rgba(40, 40, 56, 0.5);
} }
.table tbody tr:hover { .table tbody tr:hover {
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); background: linear-gradient(135deg, rgba(74, 85, 104, 0.8) 0%, rgba(45, 55, 72, 0.8) 100%);
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
} }
.table tbody td { .table tbody td {
padding: 1rem; padding: 1rem;
vertical-align: middle; vertical-align: middle;
border: none; border: none;
border-bottom: 1px solid #f1f3f4; border-bottom: 1px solid rgba(255, 255, 255, 0.1);
color: #e0e0e0;
} }
.rank-badge { .rank-badge {
@@ -126,13 +132,25 @@
font-size: 1.1rem; font-size: 1.1rem;
} }
.rank-1 { background: linear-gradient(135deg, #FFD700, #FFA500); } .rank-1 {
.rank-2 { background: linear-gradient(135deg, #C0C0C0, #A8A8A8); } background: linear-gradient(135deg, #FFD700, #FFA500);
.rank-3 { background: linear-gradient(135deg, #CD7F32, #B8860B); } box-shadow: 0 0 20px rgba(255, 215, 0, 0.4);
.rank-other { background: linear-gradient(135deg, #6c757d, #495057); } }
.rank-2 {
background: linear-gradient(135deg, #C0C0C0, #A8A8A8);
box-shadow: 0 0 15px rgba(192, 192, 192, 0.3);
}
.rank-3 {
background: linear-gradient(135deg, #CD7F32, #B8860B);
box-shadow: 0 0 15px rgba(205, 127, 50, 0.3);
}
.rank-other {
background: linear-gradient(135deg, #4a5568, #2d3748);
color: #cbd5e0;
}
.level-badge { .level-badge {
background: linear-gradient(135deg, #28a745, #20c997); background: linear-gradient(135deg, #48bb78, #38a169);
color: white; color: white;
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
border-radius: 25px; border-radius: 25px;
@@ -140,10 +158,11 @@
display: inline-block; display: inline-block;
min-width: 60px; min-width: 60px;
text-align: center; text-align: center;
box-shadow: 0 4px 12px rgba(72, 187, 120, 0.3);
} }
.xp-badge { .xp-badge {
background: linear-gradient(135deg, #007bff, #6610f2); background: linear-gradient(135deg, #4299e1, #3182ce);
color: white; color: white;
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
border-radius: 25px; border-radius: 25px;
@@ -151,72 +170,76 @@
display: inline-block; display: inline-block;
min-width: 80px; min-width: 80px;
text-align: center; text-align: center;
box-shadow: 0 4px 12px rgba(66, 153, 225, 0.3);
} }
.username { .username {
font-weight: 600; font-weight: 600;
color: #2c3e50; color: #f7fafc;
font-size: 1.1rem; font-size: 1.1rem;
} }
.join-date { .join-date {
color: #6c757d; color: #a0aec0;
font-size: 0.9rem; font-size: 0.9rem;
} }
.no-users-message { .no-users-message {
text-align: center; text-align: center;
padding: 3rem; padding: 3rem;
color: #6c757d; color: #a0aec0;
font-size: 1.2rem; font-size: 1.2rem;
} }
.no-users-icon { .no-users-icon {
font-size: 4rem; font-size: 4rem;
color: #dee2e6; color: #4a5568;
margin-bottom: 1rem; margin-bottom: 1rem;
} }
.back-button { .back-button {
background: linear-gradient(135deg, #6c757d, #495057); background: linear-gradient(135deg, #4a5568, #2d3748);
border: none; border: none;
border-radius: 25px; border-radius: 25px;
padding: 0.75rem 2rem; padding: 0.75rem 2rem;
color: white; color: #f7fafc;
font-weight: 600; font-weight: 600;
text-decoration: none; text-decoration: none;
display: inline-block; display: inline-block;
transition: all 0.3s ease; transition: all 0.3s ease;
margin-top: 2rem; margin-top: 2rem;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
} }
.back-button:hover { .back-button:hover {
background: linear-gradient(135deg, #495057, #343a40); background: linear-gradient(135deg, #2d3748, #1a202c);
color: white; color: #f7fafc;
text-decoration: none; text-decoration: none;
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
} }
.stats-card { .stats-card {
background: rgba(255, 255, 255, 0.1); background: rgba(45, 55, 72, 0.8);
border-radius: 15px; border-radius: 15px;
padding: 1.5rem; padding: 1.5rem;
margin-bottom: 2rem; margin-bottom: 2rem;
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2); border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
} }
.stats-title { .stats-title {
color: white; color: #cbd5e0;
font-weight: 600; font-weight: 600;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
} }
.stats-value { .stats-value {
color: white; color: #f7fafc;
font-size: 2rem; font-size: 2rem;
font-weight: 700; font-weight: 700;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
} }
/* Responsive Design */ /* Responsive Design */
@@ -262,7 +285,7 @@
<div class="leaderboard-header"> <div class="leaderboard-header">
<i class="fas fa-trophy trophy-icon"></i> <i class="fas fa-trophy trophy-icon"></i>
<h1 class="leaderboard-title">Level Leaderboard</h1> <h1 class="leaderboard-title">Level Leaderboard</h1>
<p class="leaderboard-subtitle">Server {{ guild_id }} • Top Performers</p> <p class="leaderboard-subtitle">{{ guild_name or 'Unknown Server' }} • Top Performers</p>
</div> </div>
{% if leaderboard|length > 0 %} {% if leaderboard|length > 0 %}