Files
kochwas/src/routes/admin/+layout.svelte
hsiegeln 68e27a6868
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m20s
style(admin): Emoji-Icons durch Lucide-Icons ersetzt
🌐/👥/💾 waren die letzten verbliebenen Emoji-Icons in der App und
stachen gegen die Lucide-Icons im Rest heraus. Jetzt Globe/Users/
DatabaseBackup als SVG-Icons in den Admin-Tabs, passt zum übrigen
Design.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 14:08:57 +02:00

63 lines
1.4 KiB
Svelte

<script lang="ts">
import { page } from '$app/stores';
import { Globe, Users, DatabaseBackup, type Icon } from 'lucide-svelte';
let { children } = $props();
const items: { href: string; label: string; icon: typeof Icon }[] = [
{ href: '/admin/domains', label: 'Domains', icon: Globe },
{ href: '/admin/profiles', label: 'Profile', icon: Users },
{ href: '/admin/backup', label: 'Backup', icon: DatabaseBackup }
];
</script>
<nav class="tabs">
{#each items as item (item.href)}
{@const Icon = item.icon}
<a
href={item.href}
class="tab"
class:active={$page.url.pathname.startsWith(item.href)}
>
<Icon size={16} strokeWidth={2} />
<span>{item.label}</span>
</a>
{/each}
</nav>
<section class="admin-body">
{@render children()}
</section>
<style>
.tabs {
display: flex;
gap: 0.25rem;
padding: 0.75rem 0 0;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.tab {
padding: 0.5rem 0.95rem 0.5rem 0.8rem;
background: white;
border: 1px solid #e4eae7;
border-radius: 999px;
text-decoration: none;
color: #444;
font-size: 0.95rem;
white-space: nowrap;
min-height: 40px;
display: inline-flex;
align-items: center;
gap: 0.4rem;
}
.tab.active {
background: #2b6a3d;
color: white;
border-color: #2b6a3d;
}
.admin-body {
padding: 1rem 0;
}
</style>