Files
dredgegram/resources/js/components/dredge/MainHeader.vue
T
dredgy cc225414e0
linter / quality (push) Canceled after 0s
tests / ci (8.3) (push) Canceled after 0s
tests / ci (8.4) (push) Canceled after 0s
tests / ci (8.5) (push) Canceled after 0s
Initial Commit
2026-08-28 23:20:23 +10:00

105 lines
2.0 KiB
Vue

<script setup lang="ts">
import { Link } from '@inertiajs/vue3';
</script>
<template>
<header class="topbar">
<span class="wordmark">
<Link href="/" aria-label="Home">
Dredge<em>Gram</em>
</Link>
</span>
<span class="icons">
<button class="icon-btn" aria-label="Notifications">
<span class="mdi mdi-heart"></span>
</button>
<Link href="/messages" class="icon-btn" aria-label="Messages">
<span class="mdi mdi-message"></span>
</Link>
</span>
</header>
</template>
<style scoped>
.wordmark {
font-family: 'Space Grotesk', 'IBM Plex Sans', system-ui, sans-serif;
font-weight: 600;
font-size: 1.3rem;
letter-spacing: -0.02em;
}
.wordmark em {
font-style: normal;
color: var(--bioluminum);
}
.topbar {
position: sticky;
top: 0;
z-index: 10;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.85rem 1.5rem;
background: rgba(5, 11, 20, 0.9);
backdrop-filter: blur(8px);
border-bottom: 1px solid var(--line);
}
.icons {
display: flex;
align-items: center;
gap: 0.25rem;
}
.icon-btn {
display: flex;
align-items: center;
justify-content: center;
width: 2.75rem;
height: 2.75rem;
border: none;
background: transparent;
border-radius: 50%;
color: inherit;
cursor: pointer;
transition:
background-color 0.15s ease,
transform 0.1s ease;
-webkit-tap-highlight-color: transparent;
}
.icon-btn .mdi {
font-size: 1.5rem;
line-height: 1;
}
.icon-btn:hover {
background: rgba(255, 255, 255, 0.08);
}
.icon-btn:active {
background: rgba(255, 255, 255, 0.14);
transform: scale(0.94);
}
@media (max-width: 480px) {
.topbar {
padding: 0.75rem 1rem;
}
.icons {
gap: 0;
}
.icon-btn {
width: 2.9rem;
height: 2.9rem;
}
.icon-btn .mdi {
font-size: 1.6rem;
}
}
</style>