Library · Navigation
Header / Topbar
Utility strip (tagline left, phone + email right) above a logo-left/nav-right main bar. Topbar hides below 900px; contacts move into the burger panel.
Figma: Header / Topbar ↗---
import HeaderTopbar from "../components/figma/HeaderTopbar.astro";
const navItems = [
{ label: "Home", href: "#", current: true },
{ label: "For Sale", href: "#" },
{ label: "About Us", href: "#" },
{ label: "Testimonials", href: "#" },
{ label: "Contact Us", href: "#" },
];
---
<HeaderTopbar
tone="base-100"
logoText="Harbourline"
navItems={navItems}
phone="07 3123 4567"
email="hello@harbourline.com.au"
tagline="Selling South-East Queensland since 2009"
ctaLabel="Enquire Now"
ctaUrl="#enquire"
/>
<HeaderTopbar
tone="primary"
logoText="Harbourline"
navItems={navItems}
phone="07 3123 4567"
email="hello@harbourline.com.au"
tagline="Selling South-East Queensland since 2009"
ctaLabel="Enquire Now"
ctaUrl="#enquire"
/>
<p class="caption">
The burger menu appears below 900px viewport width — resize the browser window to see it
(media queries are viewport-based, not container-based, so shrinking this panel alone won't
trigger it).
</p> Props
| Name | Type | Required | Description |
|---|---|---|---|
logoText | string | — | Text logo (rendered when no logoImage). |
logoImage | string (url) | — | Image logo — overrides logoText. |
logoAlt | string | — | Alt text for the image logo. |
logoUrl | string | — | Logo link target (default '/'). |
navItems | NavItem[] | Yes | Nav links: { label, href, current? }. |
phone | string | — | Phone number, shown in the topbar and the mobile panel. |
ctaLabel | string | — | Pill CTA label. |
ctaUrl | string | — | Pill CTA link. |
email | string | — | Email address, shown in the topbar and the mobile panel. |
tagline | string | — | Left-side topbar text, e.g. a positioning line. |
tone | "base-100" | "base-200" | "base-300" | "primary" | "secondary" | "neutral" | "transparent" | — | Background tone — mirrors the Figma colour-variant axis (default base-100). |
sticky | boolean | — | position: sticky at the top of the viewport. |