Speed Dial
When pressed, a floating action button can fling out related actions. The button should remain on screen after the menu is invoked.Basic Speed Dial
The Speed Dial component renders a floating action button that displays related actions.Controlled Speed Dial
Control the open state with theopen prop.
Direction
The actions can open in different directions.Custom Close Icon
Provide a custom icon to display when the Speed Dial is open.Persistent Action Tooltips
Make tooltips always visible without hovering.Hidden Speed Dial
Hide the Speed Dial on scroll or based on conditions.Custom Fab Props
Customize the floating action button.SpeedDial Props
ariaLabel
- Type:
string - Required: Yes
- Description: The aria-label of the button element. Also used to provide the id for the SpeedDial element and its children
icon
- Type:
React.ReactNode - Description: The icon to display in the SpeedDial Fab. The SpeedDialIcon component provides a default icon with animation
openIcon
- Type:
React.ReactNode - Description: The icon to display in the SpeedDial Fab when the SpeedDial is open
direction
- Type:
'up' | 'down' | 'left' | 'right' - Default:
'up' - Description: The direction the actions open relative to the floating action button
open
- Type:
boolean - Description: If
true, the component is shown. Use this for controlled components
onOpen
- Type:
(event: React.SyntheticEvent, reason: 'toggle' | 'focus' | 'mouseEnter') => void - Description: Callback fired when the component requests to be open
onClose
- Type:
(event: React.SyntheticEvent, reason: 'toggle' | 'blur' | 'mouseLeave' | 'escapeKeyDown') => void - Description: Callback fired when the component requests to be closed
hidden
- Type:
boolean - Default:
false - Description: If
true, the SpeedDial is hidden
FabProps
- Type:
Partial<FabProps> - Default:
{} - Description: Props applied to the Fab element
transitionDuration
- Type:
number | { appear?: number, enter?: number, exit?: number } - Default:
{ enter: theme.transitions.duration.enteringScreen, exit: theme.transitions.duration.leavingScreen } - Description: The duration for the transition, in milliseconds
slots
- Type:
{ root?: React.ElementType, transition?: React.ElementType } - Description: The components used for each slot inside the SpeedDial
slotProps
- Type:
{ root?: object, transition?: object } - Description: The props used for each slot inside the SpeedDial
sx
- Type:
SxProps<Theme> - Description: System prop for defining CSS styles
SpeedDialAction Props
icon
- Type:
React.ReactNode - Description: The icon to display in the SpeedDial Fab
delay
- Type:
number - Default:
0 - Description: Adds a transition delay to allow a series of SpeedDialActions to be animated
slotProps
- Type:
{ fab?: object, tooltip?: object, staticTooltip?: object, staticTooltipLabel?: object } - Description: Props forwarded to the different slots. The
tooltipslot accepts all Tooltip props, includingtitlefor the tooltip text andopenfor persistent tooltips
Accessibility
- The SpeedDial has
role="menu"with proper ARIA attributes - The main Fab button has
aria-haspopup="true"andaria-expandedstate - Each action is properly labeled and keyboard accessible
- Pressing Escape closes the SpeedDial
- Arrow keys navigate between actions when open