Popover
Rich floating content anchored to a trigger.
- Overlays
- 1 file
- 1 npm package
- Accessibility notes
Loading the example…
pnpm dlx @dowel-ui/cli add popovernpm packages installed: radix-ui.
import { Popover } from "@/components/ui/popover";Default
Sides
With Arrow
<PopoverContent>
Every prop of Radix UI’s Popover.Content, plus className.
<PopoverArrow>
Every prop of Radix UI’s Popover.Arrow, plus className.
The content has role="dialog" and therefore REQUIRES an accessible name — pass aria-label, or aria-labelledby pointing at a heading inside it. A development-only warning fires if neither is present. The trigger exposes aria-expanded and aria-controls; Escape closes and returns focus to it. Non-modal by default, so the rest of the page stays reachable; pass `modal` only when the content is a task the user must finish or abandon.
8/8
checks passed
- Tested — passes
- axe assertion — passes
- Keyboard tested — does not apply
- Storybook examples — passes
- Accessibility documented — passes
- Semantic tokens only — passes
- Motion from tokens — passes
- className merged — passes
- Visible focus — does not apply
- No fixed widths — passes