Heading fonts

Choose a Google Fonts family. The selected font loads from Google Fonts; Inter and Geist Serif are bundled locally.

Search Reflow

Keyboard shortcuts

Use these keys while you are not typing in a field.

Search⌘K
Cycle themeT
Cycle accentA
Cycle heading fontF
Cycle radiusR
Cycle sizeS
Cycle iconsI
Cycle hoverH
Toggle navigation[
Toggle properties]
Previous / next demo slide←→
Show shortcuts?
Skip to content
Open navigationClose navigation

Make them yours

Theme
SystemT
Accent
BlueA
Heading font
InterF
Radius
RoundedR
Size
DefaultS
Icons
LucideI
Hover
FluidH

Playground variant

Tabs

Tabs

Switch between related views using a moving selection indicator and arrow-key navigation.

Installation

Import from the Reflow workspace package.

Playground

Open demo

Teamspaces content goes here.

With Icons

Teamspaces content goes here.

Active Label

Teamspaces content goes here.

Underline

Teamspaces content goes here.

API Reference

Public props for the Reflow implementation. Native controls also accept their standard HTML attributes and Remix event mixes.

Tabs

PropTypeDefaultDescription
label*string—Accessible name or visible label for the control.
items*readonly TabItem[]—Items and their content.
defaultValuestring—Initial value for an uncontrolled component.
valuestring—Current value when controlled by the parent.
onValueChange((value: string) => void)—Called when the selected value changes.
variant"pill" | "underline"—Visual or layout treatment.
activeLabelboolean—Shows the label only for the active tab.
size"default" | "compact"—Control density or icon-button dimensions.

TabItem

PropTypeDefaultDescription
value*string—Unique identifier for the tab and its associated panel.
label*string—Text of the tab trigger.
panelRemixNode—Content of the selected tab panel.
iconRemixNode—Icon content.
disabledboolean—Prevents interaction and conveys the disabled state.