Skip to content

Split Button

A primary action button joined with a dropdown trigger. The left half fires the main action; the right half (chevron) emits a toggle event for you to open a menu or dropdown.

Basic

Tailwind v4
vue
<script setup>
const open = ref(false)
</script>

<SplitButton :open="open" @click="save" @toggle="open = !open">
  Save
</SplitButton>

Variants

Tailwind v4
vue
<SplitButton variant="primary" @click="save" @toggle="openMenu">Save</SplitButton>
<SplitButton variant="secondary" @click="export" @toggle="openMenu">Export</SplitButton>
<SplitButton variant="danger" @click="delete" @toggle="openMenu">Delete</SplitButton>

Sizes

Tailwind v4
vue
<SplitButton variant="secondary" size="sm" @click="save" @toggle="open = !open">Small</SplitButton>

Loading

Tailwind v4
vue
<SplitButton :loading="saving" @click="save" @toggle="open = !open">
  Save changes
</SplitButton>

Disabled

Tailwind v4
vue
<SplitButton :disabled="!canSave" @click="save" @toggle="open = !open">
  Save
</SplitButton>

Props

PropTypeDefaultDescription
variant'primary' | 'secondary' | 'ghost' | 'danger''primary'Visual style
size'sm' | 'md' | 'lg''md'Button size
loadingbooleanfalseShow spinner, disable both halves
disabledbooleanfalseDisable both halves
openbooleanfalseControls chevron rotation (pass true when dropdown is open)

Events

EventPayloadDescription
clickMouseEventMain button was clicked
toggleMouseEventChevron button was clicked — open/close your dropdown

Slots

SlotDescription
defaultMain action label

Private — Jetpack Labs internal use only