A floating action button that reveals a set of quick actions on click.
Made by raouf.codesOverview
The SpeedDial component provides a mobile-friendly floating action button that expands to reveal a set of quick action items with smooth animations and keyboard accessibility.
Subcomponents & hooks:
SpeedDial— root component (context provider, keyboard handling)SpeedDial.Trigger— toggle button to open/close the menuSpeedDial.Menu— animated container for action itemsSpeedDial.Item— individual action item with icon and linkuseSpeedDial()— hook for custom integrations
Installation
Usage
Basic
Obfuscated Links
For email protection or other anti-scraping needs, use base64-encoded hrefs with the obfuscated flag:
Using useSpeedDial() for custom items
API Reference
SpeedDial (root)
| Prop | Type | Default |
|---|---|---|
orientation? | enum | "vertical" |
direction? | enum | "reverse" |
size? | enum | "md" |
intent? | enum | "primary" |
styling? | enum | "solid" |
shape? | enum | "pill" |
elevation? | enum | "raised" |
defaultOpen? | boolean | false |
className? | string | - |
SpeedDial.Trigger
The trigger button that opens/closes the menu. Inherits variant props from the root.
| Prop | Type | Default |
|---|---|---|
children | React.ReactNode | - |
className? | string | - |
...props? | ButtonProps | - |
SpeedDial.Menu
The animated container for speed dial items.
| Prop | Type | Default |
|---|---|---|
children | React.ReactNode | - |
className? | string | - |
SpeedDial.Item
Individual action item with icon and link.
| Prop | Type | Default |
|---|---|---|
item | SpeedDialItemData | - |
index? | number | 0 |
className? | string | - |
...props? | ComponentProps<"a"> | - |
Accessibility
- Full keyboard navigation support (Escape to close)
- Proper ARIA attributes for menu role
- Focus management on open/close
- Screen reader friendly labels
Credits
Built by raouf.codes. The source code is available on GitHub.
Last updated: 2/27/2026