85 lines
1.7 KiB
Vue
85 lines
1.7 KiB
Vue
<template>
|
|
<div class="leaderboard-container">
|
|
<h3>Monthly Leaderboard</h3>
|
|
<ul class="leaderboard-list">
|
|
<li class="leaderboard-item">
|
|
<span class="rank">1.</span>
|
|
<span class="name">Papa Smurf</span>
|
|
<span class="exp">9800 EXP</span>
|
|
</li>
|
|
<li class="leaderboard-item self">
|
|
<span class="rank">2.</span>
|
|
<span class="name">Smurfette</span>
|
|
<span class="exp">8500 EXP</span>
|
|
</li>
|
|
<li class="leaderboard-item">
|
|
<span class="rank">3.</span>
|
|
<span class="name">Brainy Smurf</span>
|
|
<span class="exp">8250 EXP</span>
|
|
</li>
|
|
<li class="leaderboard-item">
|
|
<span class="rank">4.</span>
|
|
<span class="name">Hefty Smurf</span>
|
|
<span class="exp">7600 EXP</span>
|
|
</li>
|
|
<li class="leaderboard-item">
|
|
<span class="rank">5.</span>
|
|
<span class="name">Jokey Smurf</span>
|
|
<span class="exp">6100 EXP</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
// No logic, just visual placeholders
|
|
</script>
|
|
|
|
<style scoped>
|
|
.leaderboard-container {
|
|
max-width: 600px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
h3 {
|
|
text-align: center;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.leaderboard-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.leaderboard-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 15px;
|
|
background-color: #fff;
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
|
|
}
|
|
|
|
.leaderboard-item.self {
|
|
background-color: #d8e1e9;
|
|
border: 1px solid #81a1c1;
|
|
}
|
|
|
|
.rank {
|
|
font-weight: bold;
|
|
width: 40px;
|
|
}
|
|
|
|
.name {
|
|
flex-grow: 1;
|
|
}
|
|
|
|
.exp {
|
|
font-weight: bold;
|
|
color: #4c566a;
|
|
}
|
|
</style>
|