first commit

This commit is contained in:
2025-06-29 07:12:20 -04:00
parent 6612f40d9b
commit cfcc4c480e
16 changed files with 3156 additions and 767 deletions
+82
View File
@@ -0,0 +1,82 @@
'use client';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
export function Navbar() {
const pathname = usePathname();
const navItems = [
{ name: 'Parts Catalog', href: '/' },
{ name: 'Build Checklist', href: '/build' },
{ name: 'My Builds', href: '/builds' },
];
return (
<nav className="bg-white shadow-sm border-b">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="flex justify-between items-center h-16">
{/* Logo/Brand */}
<div className="flex items-center">
<Link href="/" className="text-2xl font-bold text-gray-900">
Pew Builder
</Link>
</div>
{/* Navigation Links */}
<div className="hidden md:block">
<div className="ml-10 flex items-baseline space-x-4">
{navItems.map((item) => {
const isActive = pathname === item.href;
return (
<Link
key={item.name}
href={item.href}
className={`px-3 py-2 rounded-md text-sm font-medium transition-colors ${
isActive
? 'bg-blue-600 text-white'
: 'text-gray-700 hover:bg-gray-100 hover:text-gray-900'
}`}
>
{item.name}
</Link>
);
})}
</div>
</div>
{/* Mobile menu button */}
<div className="md:hidden">
<button className="text-gray-700 hover:text-gray-900 focus:outline-none focus:text-gray-900">
<svg className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
</div>
</div>
</div>
{/* Mobile menu */}
<div className="md:hidden">
<div className="px-2 pt-2 pb-3 space-y-1 sm:px-3">
{navItems.map((item) => {
const isActive = pathname === item.href;
return (
<Link
key={item.name}
href={item.href}
className={`block px-3 py-2 rounded-md text-base font-medium transition-colors ${
isActive
? 'bg-blue-600 text-white'
: 'text-gray-700 hover:bg-gray-100 hover:text-gray-900'
}`}
>
{item.name}
</Link>
);
})}
</div>
</div>
</nav>
);
}