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 |