Files
private_image/frontend/src/components/layout/AppHeader.vue
T
nobswebdev bb08bb389f make upload and metadata UI responsive on mobile.
Improve narrow-viewport layout for upload, About, and shell overflow; keep modal scroll without extra dismiss or a11y markup changes.
2026-10-30 16:23:09 +01:00

48 lines
1.6 KiB
Vue

<template>
<header class="border-b border-border bg-card">
<div class="mx-auto flex h-14 max-w-5xl items-center justify-between gap-2 px-3 sm:gap-4 sm:px-6">
<RouterLink
:to="{ name: ROUTE_NAMES.Upload }"
class="min-w-0 shrink transition-opacity hover:opacity-80"
>
<img
src="/logo.png"
alt="Private Image"
class="h-7 w-auto max-w-[min(100%,12rem)] sm:h-8 md:h-9"
width="1024"
height="228"
decoding="async"
/>
</RouterLink>
<nav class="flex items-center gap-1 sm:gap-2">
<RouterLink
v-for="item in navItems"
:key="item.name"
:to="{ name: item.name }"
class="rounded-md px-3 py-2 text-sm transition-colors"
:class="
route.name === item.name
? 'bg-muted font-medium text-foreground'
: 'text-muted-foreground hover:bg-muted/60 hover:text-foreground'
"
>
{{ item.label }}
</RouterLink>
</nav>
</div>
</header>
</template>
<script setup lang="ts">
import { useRoute } from 'vue-router';
import { ROUTE_NAMES } from '@/consts/routeNames';
const route = useRoute();
const navItems = [
{ name: ROUTE_NAMES.Upload, label: 'Upload' },
{ name: ROUTE_NAMES.About, label: 'About' }
];
</script>