Skip to main content

Popover

Non-modal floating content triggered by click.

Usage

<w-popover>
<w-slot trigger><button>More info</button></w-slot>
<w-slot body>
<div>
<h3>Details</h3>
<p>Additional information here.</p>
</div>
</w-slot>
</w-popover>

Props

PropTypeDefaultDescription
openbooleanfalseWhether popover is visible
placementstring"bottom"Position relative to trigger
persistentbooleanfalsePrevent closing via Escape or outside click
closeOnOutsideClickbooleantrueClose when clicking outside
closeOnEscapebooleantrueClose on Escape key
portalbooleantrueTeleport to body

Slots

SlotElementDescription
triggerButtonElement that opens the popover
contentAnyPopover content
closeButtonOptional close button

Events

EventDescription
openFired when popover opens
closeFired when popover closes

Methods

MethodDescription
show()Open the popover
hide()Close the popover
toggle(force?)Toggle open state

Keyboard

KeyAction
Enter / SpaceToggle popover (on trigger)
EscapeClose popover

Examples

Persistent Popover

A persistent popover stays open until explicitly closed.

<w-popover persistent>
<w-slot trigger><button>Edit Settings</button></w-slot>
<w-slot body>
<div>
<h3>Settings</h3>
<input type="text" placeholder="Name" />
<button onclick="this.closest('w-popover').open = false">Save</button>
</div>
</w-slot>
</w-popover>

Accessibility

  • Trigger has aria-haspopup and aria-expanded
  • Content has aria-label or aria-labelledby
  • Focus management without full trapping