Tabs

Tabs

Tabbed interface for organizing content into separate views.

Based on APG Tabs Pattern.

Demo

Make changes to your account here. Update your name, email, and profile picture.

Usage

let selected = @resource.signal(0)

@styled_tabs.tabs(
  [
    @styled_tabs.tab_item("account", "Account", [@luna.text("Account content")]),
    @styled_tabs.tab_item("password", "Password", [@luna.text("Password content")]),
  ],
  selected,
  aria_label="Settings tabs",
)

Props

PropTypeDefaultDescription
itemsArray[TabItem]-Tab items
selectedSignal[Int]-Index of selected tab
aria_labelString?NoneLabel for tab list
classString?NoneAdditional CSS class

BEM Classes

ClassDescription
.tabsRoot container
.tabs__listTab button list
.tabs__tabIndividual tab button
.tabs__panelTab content panel

States

StateDescription
data-state="active"Currently selected tab
data-state="inactive"Unselected tab

Keyboard

KeyAction
Arrow LeftPrevious tab (wraps)
Arrow RightNext tab (wraps)
HomeFirst tab
EndLast tab