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 ↗
Live preview — edit theme bottom-right
---
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

NameTypeRequiredDescription
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.