habits.andr33v.ru/app/layouts/default.vue

81 lines
1.5 KiB
Vue

<template>
<div class="default-layout">
<header class="app-header" v-if="user">
<div class="stats">
<span>SmurfCoins: {{ user.coins }}</span>
<span>EXP: {{ user.exp }}</span>
</div>
<div class="user-info">
<!-- Level can be calculated later -->
<span>{{ user.nickname }}</span>
</div>
</header>
<main class="app-content">
<slot />
</main>
<nav class="bottom-nav">
<NuxtLink to="/village" class="nav-item">Village</NuxtLink>
<NuxtLink to="/habits" class="nav-item">Habits</NuxtLink>
<NuxtLink to="/leaderboard" class="nav-item">Leaderboard</NuxtLink>
</nav>
</div>
</template>
<script setup lang="ts">
const { user } = useAuth();
</script>
<style scoped>
.default-layout {
display: flex;
flex-direction: column;
height: 100vh;
background-color: #eef5ff;
color: #333;
}
.app-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 15px;
background-color: #4a90e2;
color: white;
flex-shrink: 0;
}
.stats, .user-info {
display: flex;
gap: 15px;
}
.app-content {
flex-grow: 1;
overflow-y: auto;
padding: 15px;
}
.bottom-nav {
display: flex;
justify-content: space-around;
padding: 10px 0;
background-color: #ffffff;
border-top: 1px solid #dcdcdc;
flex-shrink: 0;
}
.nav-item {
text-decoration: none;
color: #4a90e2;
padding: 5px 10px;
border-radius: 5px;
}
.nav-item.router-link-exact-active {
background-color: #eef5ff;
font-weight: bold;
}
</style>