Content
Menu content wrapper with positioning, animations, and dismiss behavior (automatically portalled)
| Prop | Type | Default |
|---|---|---|
| className# | stringCSS class name | — |
| asChild# | booleanRender as child element | — |
| forceMount# | booleanForce mounting of content | — |
| loop# | booleanEnable keyboard navigation looping | — |
| onCloseAutoFocus# | (event: Event) => voidCalled when menu closes and focus returns | — |
| 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 when any interaction occurs outside content | — |
| side# | 'top' | 'right' | 'bottom' | 'left'Preferred side to anchor menu (auto-adjusted) | 'bottom' |
| sideOffset# | numberDistance from trigger to content | 2 |
| align# | 'start' | 'center' | 'end'Alignment relative to trigger | 'start' |
| alignOffset# | numberAdditional offset for alignment | — |
| avoidCollisions# | booleanAutomatically adjust position to avoid collisions | — |
| collisionBoundary# | Element | Element[] | nullElement(s) to use as collision boundary | — |
| collisionPadding# | numberPadding to maintain from collision boundary | — |
| strategy# | 'fixed' | 'absolute'Positioning strategy | — |
| sticky# | 'partial' | 'always'Stick behavior when scrolling | — |
| hideWhenDetached# | booleanHide content when detached from trigger | — |
| updatePositionStrategy# | 'always' | 'optimized'Position update strategy | — |