Content
Container for menu items. Appears as a popover below the trigger.
| Prop | Type | Default |
|---|---|---|
| side# | 'top' | 'right' | 'bottom' | 'left'Which side of the trigger to position the menu | — |
| sideOffset# | numberDistance in pixels from the trigger | 8 |
| align# | 'start' | 'center' | 'end'Alignment relative to trigger (start, center, or end) | — |
| alignOffset# | numberOffset from the align position | — |
| forceMount# | booleanKeep in DOM even when closed | — |
| loop# | booleanWhether focus wraps around menu items | — |
| avoidCollisions# | booleanFlip position to avoid viewport collisions | — |
| collisionBoundary# | Element | Element[] | nullElements that define collision detection boundary | — |
| collisionPadding# | numberPadding around collision boundary | — |
| sticky# | 'partial' | 'always'Keep menu visible during partial scrolling | — |
| hideWhenDetached# | booleanHide when trigger becomes detached from viewport | — |
| updatePositionStrategy# | 'always' | 'optimized'When to update position during scroll | — |
| onCloseAutoFocus# | (event: Event) => voidCalled when focus returns to trigger on close | — |
| onEscapeKeyDown# | (event: KeyboardEvent) => voidCalled when Escape key is pressed | — |
| onPointerDownOutside# | (event: PointerDownOutsideEvent) => voidCalled when pointer down occurs outside content | — |
| onFocusOutside# | (event: FocusOutsideEvent) => voidCalled when focus moves outside content | — |
| onInteractOutside# | (event: PointerDownOutsideEvent | FocusOutsideEvent) => voidCalled for any interaction outside content | — |
| asChild# | booleanRender as child element instead of div | — |
| className# | stringCSS class names | — |