| 5 | import { useTheme } from "next-themes"; |
| 6 | |
| 7 | export function Header() { |
| 8 | |
| 9 | const { user } = useAuth(); |
| 10 | const { theme, setTheme } = useTheme(); |
| 11 | const [isScrolled, setIsScrolled] = useState(false); |
| 12 | |
| 13 | useEffect(() => { |
| 14 | const handleScroll = () => { |
| 15 | setIsScrolled(window.scrollY > 10); |
| 16 | }; |
| 17 | window.addEventListener("scroll", handleScroll); |
| 18 | return () => window.removeEventListener("scroll", handleScroll); |
| 19 | }, []); |
| 20 | |
| 21 | return ( |
| 22 | <header className={`fixed top-[var(--incident-height,0px)] left-0 right-0 z-50 w-full transition-all duration-300 bg-white/70 dark:bg-white/5 backdrop-blur-xl border-b ${isScrolled ? "border-slate-200 dark:border-white/10 shadow-sm dark:shadow-[0_4px_30px_rgba(0,0,0,0.5)]" : "border-transparent shadow-none"}`}> |
| 23 | <div className="w-full px-4 sm:px-6 md:px-12 lg:px-16 h-16 flex items-center justify-between"> |
| 24 | |
| 25 | {/* Left Side: Logo */} |
| 26 | <div className="flex items-center"> |
| 27 | <a href="/" className="flex items-center gap-2 sm:gap-4 group"> |
| 28 | <div className="flex items-center gap-2 sm:gap-3"> |
| 29 | <img src="/stackryze_logo_black.png" alt="Stackryze Logo" className="h-8 sm:h-10 md:h-10 w-auto dark:hidden" /> |
| 30 | <img src="/stackryze_logo_white.png" alt="Stackryze Logo" className="h-8 sm:h-10 md:h-10 w-auto hidden dark:block" /> |
| 31 | <span className="text-sm sm:text-lg md:text-xl font-extrabold text-slate-900 dark:text-white tracking-tight">Stackryze Domains</span> |
| 32 | </div> |
| 33 | <div className="hidden xl:block h-5 w-[1px] bg-slate-300 dark:bg-slate-700"></div> |
| 34 | <div className="hidden xl:flex items-baseline gap-0.5"> |
| 35 | <div className="flex items-center font-bold text-lg tracking-tight gap-0.5"> |
| 36 | <span className="text-orange-500">IN</span> |
| 37 | <span className="text-slate-900 dark:text-white">DE</span> |
| 38 | <span className="text-green-600">VS</span> |
| 39 | </div> |
| 40 | <span className="text-sm font-semibold text-slate-500 dark:text-slate-400 tracking-tight">.in</span> |
| 41 | </div> |
| 42 | <div className="hidden xl:block h-5 w-[1px] bg-slate-300 dark:bg-slate-700"></div> |
| 43 | <div className="hidden xl:flex items-baseline gap-0.5"> |
| 44 | <div className="flex items-center font-bold text-lg tracking-tight gap-0.5"> |
| 45 | <span className="text-slate-900 dark:text-white">SRYZE</span> |
| 46 | </div> |
| 47 | <span className="text-sm font-semibold text-slate-500 dark:text-slate-400 tracking-tight">.cc</span> |
| 48 | </div> |
| 49 | <div className="hidden xl:block h-5 w-[1px] bg-slate-300 dark:bg-slate-700"></div> |
| 50 | <div className="hidden xl:flex items-baseline gap-0.5"> |
| 51 | <div className="flex items-center font-bold text-lg tracking-tight gap-0.5"> |
| 52 | <span className="text-rose-500">RYZE</span> |
| 53 | <span className="text-slate-900 dark:text-white">DNS</span> |
| 54 | </div> |
| 55 | <span className="text-sm font-semibold text-slate-500 dark:text-slate-400 tracking-tight">.org</span> |
| 56 | </div> |
| 57 | <div className="hidden xl:block h-5 w-[1px] bg-slate-300 dark:bg-slate-700"></div> |
| 58 | <div className="hidden xl:flex items-baseline gap-0.5"> |
| 59 | <div className="flex items-center font-bold text-lg tracking-tight gap-0.5"> |
| 60 | <span className="text-slate-900 dark:text-white">NX</span> |
| 61 | </div> |
| 62 | <span className="text-sm font-semibold text-slate-500 dark:text-slate-400 tracking-tight">.kg</span> |
| 63 | </div> |
| 64 | </a> |