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.
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.
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
npx shadcn add "https://ui.beste.co/r/navbar38?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
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).
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.
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:
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: "hello@company.com", href: "mailto:hello@company.com", 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" },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
topBarText | string | – | Announcement text on the left of the top strip; omit to leave that side empty |
topBarLinks | TopBarLink[] | [] | 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 |
navItems | NavItem[] | [] | Desktop and mobile nav links, rendered as ghost buttons on desktop |
buttons | Array<{ label: string; href?: string; variant?: "default" | "outline" | "ghost" }> | [] | Action buttons rendered right of the nav, repeated in the mobile panel |
className | string | – | Extra classes for the outer wrapper <div> |
type TopBarLink = {
label: string;
href?: string;
icon?: "phone" | "mail";
};
type NavItem = { label: string; href?: string };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.variant="ghost" Buttons (not plain links) inside the main row, giving them a hover background instead of just a color change.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.navbar65
Two-tier navbar — a top strip carries an availability badge with a live dot and utility links, over a main row with an oversized wordmark, nav and pill CTA.
navbar40
Two-row navbar with main navigation and secondary breadcrumb bar for hierarchical content paths. Perfect for e-commerce product pages and documentation with deep category structures.
navbar51
Two-row navbar with brand, availability status and seal CTA on top, and an underlined active-tab link row that scrolls horizontally on mobile.
navbar64
A quiet top bar whose menu button opens a full-screen overlay — oversized numbered links with hover arrows, a contact block and social row beneath. Pure Auralis big type.
navbar41
Two-tier studio navbar with an availability utility strip, square-mark wordmark, index-numbered links and a seal CTA.
navbar58
Minimal stacked navbar — a large primary logo square with the wordmark tucked into its corner, over a quiet ruled row of uppercase links. No buttons, no hamburger.