49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
import React from 'react';
|
|
import { Link, useLocation } from 'react-router-dom';
|
|
import { motion } from 'framer-motion';
|
|
|
|
const Navbar: React.FC = () => {
|
|
const location = useLocation();
|
|
const isHome = location.pathname === '/';
|
|
|
|
return (
|
|
<nav
|
|
className="fixed w-full z-40 top-0 left-0 border-b border-gray-200 dark:border-white/10 bg-white/80 dark:bg-background-dark/80 backdrop-blur-md"
|
|
>
|
|
<div className="max-w-7xl mx-auto px-6 h-16 flex items-center justify-between">
|
|
<Link to="/" className="flex items-center gap-2">
|
|
<motion.div
|
|
whileHover={{ rotate: 180 }}
|
|
transition={{ duration: 0.5 }}
|
|
>
|
|
<span className="material-symbols-outlined text-xl dark:text-white text-black">dns</span>
|
|
</motion.div>
|
|
<span className="font-display font-bold text-lg tracking-tight">Bay Area Affiliates</span>
|
|
</Link>
|
|
|
|
<div className="hidden md:flex items-center gap-8 text-sm font-medium text-gray-600 dark:text-gray-400">
|
|
{['About', 'Services', 'Blog', 'Contact'].map((item) => (
|
|
<Link
|
|
key={item}
|
|
to={`/${item.toLowerCase()}`}
|
|
className="hover:text-black dark:hover:text-white transition-colors relative group px-2 py-1"
|
|
>
|
|
<motion.span
|
|
whileHover={{ scale: 1.05 }}
|
|
whileTap={{ scale: 0.95 }}
|
|
className="inline-block"
|
|
>
|
|
{item}
|
|
</motion.span>
|
|
<span className="absolute -bottom-1 left-0 w-0 h-0.5 bg-black dark:bg-white transition-all duration-300 ease-out group-hover:w-full"></span>
|
|
</Link>
|
|
))}
|
|
</div>
|
|
|
|
{/* Client Portal button removed */}
|
|
</div>
|
|
</nav>
|
|
);
|
|
};
|
|
|
|
export default Navbar; |