All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 39s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 37s
Neue statische Website fuer Kinder (6-12 Jahre) mit 8 Holzprojekten, SVG-Illustrationen, Sicherheitshinweisen und kindgerechtem Design. Next.js 15 + Tailwind + Framer Motion. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
'use client'
|
|
|
|
import Link from 'next/link'
|
|
import { usePathname } from 'next/navigation'
|
|
import { Logo } from './Logo'
|
|
|
|
const links = [
|
|
{ href: '/', label: 'Start' },
|
|
{ href: '/projekte', label: 'Projekte' },
|
|
{ href: '/sicherheit', label: 'Sicherheit' },
|
|
{ href: '/ueber', label: 'Ueber LEVIS' },
|
|
]
|
|
|
|
export function Navbar() {
|
|
const pathname = usePathname()
|
|
|
|
return (
|
|
<nav className="bg-white/80 backdrop-blur-sm border-b border-primary/10 sticky top-0 z-50">
|
|
<div className="max-w-6xl mx-auto px-4 py-3 flex items-center justify-between">
|
|
<Link href="/">
|
|
<Logo />
|
|
</Link>
|
|
<div className="flex items-center gap-1 sm:gap-4">
|
|
{links.map(({ href, label }) => {
|
|
const isActive = href === '/' ? pathname === '/' : pathname.startsWith(href)
|
|
return (
|
|
<Link
|
|
key={href}
|
|
href={href}
|
|
className={`px-3 py-2 rounded-xl text-sm sm:text-base font-semibold transition-colors ${
|
|
isActive
|
|
? 'bg-primary/10 text-primary'
|
|
: 'text-dark/70 hover:text-primary hover:bg-primary/5'
|
|
}`}
|
|
>
|
|
{label}
|
|
</Link>
|
|
)
|
|
})}
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
)
|
|
}
|