Examples
Default
As Child Link
With Icons
Size Matrix
Feature Items
Props
DropdownMenu
Root component that manages open/close state for a dropdown menu."menu" | "sheet"
default:"menu"
How the menu presents its content.
DropdownMenuCheckboxItem
A single multi-select choice within a dropdown menu. Shows a square indicator that fills when checked, an optional leading avatar, and an optional helper line underneath the title. Pair withDropdownMenuHeader at type="search" for filterable menus. Use DropdownMenuRadioItem instead when only one option may be active.
boolean
ReactNode
Leading avatar rendered between the checkbox and the title. Render at 32px to match the design.
string
Optional secondary text shown below the title.
DropdownMenuContent
The positioned content panel rendered inside a portal. Override the portal z-index per-instance viastyle={{ zIndex: 1500 }} or globally with the --fanvue-ui-portal-z-index CSS custom property.
boolean
DropdownMenuGroup
Groups related menu items. Accepts an optionalDropdownMenuLabel.
Requires Radix menu context — not supported inside a variant="sheet" menu.
A direct re-export of the Radix DropdownMenuPrimitive.Group primitive. It accepts all of that primitive’s props, unchanged.
DropdownMenuHeader
Optional header rendered at the top of aDropdownMenuContent. Use type="default" to title the menu, or type="search" to embed a search input for filtering long lists.
Renders an inset separator beneath the row so it slots cleanly above the first group of items.
string
default:"Close menu"
Accessible label for the close button.
(() => void)
Fires when the close icon button is activated.
DropdownMenuHeaderSearchProps
Configuration for the embedded search input when
type="search".boolean
default:"true"
Whether to render the close icon button on the right.
"32" | "40"
default:"40"
Height preset for the header row.
string
Title text shown when
type="default". Ignored if children is provided."search" | "default"
default:"default"
Visual type.
"default" shows a title; "search" shows a search input.DropdownMenuItem
An individual item within aDropdownMenuContent.
boolean
ReactNode
Leading avatar rendered in place of
DropdownMenuItemProps.leadingIcon, for rows that represent a person or account. Pass an Avatar sized to 24. Takes precedence over leadingIcon.ReactNode
Trailing count or number (e.g. an unread total) rendered before
DropdownMenuItemProps.trailingIcon.ReactNode
Optional secondary text rendered on a second line below the label. When provided, the row switches to a two-line layout and the leading/trailing icons align to the title line (top) rather than the row’s vertical centre.
boolean
default:"false"
Applies the destructive (error) treatment. Use for irreversible actions.
ReactNode
Icon (or other node) rendered before the label. Ignored when
DropdownMenuItemProps.avatar is set.boolean
default:"false"
Marks the item as the current selection in a single-select menu.
"32" | "40" | "md" | "sm"
default:"40"
Height of the menu item row.
ReactNode
Icon (or other node) rendered after the label. When
DropdownMenuItemProps.selected is true and no trailingIcon is given, the built-in selected check indicator renders in this slot instead — pass a trailingIcon to use a custom selected indicator (e.g. a themed tick) rather than the default one.DropdownMenuLabel
A non-interactive label that groups related items within a menu.boolean
"default" | "top"
default:"default"
Vertical placement within the surrounding group.
"top" is used for the first label directly under a header; "default" adds extra top padding to separate it from preceding items.DropdownMenuRadioGroup
GroupsDropdownMenuRadioItem children so they behave as a single-select set. Controlled via value/onValueChange.
A direct re-export of the Radix DropdownMenuPrimitive.RadioGroup primitive. It accepts all of that primitive’s props, unchanged.
DropdownMenuRadioItem
A single radio-style choice within aDropdownMenuRadioGroup. Shows a circular indicator that fills when selected, plus an optional helper line underneath the title.
boolean
string
Optional secondary text shown below the title.
"40"
default:"40"
Height of the item row.
DropdownMenuSeparator
Visual separator between groups of items.boolean
DropdownMenuTrigger
The element that toggles the dropdown menu when clicked. On touch devices, the menu only opens if the press-and-release stays within a small movement threshold. A drag that incidentally ends over the trigger (common when scrolling a feed on Android Chrome) is ignored. Mouse and keyboard interactions are unchanged.boolean
Exported types
Also exported from@fanvue/ui: DropdownMenuCheckboxItemProps, DropdownMenuContentProps, DropdownMenuGroupProps, DropdownMenuHeaderProps, DropdownMenuHeaderSearchProps, DropdownMenuHeaderSize, DropdownMenuHeaderType, DropdownMenuItemProps, DropdownMenuItemSize, DropdownMenuLabelPosition, DropdownMenuLabelProps, DropdownMenuProps, DropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, DropdownMenuRadioItemSize, DropdownMenuSeparatorProps, DropdownMenuTriggerProps.
Setup: Installation · Theming