diff --git a/site/src/components/Header.astro b/site/src/components/Header.astro index 1cf36e47..a77955e1 100644 --- a/site/src/components/Header.astro +++ b/site/src/components/Header.astro @@ -1,5 +1,6 @@ --- import Wordmark from './Wordmark.astro'; +import Icon from './Icon.astro'; interface Props { /** Render as transparent over the sky hero, with light text. Becomes solid once scrolled past the hero. */ @@ -8,13 +9,34 @@ interface Props { const { onSky = false } = Astro.props; const path = Astro.url.pathname; -const nav: { label: string; href: string; match?: string }[] = [ - { label: 'Product', href: '/product/', match: '/product' }, - { label: 'Warmup', href: '/warmup/', match: '/warmup' }, - { label: 'Deliverability', href: '/deliverability/', match: '/deliverability' }, - { label: 'Security', href: '/security/', match: '/security' }, - { label: 'Pricing', href: '/pricing/', match: '/pricing' }, - { label: 'Learn', href: '/learn/', match: '/learn' }, + +// Product mega-menu items grouped into two columns +const productGroups = [ + { + label: 'Send & deliver', + items: [ + { icon: 'flame', href: '/warmup/', title: 'Warmup', desc: 'Reputation-safe pools and gradual ramps.' }, + { icon: 'send', href: '/sending/', title: 'Sending engine', desc: 'Distributed across mailboxes, workers, IPs.' }, + { icon: 'cpu', href: '/workers/', title: 'Workers', desc: 'One worker per machine, never NAT-shared.' }, + { icon: 'shield', href: '/security/', title: 'Security', desc: 'Envelope encryption with AWS KMS.' }, + ], + }, + { + label: 'Engage & analyse', + items: [ + { icon: 'inbox', href: '/inbox/', title: 'Unified inbox', desc: 'Every reply across every mailbox, classified.' }, + { icon: 'workflow', href: '/campaigns/', title: 'Campaigns', desc: 'Sequences with branching and A/B variants.' }, + { icon: 'contact', href: '/crm/', title: 'CRM', desc: 'Pipelines, deals and tasks next to sending.' }, + { icon: 'chart', href: '/analytics/', title: 'Analytics', desc: 'Placement, complaints, bounces, by mailbox.' }, + ], + }, +]; + +const nav: { label: string; href: string; match?: string; mega?: boolean }[] = [ + { label: 'Product', href: '/product/', match: '/product', mega: true }, + { label: 'Deliverability',href: '/deliverability/',match: '/deliverability' }, + { label: 'Pricing', href: '/pricing/', match: '/pricing' }, + { label: 'Learn', href: '/learn/', match: '/learn' }, ]; function active(match?: string) { @@ -33,19 +55,110 @@ function active(match?: string) {