Popover

Floating card with a title header and rich body content. Supports 12 placements, hover / click / focus triggers, and controlled open state. Unlike Tooltip, the popover overlay is interactive, so users can click links or buttons inside it.

Playground
Title
placement
trigger
arrow
showCloseButton
disabled
<Popover
  title="Popover title"
  content={<span>Popover body content goes here.</span>}
>
  <Button variant="secondary">Click me</Button>
</Popover>

Placements

12 placement options, same as Tooltip.

Trigger modes

Default trigger is 'click'. Also supports 'hover' and 'focus'.

Content only

Omit title for a content-only card without a header.

Close button

showCloseButton adds a × button in the header for explicit dismissal.

Rich content

content accepts any ReactNode: links, buttons, custom JSX.

No arrow

Set arrow={false} to hide the directional pointer.

Controlled

Use open + onOpenChange for full control over visibility.

API

PropertyTypeDefaultDescription
content*ReactNode—Body content of the popover card.
titleReactNodeHeader title shown above the content.
placement"top" | "topLeft" | "topRight" | "bottom" | "bottomLeft" | "bottomRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom""top"Placement relative to the trigger element.
trigger"hover" | "click" | "focus" | PopoverTrigger[]"click"How to activate the popover.
openbooleanControlled open state.
defaultOpenbooleanfalseUncontrolled initial open state.
onOpenChange(open: boolean) => voidCalled when visibility changes.
arrowbooleantrueShow the directional arrow.
showCloseButtonbooleanfalseShow a × button in the header to close the popover.
mouseEnterDelaynumber100Delay before showing on hover (ms).
mouseLeaveDelaynumber100Delay before hiding on hover (ms).
disabledbooleanfalseDisable the popover entirely.
overlayClassNamestringExtra class on the floating overlay.