mirror of
https://github.com/JonasunderscoreJones/dash.jonasjones.dev.git
synced 2025-10-25 02:59:18 +02:00
144 lines
2.7 KiB
Svelte
144 lines
2.7 KiB
Svelte
<script>
|
|
import { page } from '$app/state';
|
|
import logo from '$lib/images/logo.png';
|
|
import { getSessionKey } from '$lib/session.js';
|
|
import { onMount } from 'svelte';
|
|
|
|
let sessionKey;
|
|
onMount(() => {
|
|
sessionKey = getSessionKey();
|
|
});
|
|
</script>
|
|
|
|
<header>
|
|
<div class="corner">
|
|
<a href="https://jonasjones.dev">
|
|
<img src={logo} alt="SvelteKit" />
|
|
</a>
|
|
</div>
|
|
|
|
<nav>
|
|
<svg viewBox="0 0 2 3" aria-hidden="true">
|
|
<path d="M0,0 L1,2 C1.5,3 1.5,3 2,3 L2,0 Z" />
|
|
</svg>
|
|
<ul>
|
|
{#if sessionKey === null}
|
|
<li aria-current={page.url.pathname === '/login' ? 'page' : undefined}>
|
|
<a href="/login{page.url.search}">Login</a>
|
|
</li>
|
|
<li aria-current={page.url.pathname === '/signup' ? 'page' : undefined}>
|
|
<a href="/signup{page.url.search}">Signup</a>
|
|
</li>
|
|
<li aria-current={page.url.pathname === '/about' ? 'page' : undefined}>
|
|
<a href="/about">About</a>
|
|
</li>
|
|
{:else}
|
|
<li aria-current={page.url.pathname === '/' ? 'page' : undefined}>
|
|
<a href="/">Home</a>
|
|
</li>
|
|
<li aria-current={page.url.pathname === '/about' ? 'page' : undefined}>
|
|
<a href="/about">About</a>
|
|
</li>
|
|
<li aria-current={page.url.pathname === '/logout' ? 'page' : undefined}>
|
|
<a href="/logout">Logout</a>
|
|
</li>
|
|
{/if}
|
|
</ul>
|
|
<svg viewBox="0 0 2 3" aria-hidden="true">
|
|
<path d="M0,0 L0,3 C0.5,3 0.5,3 1,2 L2,0 Z" />
|
|
</svg>
|
|
</nav>
|
|
|
|
<div class="corner">
|
|
</div>
|
|
</header>
|
|
|
|
<style>
|
|
header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.corner {
|
|
width: 3em;
|
|
height: 3em;
|
|
}
|
|
|
|
.corner a {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.corner img {
|
|
width: 2em;
|
|
height: 2em;
|
|
object-fit: contain;
|
|
}
|
|
|
|
nav {
|
|
display: flex;
|
|
justify-content: center;
|
|
--background: #242526;
|
|
}
|
|
|
|
svg {
|
|
width: 2em;
|
|
height: 3em;
|
|
display: block;
|
|
}
|
|
|
|
path {
|
|
fill: var(--background);
|
|
}
|
|
|
|
ul {
|
|
position: relative;
|
|
padding: 0;
|
|
margin: 0;
|
|
height: 3em;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
list-style: none;
|
|
background: var(--background);
|
|
background-size: contain;
|
|
}
|
|
|
|
li {
|
|
position: relative;
|
|
height: 100%;
|
|
}
|
|
|
|
li[aria-current='page']::before {
|
|
--size: 6px;
|
|
content: '';
|
|
width: 0;
|
|
height: 0;
|
|
position: absolute;
|
|
top: 0;
|
|
left: calc(50% - var(--size));
|
|
border: var(--size) solid transparent;
|
|
border-top: var(--size) solid var(--color-theme-1);
|
|
}
|
|
|
|
nav a {
|
|
display: flex;
|
|
height: 100%;
|
|
align-items: center;
|
|
padding: 0 0.5rem;
|
|
color: var(--color-text);
|
|
font-weight: 700;
|
|
font-size: 0.8rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
text-decoration: none;
|
|
transition: color 0.2s linear;
|
|
}
|
|
|
|
a:hover {
|
|
color: var(--color-theme-1);
|
|
}
|
|
</style>
|