An accessible dropdown menu component built on Base UI with smooth Motion spring scale and submenu slide animations.
Made by AxylAn animated dropdown menu with spring entrance transitions, nested submenus, checkable items, radio items, shortcuts, and destructive styling.
The same dropdown menu pattern rendered right-to-left with Base UI DirectionProvider.
Use Base UI's DirectionProvider together with dir="rtl" on the demo
container to render the menu from right to left. The provider keeps popup
positioning and keyboard navigation aware of the text direction.
| Prop | Type | Default |
|---|---|---|
open? | boolean | - |
defaultOpen? | boolean | false |
onOpenChange? | (open: boolean) => void | - |
| Prop | Type | Default |
|---|---|---|
align? | "start" | "center" | "end" | "start" |
alignOffset? | number | 0 |
side? | "top" | "right" | "bottom" | "left" | "inline-start" | "inline-end" | "bottom" |
sideOffset? | number | 4 |
disableAnimation? | boolean | false |
positionerClassName? | string | - |
| Prop | Type | Default |
|---|---|---|
disabled? | boolean | false |
inset? | boolean | false |
variant? | "default" | "destructive" | "default" |
| Prop | Type | Default |
|---|---|---|
checked? | boolean | - |
onCheckedChange? | (checked: boolean) => void | - |
disabled? | boolean | false |
inset? | boolean | false |
| Prop | Type | Default |
|---|---|---|
value? | string | - |
disabled? | boolean | false |
inset? | boolean | false |
| Prop | Type | Default |
|---|---|---|
disabled? | boolean | false |
inset? | boolean | false |
| Prop | Type | Default |
|---|---|---|
align? | "start" | "center" | "end" | "start" |
alignOffset? | number | -4 |
side? | "top" | "right" | "bottom" | "left" | "inline-start" | "inline-end" | "right" |
sideOffset? | number | 0 |
disableAnimation? | boolean | false |
Built by Axyl. A motion-first component registry for React.
Last updated: 9/11/2026