Dropdown Menu
shadcn/uiDisplays a menu to the user triggered by a button or other element.
Dropdown Menu
Installation
Props
<DropdownMenu />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuPortal />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuTrigger />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuContent />
Name | Type | |
|---|---|---|
align | string(default: start) | |
alignOffset | number(default: 0) | |
side | string(default: bottom) | |
sideOffset | number(default: 4) | |
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuGroup />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuLabel />
Name | Type | |
|---|---|---|
inset | boolean(default: false) | |
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuItem />
Name | Type | |
|---|---|---|
inset | boolean(default: false) | |
variant | string(default: default) | |
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuCheckboxItem />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuRadioGroup />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuRadioItem />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuSeparator />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuShortcut />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuSub />
Name | Type | |
|---|---|---|
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuSubTrigger />
Name | Type | |
|---|---|---|
inset | boolean(default: false) | |
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |
<DropdownMenuSubContent />
Name | Type | |
|---|---|---|
align | string(default: start) | |
alignOffset | number(default: -3) | |
side | string(default: right) | |
sideOffset | number(default: 0) | |
defaultOpen | boolean | |
loopFocus | boolean | |
highlightItemOnHover | boolean | |
modal | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
closeParentOnEsc | boolean | |
triggerId | string | |
defaultTriggerId | string | |
render | React.ReactElement | |
onCheckedChange | (...args) => void | |
label | string | |
closeOnClick | boolean | |
nativeButton | boolean | |
keepMounted | boolean | |
finalFocus | boolean | HTMLElement | |
container | HTMLElement | RefObject<HTMLElement> | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
onValueChange | (...args) => void | |
payload | object | |
delay | number | |
closeDelay | number | |
openOnHover | boolean |