1+ "use client" ;
2+
13import Image from 'next/image' ;
2- import { ArrowLeft } from 'lucide-react' ;
4+ import { ArrowLeft , Home , Search } from 'lucide-react' ;
5+ import { motion } from 'framer-motion' ;
36
47interface SiteHeaderProps {
58 pathname : string ;
@@ -11,7 +14,7 @@ interface SiteHeaderProps {
1114}
1215
1316const navButtonClass =
14- 'inline-flex min-h-10 items-center justify-center rounded-full px-3.5 py-2 text-xs font-medium tracking-[0.08em ] uppercase whitespace-nowrap transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-emerald-300 active:scale-[0.97] sm:px-4.5 sm:text-sm' ;
17+ 'relative z-10 inline-flex min-h-10 items-center justify-center gap-2 rounded-full px-3.5 py-2 text-xs font-semibold tracking-[0.05em ] uppercase whitespace-nowrap transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-emerald-300 active:scale-[0.97] sm:px-4.5 sm:text-sm' ;
1518
1619export function SiteHeader ( {
1720 pathname,
@@ -59,17 +62,25 @@ export function SiteHeader({
5962 </ div >
6063 ) }
6164
62- < nav aria-label = "Primary" className = "flex shrink-0 items-center gap-1.5 " >
65+ < nav aria-label = "Primary" className = "flex shrink-0 items-center gap-1 rounded-full p-1 bg-slate-100/80 border border-slate-200 shadow-inner " >
6366 < button
6467 type = "button"
6568 onClick = { onGoHome }
6669 aria-current = { resolvedActiveNav === 'home' ? 'page' : undefined }
6770 className = { `${ navButtonClass } ${
6871 resolvedActiveNav === 'home'
69- ? 'border border-emerald-200 bg-emerald-100/90 text-emerald-950 shadow-sm '
70- : 'text-slate-600 hover:bg-white hover: text-emerald-800'
72+ ? 'text-emerald-950'
73+ : 'text-slate-500 hover:text-emerald-800 hover:bg-black/5 '
7174 } `}
7275 >
76+ { resolvedActiveNav === 'home' && (
77+ < motion . div
78+ layoutId = "active-nav-pill"
79+ className = "absolute inset-0 -z-10 rounded-full border border-emerald-200 bg-emerald-100 shadow-sm"
80+ transition = { { type : 'spring' , stiffness : 400 , damping : 30 } }
81+ />
82+ ) }
83+ < Home className = "w-3.5 h-3.5 sm:w-4 sm:h-4" />
7384 Home
7485 </ button >
7586 < button
@@ -79,10 +90,18 @@ export function SiteHeader({
7990 aria-current = { resolvedActiveNav === 'directory' ? 'page' : undefined }
8091 className = { `${ navButtonClass } ${
8192 resolvedActiveNav === 'directory'
82- ? 'border border-emerald-200 bg-emerald-100/90 text-emerald-950 shadow-sm '
83- : 'text-slate-600 hover:bg-white hover: text-emerald-800'
93+ ? 'text-emerald-950'
94+ : 'text-slate-500 hover:text-emerald-800 hover:bg-black/5 '
8495 } `}
8596 >
97+ { resolvedActiveNav === 'directory' && (
98+ < motion . div
99+ layoutId = "active-nav-pill"
100+ className = "absolute inset-0 -z-10 rounded-full border border-emerald-200 bg-emerald-100 shadow-sm"
101+ transition = { { type : 'spring' , stiffness : 400 , damping : 30 } }
102+ />
103+ ) }
104+ < Search className = "w-3.5 h-3.5 sm:w-4 sm:h-4" />
86105 < span className = "sm:hidden" > Directory</ span >
87106 < span className = "hidden sm:inline" > Plant Directory</ span >
88107 </ button >
0 commit comments