A sharp first identity, ready before the raise even closes.
Guardrails that keep a fast-moving brand from coming apart.
Screens drawn and shipped right alongside your engineers.
Signage, print and identity for the places people gather.
A careful second act for a brand that outgrew its old look.
One voice stretched cleanly across every market and screen.
Navbar with a marked wordmark and a pill-highlighted trigger that drops a floating rounded mega panel — a parenthetical label over a 3x2 grid of icon use-case cards. Sign-in pill plus a primary CTA.
Navbar with a pill-shaped wordmark row where a trigger item drops a floating, rounded mega panel instead of a full-bleed strip: a parenthetical badge sits above a 3x2 grid of icon use-case cards. A muted sign-in pill sits next to the primary CTA button on the right.
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.
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/navbar61?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/navbar61?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/navbar61.tsx, the badge7 and button12 components it uses for the panel badge and its CTA, and its dependencies.
The installed file exports navbar61Demo alongside the block: the exact props behind the preview above. Spread it to get a working navbar in one line.
import { Navbar61, navbar61Demo } from "@/components/beste/block/navbar61";
export default function Layout() {
return <Navbar61 {...navbar61Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Rocket, Layers } from "lucide-react";
import { Navbar61 } from "@/components/beste/block/navbar61";
export default function Layout() {
return (
<Navbar61
brand="Northwind"
items={[
{
label: "Who it's for",
href: "/who",
panel: {
badge: { label: "By the room you sit in" },
cards: [
{ icon: Rocket, title: "Seed-stage builders", description: "Ready before the raise closes.", href: "/seed" },
{ icon: Layers, title: "Product squads", description: "Screens shipped with your engineers.", href: "/product" },
],
},
},
{ label: "Notebook", href: "/notebook" },
]}
login={{ label: "Sign in", href: "/login" }}
button={{ label: "Book a call", href: "/contact" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
brand | string | – | Wordmark text; omitted entirely when not set |
items | NavItem[] | [] | Top-level nav entries, plain links or mega-panel triggers |
login | { label: string; href: string } | – | Muted pill link rendered before the CTA; hidden entirely when not set |
button | { label: string; href: string } | – | Primary pill CTA; hidden entirely when not set |
className | string | – | Extra classes for the outer <header> |
type NavItem = { label: string; href: string; panel?: MegaPanel };
type MegaPanel = {
badge: { label: string };
cards: PanelCard[];
};
type PanelCard = {
icon: LucideIcon;
title: string;
description: string;
href: string;
};An item only opens a panel when panel is set; otherwise it renders as a plain link.
panel render as a rounded-full button: hovering (onMouseEnter) or clicking opens the panel; clicking again while open closes it. Hovering a plain link resets activeIndex, closing any open panel.invisible/visible with an opacity/translate transition rather than conditionally rendered, so panel content is present in the server-rendered HTML.Escape, via a document-level listener attached only while a panel is open.max-w-7xl container, floating just below the nav row.md:grid-cols-3 (3x2 for a 6-card panel), each card an icon square, a title, and a description, the whole card wrapped in a link.lg) lists each panel's card titles as plain indented links beneath the item's own link; it drops the icons and descriptions.navbar66
Mega-menu navbar whose panels lead with a featured project — a full-color image card with a parenthetical category beside a ruled link list. SSR-mounted panels and a stacked mobile menu.
navbar60
Full mega-menu navbar — bold links open three-column panels with parenthetical section labels, descriptions and a footer link. SSR-mounted panels, pill CTA and a stacked mobile menu.
navbar19
Full-width mega menu navbar with multi-column product dropdowns, icon-enhanced links, and promotional cards. Perfect for SaaS products and enterprise sites with extensive feature offerings.
navbar50
Detached floating navbar card with a square-mark wordmark, uppercase links and a compact seal CTA — the mobile menu unfolds inside the card.