Dual-Row Navbar

About this block

Dual-Row NavbarPRO

Two-tier navbar with slim top bar for announcements and contact info above main navigation. Perfect for e-commerce and service businesses displaying promotions and support details.

A two-tier navbar for e-commerce and service sites: a slim, muted top strip carries an announcement string plus a row of contact links (phone/mail icons, with labels hidden below sm), and a standard bordered navigation row sits underneath it with the logo, links rendered as ghost buttons, and CTAs. Both rows are wrapped together so the whole header stays sticky as one unit.

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/navbar38?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/navbar38.tsx and the shadcn/ui dependencies it needs (button).

Quick start

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

tsx
import { Navbar38, navbar38Demo } from "@/components/beste/block/navbar38";

export default function Layout() {
  return <Navbar38 {...navbar38Demo} />;
}

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

tsx
import { Navbar38 } from "@/components/beste/block/navbar38";

export default function Layout() {
  return (
    <Navbar38
      topBarText="Free shipping on orders over $50"
      topBarLinks={[
        { label: "+1 (555) 123-4567", href: "tel:+15551234567", icon: "phone" },
        { label: "[email protected]", href: "mailto:[email protected]", icon: "mail" },
      ]}
      logo={{ text: "DualNav", href: "/" }}
      navItems={[
        { label: "Home", href: "/" },
        { label: "Products", href: "/products" },
        { label: "Contact", href: "/contact" },
      ]}
      buttons={[
        { label: "Sign In", variant: "ghost", href: "/login" },
        { label: "Get Quote", variant: "default", href: "/quote" },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
topBarTextstring–Announcement text on the left of the top strip; omit to leave that side empty
topBarLinksTopBarLink[][]Contact links on the right of the top strip
logo{ text: string; href?: string }–Brand text and link, shown at the left of the main row
navItemsNavItem[][]Desktop and mobile nav links, rendered as ghost buttons on desktop
buttonsArray<{ label: string; href?: string; variant?: "default" | "outline" | "ghost" }>[]Action buttons rendered right of the nav, repeated in the mobile panel
classNamestring–Extra classes for the outer wrapper <div>
ts
type TopBarLink = {
  label: string;
  href?: string;
  icon?: "phone" | "mail";
};

type NavItem = { label: string; href?: string };

Behavior notes

  • The whole component (top strip + main nav) is wrapped in one sticky top-0 <div>, so both rows scroll away together and lock to the top as a unit; the main <nav> keeps its own bottom border.
  • TopBarLink.icon maps to a small Phone or Mail icon; the label text itself is hidden below sm (hidden sm:inline), leaving just the icon on narrow viewports.
  • Desktop nav items render as variant="ghost" Buttons (not plain links) inside the main row, giving them a hover background instead of just a color change.
  • Desktop links, buttons, and the top bar's link labels show from lg/sm up; below lg a hamburger toggles a conditionally rendered panel ({mobileMenuOpen && ...}) with plain link rows and stacked full-width buttons — the top strip itself has no mobile-specific collapse.

More Navigation blocks

View all Navigation
PRO

navbar65

Status Tier Navbar

PRO

navbar40

Breadcrumb Navbar

PRO

navbar73

Announcement Bar Navbar

Get Pro access