ledgerone_frontend/components/site-header.tsx
2026-03-18 13:02:58 -07:00

54 lines
1.9 KiB
TypeScript

"use client";
import Link from "next/link";
import { useEffect, useState } from "react";
import { Logo } from "./logo";
export function SiteHeader() {
const [scrolled, setScrolled] = useState(false);
useEffect(() => {
const handleScroll = () => {
setScrolled(window.scrollY > 20);
};
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
}, []);
return (
<header
className={`fixed left-0 right-0 top-0 z-50 transition-all duration-300 ${scrolled ? "bg-background/80 backdrop-blur-md shadow-sm py-3" : "bg-transparent py-5"
}`}
>
<div className="mx-auto flex max-w-7xl items-center justify-between px-6 lg:px-8">
<Logo />
<nav className="hidden items-center gap-8 md:flex">
<Link href="/" className="nav-link">Home</Link>
<Link href="/about" className="nav-link">About</Link>
<Link href="/features/cash-flow" className="nav-link">Cash Flow</Link>
<Link href="/features/reports" className="nav-link">Reports</Link>
<Link href="/compare/vs-spreadsheets" className="nav-link">Compare</Link>
<Link href="/pricing" className="nav-link">Pricing</Link>
</nav>
<div className="flex items-center gap-4">
<div className="hidden md:flex items-center gap-4 border-l border-border pl-4">
<Link href="/login" className="nav-link">
Sign in
</Link>
<Link href="/register" className="btn-primary-sm">
Get Started
</Link>
</div>
<button className="md:hidden text-foreground">
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M4 6h16M4 12h16m-7 6h7" />
</svg>
</button>
</div>
</div>
</header>
);
}