Circular Dock Menu

Use Circular Dock Menu for a compact set of related actions that can expand from one trigger. Items fan into a radial arc and the menu closes on outside interaction, Escape, or item selection.

Preview

Reduce motion:Off
Tune:Off
Inspect

Installation

Basic usage

TypeScript
dock-menu.tsx

Examples

Use controlled open state when another control needs to open or close the menu. Keep the item count short so the radial layout remains easy to scan.

Usage

API

PropertyTypeDefaultDescription
itemsDockMenuItem[]—Items rendered as arc pills when the menu is open.
openboolean—Controlled open state.
defaultOpenbooleanfalseInitial open state for uncontrolled usage.
onOpenChange(open: boolean) => void—Called when the menu opens or closes.
stiffnessnumber420Spring stiffness for the open/close animation.
dampingnumber32Spring damping for the open/close animation.
classNamestring—Additional CSS classes for the root container.

Accessibility

The trigger can be reached by keyboard, Escape closes the menu, and focus returns to the trigger after dismissal. Give every item a short, specific label.

Styling

Adjust item content and the motion configuration to match the action group. Reduced-motion preferences remove the radial travel.

Contact

Found a bug or need help using this component? Open an issue on GitHub.

License & Usage

Sona UI is available under the MIT license. You may use, modify, and distribute this component in personal and commercial projects.

Was this page helpful?

Your response helps us improve component docs.