Anatomy
Note: Image not to scale
- Trigger
- Item label
- Submenu indicator
- Group label
- Group divider
- Item icon (optional)
- Selected item
- Unselected item
Options
Density
The following options can be applied to specify the density of the items: default, loose, and compact.
Trigger
The Action List can be triggered with a button, a link, an icon, or similar visual cue.
Behavior
Disabled
Items display background color ‘$faint’ on mouse over
Hover
Items display background color ‘$faint’ on mouse over
Submenu
Action menu supports submenus with up to three levels of nesting. Access a submenu by hovering over a menu item with a submenu indicator (chevron), or by using keyboard navigation
Accessibility
Keyboard controls
| Key | Description | 
|---|---|
| Space | When focus is on DropdownMenu.Trigger, opens the dropdown menu and focuses the first item. When focus is on an item, activates the focused item. | 
| Enter | When focus is on DropdownMenu.Trigger, opens the dropdown menu and focuses the first item. When focus is on an item, activates the focused item. | 
| ArrowDown | When focus is on DropdownMenu.Trigger, opens the dropdown menu. When focus is on an item, moves focus to the next item. | 
| ArrowUp | When focus is on an item, moves focus to the previous item. | 
| ArrowRight, ArrowLeft | When focus is on DropdownMenu.SubTrigger, opens or closes the submenu depending on reading direction. | 
| Esc | Closes the dropdown menu and moves focus to DropdownMenu.Trigger. | 
API Reference
ActionMenuCheckboxItem
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| onSelect | (event: Event) => void | ---- | False | |
| asChild | enum boolean | ---- | False | |
| disabled | enum boolean | ---- | False | |
| textValue | string | ---- | False | |
| checked | enum CheckedState | ---- | False | |
| onCheckedChange | (checked: boolean) => void | ---- | False | 
ActionMenuContent
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| asChild | enum boolean | ---- | False | |
| side | enum left | right | top | bottom | ---- | False | |
| sideOffset | number | ---- | False | |
| align | enum start | center | end | ---- | False | |
| alignOffset | number | ---- | False | |
| arrowPadding | number | ---- | False | |
| collisionBoundary | enum Element | Element[] | ---- | False | |
| collisionPadding | enum number | Partial<Record<left | right | top | bottom, number>> | ---- | False | |
| sticky | enum partial | always | ---- | False | |
| hideWhenDetached | enum boolean | ---- | False | |
| avoidCollisions | enum boolean | ---- | False | |
| onCloseAutoFocus | Event handler called when auto-focusing on close. Can be prevented. | (event: Event) => void | ---- | False | 
| loop | Whether keyboard navigation should loop around @defaultValue false | enum boolean | ---- | False | 
| onEscapeKeyDown | (event: KeyboardEvent) => void | ---- | False | |
| onPointerDownOutside | (event: PointerDownOutsideEvent) => void | ---- | False | |
| onFocusOutside | (event: FocusOutsideEvent) => void | ---- | False | |
| onInteractOutside | (event: PointerDownOutsideEvent | FocusOutsideEvent) => void | ---- | False | |
| forceMount | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. | true | ---- | False | 
ActionMenuGroup
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| asChild | enum boolean | ---- | False | 
ActionMenuIcon
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| side | enum left | right | left | False | 
ActionMenuItem
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| onSelect | (event: Event) => void | ---- | False | |
| asChild | enum boolean | ---- | False | |
| disabled | enum boolean | ---- | False | |
| textValue | string | ---- | False | 
ActionMenuItemIndicator
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| asChild | enum boolean | ---- | False | |
| forceMount | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. | true | ---- | False | 
ActionMenuLabel
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| asChild | enum boolean | ---- | False | 
ActionMenuPortal
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| forceMount | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. | true | ---- | False | 
| container | HTMLElement | ---- | False | 
ActionMenuRadioGroup
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| asChild | enum boolean | ---- | False | |
| value | string | ---- | False | |
| onValueChange | (value: string) => void | ---- | False | 
ActionMenuRadioItem
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| onSelect | (event: Event) => void | ---- | False | |
| asChild | enum boolean | ---- | False | |
| disabled | enum boolean | ---- | False | |
| textValue | string | ---- | False | |
| value | string | ---- | True | 
ActionMenuRoot
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | CSS | ---- | False | 
| density | enum DensityProp | default | False | |
| dir | enum Direction | ---- | False | |
| open | enum boolean | ---- | False | |
| defaultOpen | enum boolean | ---- | False | |
| onOpenChange | (open: boolean) => void | ---- | False | |
| modal | enum boolean | ---- | False | 
ActionMenuSeparator
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| asChild | enum boolean | ---- | False | 
ActionMenuSub
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| open | enum boolean | ---- | False | |
| defaultOpen | enum boolean | ---- | False | |
| onOpenChange | (open: boolean) => void | ---- | False | 
ActionMenuSubContent
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| shadowSize | enum ShadowProp | ---- | False | |
| asChild | enum boolean | ---- | False | |
| sideOffset | number | ---- | False | |
| alignOffset | number | ---- | False | |
| arrowPadding | number | ---- | False | |
| collisionBoundary | enum Element | Element[] | ---- | False | |
| collisionPadding | enum number | Partial<Record<left | right | top | bottom, number>> | ---- | False | |
| sticky | enum partial | always | ---- | False | |
| hideWhenDetached | enum boolean | ---- | False | |
| avoidCollisions | enum boolean | ---- | False | |
| loop | Whether keyboard navigation should loop around @defaultValue false | enum boolean | ---- | False | 
| onEscapeKeyDown | (event: KeyboardEvent) => void | ---- | False | |
| onPointerDownOutside | (event: PointerDownOutsideEvent) => void | ---- | False | |
| onFocusOutside | (event: FocusOutsideEvent) => void | ---- | False | |
| onInteractOutside | (event: PointerDownOutsideEvent | FocusOutsideEvent) => void | ---- | False | |
| forceMount | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. | true | ---- | False | 
ActionMenuSubTrigger
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| onClick | (() => void) & MouseEventHandler<HTMLDivElement> | ---- | False | |
| asChild | enum boolean | ---- | False | |
| disabled | enum boolean | ---- | False | |
| textValue | string | ---- | False | 
ActionMenuTrigger
| Prop | Description | Type | Default | Required | 
|---|---|---|---|---|
| children | Any React node may be used as a child to allow for formatting | enum ReactNode | ---- | False | 
| css | WPDS provides a css prop for overriding styles easily. It’s like the style attribute, but it supports tokens, media queries, nesting and token-aware values. All WPDS Components include a css prop. Use it to pass in overrides. | WPDS.CSS | ---- | False | 
| asChild | enum boolean | ---- | False |