children | ReactNodeTrigger element. Must contain a <button> or [role="button"] element. |
|---|
anchorRef | React.RefObject<HTMLElement>External ref to use as the popover anchor in sibling mode. |
|---|
content | ReactNode · requiredContent to display inside the popover. |
|---|
placement | 'above' | 'below' | 'start' | 'end' · default 'below'Position placement relative to the trigger. Logical: start/end resolve against the popover's own inherited direction, so RTL contexts mirror automatically in pure CSS. |
|---|
alignment | 'start' | 'center' | 'end' · default 'start'Alignment along the placement axis. Logical: start/end follow the popover's own inherited direction (RTL mirrors). |
|---|
isOpen | booleanWhether the popover is shown in controlled mode. |
|---|
onOpenChange | (isOpen: boolean) => voidCallback fired when the popover visibility changes. |
|---|
isEnabled | boolean · default trueWhen false, trigger interactions are ignored. |
|---|
width | number | string · default 'auto'Width of the popover container. The layer still caps to the viewport with alignment-aware safe-area gutters before scrolling long content. |
|---|
label | stringAccessible label for the popover dialog. |
|---|
role | 'dialog' | 'none' · default 'dialog'ARIA role for the popover wrapper. Use dialog for dialog-style popovers; use none when content provides its own role, like menu or listbox. |
|---|
isModal | boolean · default trueWhether a dialog-style popover sets aria-modal. Only applies when role is dialog. |
|---|
hasCloseButton | boolean · default trueWhether to include a hidden close button for accessibility. |
|---|
closeButtonLabel | string · default 'Close popover'Label for the hidden close button. |
|---|
hasAutoFocus | boolean · default trueWhether to move focus into the popover when it opens. Focus enters the first genuine content control; dialogs with none fall back to the labeled surface. The generated fallback close control stays hidden until reached through keyboard navigation. Set to false for input-owned focus, inline showcases, or documentation previews. |
|---|
hasLightDismiss | boolean · default trueWhether clicking outside dismisses the popover. Set to false for surfaces that stay open until explicitly dismissed, like onboarding coachmarks. |
|---|
hasEscapeDismiss | boolean · default trueWhether pressing Escape dismisses the popover. Only takes full effect together with hasLightDismiss={false}, since native light dismiss also closes on Escape. |
|---|
xstyle | StyleXStylesStyleX styles for layout customization (margins, positioning, sizing). Must be a stylex.create() value, not an inline style object like style={{}}. |
|---|