Button Group

A Tailwind CSS button group component for grouping related buttons together.

<div class="btn-group">
  <button class="btn">Left</button>
  <button class="btn">Center</button>
  <button class="btn">Right</button>
</div>

Sizes

Button groups work with all button sizes.

<div class="flex flex-col gap-4">
  <div class="btn-group">
    <button class="btn btn-sm">Left</button>
    <button class="btn btn-sm">Center</button>
    <button class="btn btn-sm">Right</button>
  </div>
  <div class="btn-group">
    <button class="btn">Left</button>
    <button class="btn">Center</button>
    <button class="btn">Right</button>
  </div>
  <div class="btn-group">
    <button class="btn btn-lg">Left</button>
    <button class="btn btn-lg">Center</button>
    <button class="btn btn-lg">Right</button>
  </div>
</div>

Vertical

Stack buttons vertically using btn-group-vertical.

<div class="btn-group btn-group-vertical">
  <button class="btn btn-icon" aria-label="Increase">
    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="M12 5v14"/></svg>
  </button>
  <button class="btn btn-icon" aria-label="Decrease">
    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/></svg>
  </button>
</div>

With separator

Add visual separation between buttons using btn-group-separator. Recommended for variants without borders like btn-secondary.

<div class="btn-group">
  <button class="btn btn-secondary">Save</button>
  <div class="btn-group-separator"></div>
  <button class="btn btn-secondary btn-icon" aria-label="More options">
    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>
  </button>
</div>

With text addon

Use btn-group-text for non-interactive text labels alongside inputs.

https://
<div class="btn-group">
  <span class="btn-group-text">https://</span>
  <input class="input" placeholder="example.com" />
</div>

How it works

The button group component uses .btn-group as a container to visually connect related buttons.

Structure

Wrap buttons in a .btn-group container:

<div class="btn-group">
  <button class="btn">Left</button>
  <button class="btn">Right</button>
</div>

Vertical layout

Add .btn-group-vertical for a vertical stack:

<div class="btn-group btn-group-vertical">
  <button class="btn">Top</button>
  <button class="btn">Bottom</button>
</div>

Class reference

ClassDescription
btn-groupContainer for grouping buttons
btn-group-horizontalHorizontal layout (default)
btn-group-verticalVertical layout
btn-group-separatorVisual separator between buttons
btn-group-textNon-interactive text addon