MantleUI

Tabs

A compound tab component with roving tabindex for keyboard navigation. Use Arrow keys to move between tabs, Home/End to jump to first/last.

Basic

Keyboard Navigation

Focus a tab and use to navigate, Home End to jump. Disabled tabs are skipped.

Pill Variant

A rounded pill-style tab list with a sliding background indicator.

With Separator

Add <Tabs.Separator /> between triggers to display separator lines.

Colors

Vertical

Sidebar-style tabs with content on the right. Uses ArrowUp/Down for keyboard navigation.

Vertical Pill

Props

value
string

The currently active tab value (controlled).

defaultValue
string

The initially active tab value (uncontrolled).

onValueChange
(value: string) => void

Called when the active tab changes.

color"blue"
"blue" | "red" | "green" | "yellow" | "purple" | "neutral" | string

Accent color for the active tab indicator.

variant"underline"
"underline" | "pill"

Visual variant. Pill uses a rounded container with sliding background.

orientation"horizontal"
"horizontal" | "vertical"

Layout orientation. Vertical renders tabs as a sidebar.

--mantle-bgtheme default
CSS variable

Override the background color via style. e.g. style={{ "--mantle-bg": "#1a1a2e" }}

--mantle-bordertheme default
CSS variable

Override the border color via style. Set to "transparent" to remove. e.g. style={{ "--mantle-border": "#e94560" }}

--mantle-texttheme default
CSS variable

Override the text color via style. e.g. style={{ "--mantle-text": "#ffffff" }}

--mantle-ringaccent
CSS variable

Override the focus ring color via style. e.g. style={{ "--mantle-ring": "#e94560" }}

© 2026 MantleUI. All rights reserved.