Dark Announcement Navbar

Polaris Index '26 — our annual design report is liveRead it
About this block

Dark Announcement NavbarPRO

Dark studio navbar with a primary announcement bar, wordmark with tagline divider, uppercase links and a primary seal CTA.

Permanently dark studio navbar (bg-foreground/text-background) topped by an optional primary-colored announcement bar. The main row pairs a wordmark with a tagline behind a vertical divider, uppercase links and a primary-toned seal CTA; below lg it collapses into a hamburger-triggered mobile menu.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/navbar43?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/navbar43?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/navbar43.tsx and the button1 component it uses for its call-to-action.

Quick start

The installed file exports navbar43Demo alongside the block: the exact props behind the preview above. Spread it to get a working navbar in one line.

tsx
import { Navbar43, navbar43Demo } from "@/components/beste/block/navbar43";

export default function Layout() {
  return <Navbar43 {...navbar43Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Navbar43 } from "@/components/beste/block/navbar43";

export default function Layout() {
  return (
    <Navbar43
      announcement={{
        message: "Polaris Index '26 is live",
        linkLabel: "Read it",
        href: "/journal/index-26",
      }}
      brand="Polaris"
      tagline="Brand & Product Studio"
      links={[
        { label: "Work", href: "/work" },
        { label: "Studio", href: "/studio" },
      ]}
      cta={{ label: "Start a Project", href: "/contact" }}
    />
  );
}

Props

PropTypeDefaultDescription
announcementAnnouncement–Optional bar above the nav row
brandstring–Wordmark text
taglinestring–Text after a vertical divider next to the brand, hidden below md
linksNavLink[][]Uppercase desktop links, repeated in the mobile menu with a trailing arrow
ctaCtaLink–Seal button rendered via Button1 with tone="primary"
classNamestring–Extra classes for the outer <header>
ts
type Announcement = {
  message: string;
  linkLabel?: string;
  href?: string;
};

type NavLink = { label: string; href: string };

type CtaLink = { label: string; href: string };

Behavior notes

  • The header background is always dark (bg-foreground/text-background), independent of the site's light/dark theme.
  • The announcement bar (bg-primary) only renders when announcement is passed; its link portion requires both linkLabel and href to be set.
  • The tagline sits next to the brand behind a vertical divider and is hidden below md.
  • The CTA button uses tone="primary" so it reads correctly against the dark header.
  • The mobile menu is conditionally rendered ({open && ...}); the tagline and CTA both repeat in its footer.

More Navigation blocks

View all Navigation
PRO

navbar73

Announcement Bar Navbar

PRO

navbar62

Announcement Marquee Navbar

PRO

navbar79

Announcement Navbar

Get Pro access