diff --git a/app/components/Nav.jsx b/app/components/Nav.jsx new file mode 100644 index 0000000..697718c --- /dev/null +++ b/app/components/Nav.jsx @@ -0,0 +1,124 @@ +'use client' +import { useState } from 'react' + +const LINKS = [ + { href: '#manifesto', label: 'Why Fibe' }, + { href: '#features', label: 'Platform' }, + { href: '#genies', label: 'Genies' }, + { href: '#clouds', label: 'Cloud guides' }, + { href: '#everything',label: 'Everything included' }, + { href: '#stack', label: 'Stack' }, +] + +export default function Nav() { + const [open, setOpen] = useState(false) + const close = () => setOpen(false) + + return ( + + + + {/* Logo */} + + + + + ƒ + + + + fibe + + + {/* Desktop links */} + + {LINKS.map(l => ( + {l.label} + ))} + + + {/* Desktop CTA */} + + + Sign in + + + Get started free + + + + {/* Mobile: CTA + hamburger */} + + + Get started + + setOpen(o => !o)} + aria-label={open ? 'Close menu' : 'Open menu'} + className="w-9 h-9 flex flex-col items-center justify-center gap-1.5 rounded-lg transition-colors" + style={{color:'rgba(161,161,170,0.8)',background: open ? 'rgba(139,92,246,0.1)' : 'transparent'}}> + {open ? ( + /* X icon */ + + + + + ) : ( + /* Hamburger icon */ + + + + + + )} + + + + + {/* Mobile dropdown */} + {open && ( + + + {LINKS.map((l, i) => ( + + {l.label} + + + + + ))} + + + + Sign in + + + Get started free + + + + )} + + ) +} diff --git a/app/page.jsx b/app/page.jsx index 45e6047..757b313 100644 --- a/app/page.jsx +++ b/app/page.jsx @@ -1,3 +1,5 @@ +import Nav from './components/Nav' + export default function Home() { return ( @@ -7,44 +9,7 @@ export default function Home() { - {/* ── NAV ── */} - - - - - - - ƒ - - - - fibe - - - - Why Fibe - Platform - Genies - Deploy - Everything - - - - - Sign in - - - Get started free - - - - + {/* ── HERO ── */}