Skip to main content

Overview

Appearance settings
Customize your display preferences.
Dark mode
Compact view
Popover is a non-modal floating panel anchored to a trigger. Unlike Tooltip (hover, read-only), Popover can contain interactive elements — forms, toggles, pickers — and is triggered by click.
Popover vs Tooltip: use Popover for interactive content (buttons, inputs, forms). Use Tooltip for short read-only labels shown on hover.

Installation


Usage


Variants

Basic

Quick info
This component anchors floating content to any trigger element.

With Form

Dimensions

Placement


API Reference

Popover

boolean
Controlled open state.
(open: boolean) => void
Callback fired when open state changes.
boolean
default:"false"
Uncontrolled default open state.

PopoverContent

string
default:"bottom"
Which side of the trigger to render on. Values: top · right · bottom · left
string
default:"center"
Alignment relative to the trigger. Values: start · center · end
number
default:"4"
Distance in px between trigger and popover panel.
string
Additional class names for the popover panel.

Accessibility

  • Popover uses role="dialog" and is not modal — background content remains accessible
  • Trigger has aria-haspopup="dialog" and aria-expanded
  • Focus moves into the popover when it opens; Escape closes it and returns focus to the trigger
  • Unlike Tooltip, Popover is not announced on hover — it requires a deliberate click

Do’s & Don’ts

Do

  • Use Popover for interactive content: forms, pickers, toggles
  • Keep popover content focused — avoid making it too wide or tall
  • Provide a clear close mechanism (Escape key or a close button)
  • Use align="end" for popovers triggered from right-aligned buttons

Don't

  • Don’t use Popover for read-only labels — use Tooltip
  • Don’t use Popover for critical blocking decisions — use AlertDialog
  • Don’t put navigation inside a Popover — use DropdownMenu
  • Don’t make Popover content taller than the viewport