82 lines
2.5 KiB
JavaScript
82 lines
2.5 KiB
JavaScript
import { useState } from 'react';
|
|
import Link from 'next/link';
|
|
import Image from 'next/image';
|
|
import { Bars3Icon as MenuIcon, XMarkIcon as XIcon } from '@heroicons/react/24/outline';
|
|
|
|
export default function Navbar() {
|
|
const [isOpen, setIsOpen] = useState(false);
|
|
|
|
const navItems = [
|
|
{ name: 'Start', href: '/' },
|
|
{ name: 'Über uns', href: '/about' },
|
|
{ name: 'Projekte', href: '/projects' },
|
|
{ name: 'DevLog', href: '/devlog' },
|
|
{ name: 'Kontakt', href: '/contact' },
|
|
];
|
|
|
|
return (
|
|
<nav className="fixed w-full bg-white shadow-sm z-50">
|
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
<div className="flex justify-between h-16">
|
|
<div className="flex items-center">
|
|
<Link href="/" className="flex items-center">
|
|
<Image
|
|
src="/logo.png"
|
|
alt="Pixelbrew Logo"
|
|
width={300}
|
|
height={300}
|
|
style={{ marginTop: '4rem', marginBottom: '1rem' }}
|
|
/>
|
|
</Link>
|
|
</div>
|
|
|
|
{/* Desktop Navigation */}
|
|
<div className="hidden md:flex items-center space-x-8">
|
|
{navItems.map((item) => (
|
|
<Link
|
|
key={item.name}
|
|
href={item.href}
|
|
className="transition-colors duration-200 hover:text-pb-turquoise"
|
|
>
|
|
{item.name}
|
|
</Link>
|
|
))}
|
|
</div>
|
|
|
|
{/* Mobile menu button */}
|
|
<div className="md:hidden flex items-center">
|
|
<button
|
|
onClick={() => setIsOpen(!isOpen)}
|
|
className="inline-flex items-center justify-center p-2"
|
|
>
|
|
{isOpen ? (
|
|
<XIcon className="h-6 w-6" />
|
|
) : (
|
|
<MenuIcon className="h-6 w-6" />
|
|
)}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{/* Mobile Navigation */}
|
|
{isOpen && (
|
|
<div className="md:hidden">
|
|
<div className="px-2 pt-2 pb-3 space-y-1 sm:px-3">
|
|
{navItems.map((item) => (
|
|
<Link
|
|
key={item.name}
|
|
href={item.href}
|
|
className="block px-3 py-2 transition-colors duration-200 hover:text-pb-turquoise"
|
|
onClick={() => setIsOpen(false)}
|
|
>
|
|
{item.name}
|
|
</Link>
|
|
))}
|
|
</div>
|
|
</div>
|
|
)}
|
|
</nav>
|
|
);
|
|
}
|