Tabs

A set of layered sections of content that are displayed one at a time.

Default

Click a tab to switch content. The first tab is selected by default.

With Default Value

The second tab is pre-selected.

With Disabled Tab

The middle tab is disabled and cannot be selected.

Manual Activation

Tabs are activated only when clicked or when pressing Enter/Space. Arrow keys move focus without activating.

Keyboard Navigation

  • Arrow Left/Right: Move focus between tabs (for horizontal tabs)
  • Arrow Up/Down: Move focus between tabs (for vertical tabs)
  • Home: Move focus to first tab
  • End: Move focus to last tab
  • Enter/Space: Activate tab (in manual mode)
Open Markdown
FreeTabs

Tabbed content regions.

Install with the Proa CLI
proa ui add tabs

Installs the reviewed component source, dependencies, shared support files, and required legal notices.

CLI and registry setup
recipe.rs
// SPDX-FileCopyrightText: 2026 Proa Labs, Inc.
// SPDX-License-Identifier: MIT OR Apache-2.0

//! Tabs recipe — typed root orientation and named slot classes.
//!
//! The root resolves orientation once. Descendant slots inherit its visual
//! direction through the semantic `group/tabs` root and never resolve an
//! independent orientation style.

use crate::tw_join;
use proa_core::shared::attr_value::AttrValue;
use proa_core::{DataLoader, WebContext, WriteBuf, WriteError};

mod base {
    use super::*;

    pub const TABS_ROOT: &str = "group/tabs";

    pub const TABS_LIST: &str = tw_join!(
        "inline-flex",
        "h-9",
        "items-center",

Search

Type at least 2 characters

Customize

Make it yours

Palette

Radius

Overview
Components
Settings

Build your own

Themed Proa UI surface

Preview
Components52
RecipesTyped
customer-portal