Toggle Group

A group of two-state buttons that can be toggled on or off. Supports single select (radio-like) and multi select modes.

Single Select

Only one item can be active at a time. Click an active item to deselect it.

<div class="sui-toggle-group" data-sui-toggle="single">
  <button class="sui-toggle-group-item active" aria-pressed="true">Left</button>
  <button class="sui-toggle-group-item" aria-pressed="false">Center</button>
  <button class="sui-toggle-group-item" aria-pressed="false">Right</button>
</div>

Multiple Select

Multiple items can be active simultaneously.

<div class="sui-toggle-group" data-sui-toggle="multi">
  <button class="sui-toggle-group-item active" aria-pressed="true">Bold</button>
  <button class="sui-toggle-group-item active" aria-pressed="true">Italic</button>
  <button class="sui-toggle-group-item" aria-pressed="false">Underline</button>
  <button class="sui-toggle-group-item" aria-pressed="false">Strikethrough</button>
</div>

Outline

Add sui-toggle-group-outline for a flat bordered style. Active items get a filled primary background.

<!-- Outline single select -->
<div class="sui-toggle-group sui-toggle-group-outline" data-sui-toggle="single">
  <button class="sui-toggle-group-item active" aria-pressed="true">Day</button>
  <button class="sui-toggle-group-item" aria-pressed="false">Week</button>
  <button class="sui-toggle-group-item" aria-pressed="false">Month</button>
  <button class="sui-toggle-group-item" aria-pressed="false">Year</button>
</div>

<!-- Outline multi select -->
<div class="sui-toggle-group sui-toggle-group-outline" data-sui-toggle="multi">
  <button class="sui-toggle-group-item active">S</button>
  <button class="sui-toggle-group-item">M</button>
  <button class="sui-toggle-group-item active">T</button>
  <button class="sui-toggle-group-item">W</button>
  <button class="sui-toggle-group-item">T</button>
  <button class="sui-toggle-group-item active">F</button>
  <button class="sui-toggle-group-item">S</button>
</div>

With Icons

Use sui-toggle-icon on items for square icon-only toggles. Icons use inline SVG.

<!-- Icon-only single select -->
<div class="sui-toggle-group" data-sui-toggle="single">
  <button class="sui-toggle-group-item sui-toggle-icon active" aria-pressed="true" aria-label="Align left">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="2" y1="3" x2="14" y2="3"/><line x1="2" y1="6.5" x2="10" y2="6.5"/><line x1="2" y1="10" x2="14" y2="10"/><line x1="2" y1="13.5" x2="10" y2="13.5"/></svg>
  </button>
  <button class="sui-toggle-group-item sui-toggle-icon" aria-pressed="false" aria-label="Align center">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="2" y1="3" x2="14" y2="3"/><line x1="4" y1="6.5" x2="12" y2="6.5"/><line x1="2" y1="10" x2="14" y2="10"/><line x1="4" y1="13.5" x2="12" y2="13.5"/></svg>
  </button>
  <button class="sui-toggle-group-item sui-toggle-icon" aria-pressed="false" aria-label="Align right">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="2" y1="3" x2="14" y2="3"/><line x1="6" y1="6.5" x2="14" y2="6.5"/><line x1="2" y1="10" x2="14" y2="10"/><line x1="6" y1="13.5" x2="14" y2="13.5"/></svg>
  </button>
</div>

<!-- Icon multi select (Bold / Italic / Underline) -->
<div class="sui-toggle-group" data-sui-toggle="multi">
  <button class="sui-toggle-group-item sui-toggle-icon active" aria-pressed="true" aria-label="Bold">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M4 2h5a3.5 3.5 0 0 1 .5 6.96A3.5 3.5 0 0 1 10 16H4V2zm2 2v4h3a1.5 1.5 0 1 0 0-3H6zm0 6v4h4a1.5 1.5 0 1 0 0-3H6z"/></svg>
  </button>
  <button class="sui-toggle-group-item sui-toggle-icon" aria-pressed="false" aria-label="Italic">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M6 2h6v2h-2.2l-2.6 8H9v2H3v-2h2.2l2.6-8H6V2z"/></svg>
  </button>
  <button class="sui-toggle-group-item sui-toggle-icon active" aria-pressed="true" aria-label="Underline">
    <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M4 2v6a4 4 0 0 0 8 0V2h2v6a6 6 0 0 1-12 0V2h2zM2 15h12v1.5H2V15z"/></svg>
  </button>
</div>

Sizes

Add sui-toggle-group-sm or sui-toggle-group-lg for size variants.

<!-- Small -->
<div class="sui-toggle-group sui-toggle-group-sm" data-sui-toggle="single">
  <button class="sui-toggle-group-item active">Option A</button>
  <button class="sui-toggle-group-item">Option B</button>
</div>

<!-- Default -->
<div class="sui-toggle-group" data-sui-toggle="single">
  <button class="sui-toggle-group-item active">Option A</button>
  <button class="sui-toggle-group-item">Option B</button>
</div>

<!-- Large -->
<div class="sui-toggle-group sui-toggle-group-lg" data-sui-toggle="single">
  <button class="sui-toggle-group-item active">Option A</button>
  <button class="sui-toggle-group-item">Option B</button>
</div>

Vertical

Add sui-toggle-group-vertical to stack items vertically.

<div class="sui-toggle-group sui-toggle-group-vertical" data-sui-toggle="single">
  <button class="sui-toggle-group-item active">List View</button>
  <button class="sui-toggle-group-item">Grid View</button>
  <button class="sui-toggle-group-item">Board View</button>
</div>

Disabled Items

Add disabled to individual items to prevent interaction.

<div class="sui-toggle-group" data-sui-toggle="single">
  <button class="sui-toggle-group-item active">Available</button>
  <button class="sui-toggle-group-item">Available</button>
  <button class="sui-toggle-group-item" disabled>Unavailable</button>
</div>

Delete this item?

This action cannot be undone. This will permanently delete the item and remove all associated data.