# `ExRatatui.Widgets.Tabs`
[🔗](https://github.com/mcass19/ex_ratatui/blob/v0.7.1/lib/ex_ratatui/widgets/tabs.ex#L1)

A tab bar widget for switching between views.

## Fields

  * `:titles` - list of tab title strings
  * `:selected` - zero-based index of the selected tab, or `nil` for no selection
  * `:style` - `%ExRatatui.Style{}` for non-selected tabs
  * `:highlight_style` - `%ExRatatui.Style{}` for the selected tab
  * `:divider` - separator string between tabs (default: `nil`; the Rust backend uses `"│"`)
  * `:block` - optional `%ExRatatui.Widgets.Block{}` container
  * `:padding` - `{left, right}` padding around each tab title (default: `{1, 1}`)

## Examples

    iex> %ExRatatui.Widgets.Tabs{titles: ["Tab 1", "Tab 2", "Tab 3"], selected: 0}
    %ExRatatui.Widgets.Tabs{
      titles: ["Tab 1", "Tab 2", "Tab 3"],
      selected: 0,
      style: %ExRatatui.Style{},
      highlight_style: %ExRatatui.Style{},
      divider: nil,
      block: nil,
      padding: {1, 1}
    }

# `t`

```elixir
@type t() :: %ExRatatui.Widgets.Tabs{
  block: ExRatatui.Widgets.Block.t() | nil,
  divider: String.t() | nil,
  highlight_style: ExRatatui.Style.t(),
  padding: {non_neg_integer(), non_neg_integer()},
  selected: non_neg_integer() | nil,
  style: ExRatatui.Style.t(),
  titles: [String.t()]
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
