mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
89 lines
1.5 KiB
Svelte
89 lines
1.5 KiB
Svelte
<script lang="ts">
|
|
import { page } from '$app/stores'
|
|
import type { Route } from '$lib/types'
|
|
|
|
const routes: Route[] = [
|
|
{ href: '/settings/profile', label: 'Profile' },
|
|
{ href: '/settings/security', label: 'Security' },
|
|
]
|
|
|
|
let { children } = $props()
|
|
</script>
|
|
|
|
<div class="security-nav">
|
|
<nav>
|
|
<div class="mx-auto w-full max-w-6xl mb-2">
|
|
<h1 class="text-3xl font-semibold">Settings</h1>
|
|
</div>
|
|
<ul>
|
|
{#each routes as { href, label }}
|
|
<li>
|
|
<a href={href} class:active={$page.url.pathname.includes(href)}>
|
|
{label}
|
|
</a>
|
|
</li>
|
|
{/each}
|
|
</ul>
|
|
</nav>
|
|
<div class="security-nav-content">
|
|
{@render children()}
|
|
</div>
|
|
</div>
|
|
|
|
<style lang="postcss">
|
|
.security-nav {
|
|
display: flex;
|
|
|
|
@media (width <= 1000px) {
|
|
display: grid;
|
|
}
|
|
|
|
nav {
|
|
@media (width > 1000px) {
|
|
width: 16rem;
|
|
position: sticky;
|
|
top: 0;
|
|
left: 0;
|
|
background-color: #fff;
|
|
padding: 1rem;
|
|
border-right: 1px solid #ddd;
|
|
height: 100vh;
|
|
}
|
|
|
|
ul {
|
|
list-style-type: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
li {
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
a {
|
|
text-decoration: none;
|
|
color: #337ab7;
|
|
display: block;
|
|
padding: 0.5rem;
|
|
border-radius: 0.25rem;
|
|
|
|
&:hover {
|
|
background-color: #f8f9fa;
|
|
}
|
|
|
|
&.active {
|
|
color: var(--color-link-hover);
|
|
font-weight: 600;
|
|
background-color: #e9ecef;
|
|
}
|
|
}
|
|
}
|
|
|
|
.security-nav-content {
|
|
flex: 1;
|
|
padding: 1rem;
|
|
margin: 0 auto;
|
|
max-width: 80vw;
|
|
}
|
|
}
|
|
</style>
|