Skip to content

SpeedDial

A floating action button that expands to reveal a set of related actions.

Basic usage

The default SpeedDial is fixed to the bottom-right corner of the page and expands upward.

Tailwind v4
vue
<SpeedDial>
  <SpeedDialAction label="Edit">
    <template #icon>✏️</template>
  </SpeedDialAction>
  <SpeedDialAction label="Share">
    <template #icon>🔗</template>
  </SpeedDialAction>
  <SpeedDialAction label="Delete">
    <template #icon>🗑️</template>
  </SpeedDialAction>
</SpeedDial>

Direction: down

Actions expand downward from the FAB.

Tailwind v4
vue
<SpeedDial direction="down" icon="+">
  <SpeedDialAction label="New file">
    <template #icon>📄</template>
  </SpeedDialAction>
  <SpeedDialAction label="New folder">
    <template #icon>📁</template>
  </SpeedDialAction>
  <SpeedDialAction label="Upload">
    <template #icon>⬆️</template>
  </SpeedDialAction>
</SpeedDial>

Direction: left

Actions expand to the left of the FAB.

Tailwind v4
vue
<SpeedDial direction="left" icon="≡">
  <SpeedDialAction label="Copy">
    <template #icon>📋</template>
  </SpeedDialAction>
  <SpeedDialAction label="Cut">
    <template #icon>✂️</template>
  </SpeedDialAction>
  <SpeedDialAction label="Paste">
    <template #icon>📌</template>
  </SpeedDialAction>
</SpeedDial>

Direction: right

Actions expand to the right of the FAB.

Tailwind v4
vue
<SpeedDial direction="right" icon="+">
  <SpeedDialAction label="Bold">
    <template #icon>B</template>
  </SpeedDialAction>
  <SpeedDialAction label="Italic">
    <template #icon>I</template>
  </SpeedDialAction>
  <SpeedDialAction label="Link">
    <template #icon>🔗</template>
  </SpeedDialAction>
</SpeedDial>

Fixed positioning

Use type="fixed" (the default) to pin the SpeedDial to a corner of the viewport. The placement prop controls which corner.

vue
<!-- Fixed to bottom-right (default) -->
<SpeedDial type="fixed" placement="bottom-right">
  ...
</SpeedDial>

<!-- Fixed to bottom-left -->
<SpeedDial type="fixed" placement="bottom-left">
  ...
</SpeedDial>

<!-- Fixed to top-right -->
<SpeedDial type="fixed" placement="top-right">
  ...
</SpeedDial>

SpeedDial Props

PropTypeDefaultDescription
iconstring'+'Icon or text shown on the main FAB button
placement'bottom-right' | 'bottom-left' | 'top-right' | 'top-left''bottom-right'Corner to pin to (applies when type="fixed")
direction'up' | 'down' | 'left' | 'right''up'Direction actions expand from the FAB
type'fixed' | 'relative''fixed'fixed pins to viewport; relative positions within parent

SpeedDialAction Props

PropTypeDefaultDescription
labelstringrequiredAccessible label and default tooltip text
tooltipstringsame as labelCustom tooltip text override

SpeedDialAction Slots

SlotDescription
iconIcon content rendered inside the action button

Keyboard

  • Escape — closes the SpeedDial when open
  • Clicking outside the component closes it

Private — Jetpack Labs internal use only