Overlay

Popover

A bubble panel that opens on click. It holds a title and any content, and closes on Escape or an outside click without blocking the page.

ReactVueWeb Components
View in Storybook

Playground

Examples

<Popover title="Info" content={<p>Details…</p>}>
  <button>More</button>
</Popover>

Props

Name Type Default Description
title ReactNode Optional header shown above the body.
content required ReactNode Popover body content.
children required ReactElement<{ 'aria-expanded'?: boolean; 'aria-haspopup'?: 'dialog'; onClick?: (e: React.MouseEvent) => void; }> The trigger element. It receives `aria-expanded`, `aria-haspopup`, and an onClick toggle; it must be a focusable element.
open boolean Controlled open state.
defaultOpen boolean false Initial open state (uncontrolled). @default false
onOpenChange (open: boolean) => void Called when open state changes.
className string

Accessibility

  • Body/background contrast is ≥ 7:1 (AAA) in both light and dark.
  • Every interaction works with the keyboard alone.
  • The focus ring is always visible.
  • Respects prefers-reduced-motion and stops excessive motion.

Every component is designed to meet WCAG 2.1 AAA.