Tab-Style Navbar

About this block

Tab-Style NavbarPRO

Navbar with tab-style navigation supporting underline or pill active states for app-like navigation. Perfect for dashboards and admin panels with section-based interfaces.

An app-shell navbar built for section-based interfaces, where each nav item renders as a tab instead of a plain link. A tabStyle prop switches the whole row between an underlined-tab look (bottom border on hover/active, border removed from the navbar itself) and a rounded pill look with a filled active pill. Each NavItem carries its own isActive flag rather than the navbar comparing against a separate "current" prop.

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

Base UI flavor

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

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

Quick start

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

tsx
import { Navbar36, navbar36Demo } from "@/components/beste/block/navbar36";

export default function Layout() {
  return <Navbar36 {...navbar36Demo} />;
}

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

tsx
import { Navbar36 } from "@/components/beste/block/navbar36";

export default function Layout() {
  return (
    <Navbar36
      logo={{ text: "TabNav", href: "/" }}
      navItems={[
        { label: "Dashboard", href: "/dashboard", isActive: true },
        { label: "Projects", href: "/projects" },
        { label: "Settings", href: "/settings" },
      ]}
      buttons={[{ label: "Upgrade", variant: "default", href: "/upgrade" }]}
      tabStyle="pill"
    />
  );
}

Props

PropTypeDefaultDescription
logo{ text: string; href?: string }Brand text and link, shown at the left
navItemsNavItem[][]Tab items rendered in the center/right nav row
buttonsArray<{ label: string; href?: string; variant?: "default" | "outline" | "ghost" }>[]Action buttons rendered right of the tabs, repeated in the mobile panel
tabStyle"underline" | "pill""underline"Switches the tab visual treatment for the whole row
classNamestringExtra classes for the outer <nav>
ts
type NavItem = {
  label: string;
  href?: string;
  isActive?: boolean;
};

Behavior notes

  • tabStyle is read once per render to pick a Tailwind class set: underline adds a bottom-border pseudo-element (after:) on the active tab and on hover of inactive tabs; pill fills the active tab with bg-primary and rounds it fully, and drops the navbar's own bottom border since the pills carry their own shape.
  • Active state comes entirely from each item's own isActive, not from string-matching a separate prop, so multiple call sites can share the same navItems array and only toggle the flag.
  • The navbar is sticky top-0; desktop tabs and buttons show at lg and above.
  • Below lg, a hamburger button toggles a conditionally rendered panel ({mobileMenuOpen && ...}) that repeats the nav items (active ones get a tinted background) and stacks the buttons full-width; tapping a link closes the panel.

More Navigation blocks

View all Navigation
PRO

navbar51

Tab Bar Navbar

Two-row navbar with brand, availability status and seal CTA on top, and an underlined active-tab link row that scrolls horizontally on mobile.

PRO

navbar71

Pill Menu Navbar

A light editorial navbar with a lowercase wordmark, soft muted nav pills that reveal hover dropdowns, a solid accent call to action, and a collapsing mobile menu.

PRO

navbar35

Sliding Indicator Navbar

Responsive navbar with animated sliding underline indicator that follows hover and highlights active navigation item. Perfect for SaaS dashboards and apps wanting polished micro-interactions.

PRO

navbar32

Search-Focused Navbar

Navbar with prominent search input, navigation links, and action button for search-driven experiences. Perfect for marketplaces, directories, and content platforms prioritizing discovery.

PRO

navbar39

Command Palette Navbar

Developer-focused navbar with Cmd+K command palette for keyboard-driven navigation and actions. Perfect for developer tools, documentation sites, and power-user applications.

PRO

navbar31

Animated Underline Navbar

Minimal navbar with configurable animated underline effects (slide, grow, or fade) on navigation links. Perfect for portfolio sites and creative agencies wanting subtle hover animations.