Skip to Content
ComponentsDropdown

Dropdown

Trigger + menu pattern. Closes on Escape key, outside click, and menu item selection. Controlled and uncontrolled.

Preview

Anatomy

import { Dropdown } from '@wire-ui/react' <Dropdown.Root> <Dropdown.Trigger>Options</Dropdown.Trigger> <Dropdown.Menu> <button>Edit</button> <button>Delete</button> </Dropdown.Menu> </Dropdown.Root>

Root props

PropTypeDefaultDescription
openbooleanControlled open state
defaultOpenbooleanfalseInitial state for uncontrolled use
onOpenChange(open: boolean) => voidCalled when open state changes

Data attributes

AttributeElementValues
data-stateMenu"open" / "closed"

Trigger also sets aria-expanded.

Hiding the closed menu

The menu is always rendered in the DOM — use data-state to hide it:

[data-state="closed"] { display: none; } /* Or with Tailwind: */ /* className="[data-state=closed]:hidden" */
Last updated on

MIT License © 2026 wire-ui