/* Animated header, full-screen menu overlay and the big animated footer. */ const { Button } = window.ZaviFxDesignSystem_f15c31; const { ThemeToggle } = window; const LINKS = [ { label: 'Home', page: 'home', n: '01' }, { label: 'Services', page: 'services', n: '02' }, { label: 'Work', page: 'work', n: '03' }, { label: 'Case Studies', page: 'case-study', n: '04' }, { label: 'About', page: 'about', n: '05' }, { label: 'Insights', page: 'insights', n: '06' }, { label: 'Contact', page: 'contact', n: '07' }, ]; function BrandMark({ variant = 'gradient', h = 26 }) { const src = window.ASSETS + (variant === 'white' ? 'logo-zavifx-white.png' : 'logo-zavifx-gradient.png'); return ZaviFx; } function SiteHeader({ page, go }) { const [open, setOpen] = React.useState(false); const [solid, setSolid] = React.useState(false); React.useEffect(() => { const on = () => setSolid(scrollY > 40); on(); window.addEventListener('scroll', on, { passive: true }); return () => window.removeEventListener('scroll', on); }, []); React.useEffect(() => { document.body.style.overflow = open ? 'hidden' : ''; return () => { document.body.style.overflow = ''; }; }, [open]); const jump = (p) => { setOpen(false); go(p); }; return ( <>
); } function SiteFooterBig({ go }) { return ( ); } Object.assign(window, { SiteHeader, SiteFooterBig, BrandMark, LINKS });