Strongtie Design System
Getting StartedComponents

Command Palette

Search for a command to run...

Getting Started
  • Introduction
  • Setup Guide
  • Package Installation
  • Code Quality Setup
  • Migration Guide
  • Resources
Registry
  • Getting Started
  • Combobox
  • Datepicker
  • MultiSelect
  • Tab Nav
  • Tree
Guides
  • Framework Recommendations
Foundations
  • States
  • Variables
Components
  • Accordion
  • Alert
  • Alert Dialog
  • Avatar
  • Badge
  • Breadcrumb
  • Button
  • Button Group
  • Calendar
  • Card
  • Carousel
  • Chart
  • Checkbox
  • Collapsible
  • Command
  • Combobox
  • Context Menu
  • Date Picker
  • Dialog
  • Drawer
  • Dropdown Menu
  • Empty
  • Field
  • Hover Card
  • Input
  • Input Group
  • Item
  • Kbd
  • Label
  • Menubar
  • Multi Select
  • Navigation Menu
  • Pagination
  • Popover
  • Progress
  • Radio Group
  • Scroll Area
  • Select
  • Separator
  • Sheet
  • Sidebar
  • Skeleton
  • Slider
  • Switch
  • Table
  • Tabs
  • Tab Nav
  • Textarea
  • Toaster
  • Toggle
  • Toggle Group
  • Tooltip
  • Tree
2026 Simpson Strong-Tie
  1. Docs
  2. Registry
  3. Tab Nav

Tab Nav

PreviousNext

A horizontal navigation component that displays links in a tab-like interface.

TabNav provides a clean, organized way to present navigation options in a horizontal row with tab-like styling. Unlike Tabs which switch between content panels, TabNav is used for page-level navigation where each item typically links to a different page or section. It's commonly used in application headers, settings panels, or anywhere horizontal navigation with tab aesthetics is needed.

Built on top of Radix UI's NavigationMenu primitive with keyboard navigation support (Arrow keys to move between items, Enter/Space to activate), focus management, and accessibility features including proper ARIA attributes.

Registry Component: This component is available from the Strongtie registry. Add it using: npx shadcn@latest add @strongtie/tab-nav

Example

  • Overview
  • Projects
  • Settings
  • Disabled
"use client"

import { TabNav, TabNavLink } from "@/components/ui/tab-nav"

export function TabNavDefault() {
  return (
    <TabNav>
      <TabNavLink href="/overview" active>
        Overview
      </TabNavLink>
      <TabNavLink href="/projects">Projects</TabNavLink>
      <TabNavLink href="/settings">Settings</TabNavLink>
      <TabNavLink href="/disabled" disabled>
        Disabled
      </TabNavLink>
    </TabNav>
  )
}

Installation

Add this component from the Strongtie registry:

npx shadcn@latest add @strongtie/tab-nav

Or by URL:

npx shadcn@latest add https://design.strongtie.io/r/tab-nav.json

Usage

import { TabNav, TabNavLink } from "@/components/ui/tab-nav"

Components

This module exports the following components:

  • TabNav
  • TabNavLink

Props

<TabNavLink>

PropTypeDefaultDescription
activeboolean-Marks the link as active with a bottom border indicator and foreground text.
asChildboolean-Render as a child element instead of an anchor, for use with routers.
disabledboolean-Disables the link, preventing interaction and reducing opacity.

Examples

Default

  • Overview
  • Projects
  • Settings
  • Disabled
"use client"

import { TabNav, TabNavLink } from "@/components/ui/tab-nav"

export function TabNavDefault() {
  return (
    <TabNav>
      <TabNavLink href="/overview" active>
        Overview
      </TabNavLink>
      <TabNavLink href="/projects">Projects</TabNavLink>
      <TabNavLink href="/settings">Settings</TabNavLink>
      <TabNavLink href="/disabled" disabled>
        Disabled
      </TabNavLink>
    </TabNav>
  )
}

Disabled

  • Overview
  • Analytics
  • Reports (Disabled)
  • Settings
"use client"

import { TabNav, TabNavLink } from "@/components/ui/tab-nav"

export function TabNavDisabled() {
  return (
    <TabNav>
      <TabNavLink href="#" active>
        Overview
      </TabNavLink>
      <TabNavLink href="#">Analytics</TabNavLink>
      <TabNavLink href="#" disabled>
        Reports (Disabled)
      </TabNavLink>
      <TabNavLink href="#">Settings</TabNavLink>
    </TabNav>
  )
}

Tabs (Stateful)

Use onClick to manage active state locally instead of navigating to a URL.

Active tab: Overview
"use client"

import { useState } from "react"
import { TabNav, TabNavLink } from "@/components/ui/tab-nav"

const tabs = ["Overview", "Projects", "Settings"] as const

export function TabNavTabs() {
  const [activeTab, setActiveTab] = useState<string>("Overview")

  return (
    <div>
      <TabNav>
        {tabs.map((tab) => (
          <TabNavLink key={tab} asChild active={activeTab === tab}>
            <button type="button" onClick={() => setActiveTab(tab)}>
              {tab}
            </button>
          </TabNavLink>
        ))}
      </TabNav>
      <div className="text-muted-foreground p-4 text-sm">
        Active tab: {activeTab}
      </div>
    </div>
  )
}
Multi SelectTree

On This Page

ExampleInstallationUsageComponentsProps<TabNavLink>ExamplesDefaultDisabledTabs (Stateful)

Contribute

  • Report an issue
  • Request a feature
  • Edit this page