Aliases
anchored surface
PopoverAnchored content panel with placement and dismissal controls.
Aliases
anchored surface
Foundations
Popover for contextual content or controls that belong near the triggering element.Popover for critical modal tasks.Popover for single-sentence hints; use Tooltip.open control
trigger Control that opens the popover.
anchored container
surface Floating contextual surface.
| Name | Type | Default | Description |
|---|---|---|---|
open | boolean | false | Controlled open state. |
placement | 'top' | 'right' | 'bottom' | 'left' | 'bottom' | Preferred anchor placement. |
size | 'sm' | 'md' | 'md' | Chooses the popover size recipe. |
closeOnEscape | boolean | true | Allows Escape dismissal. |
closeOnOutsidePress | boolean | true | Allows outside press dismissal. |
onOpenChange | (detail: { open: boolean }) => void | — | Runs when the popover opens or closes. |
theme | ThemeContract | — | Sets the theme used to resolve component styles. |
| Name | Payload | Description |
|---|---|---|
openchange | { open: boolean } | Fires when an overlay-style component opens or closes through user interaction. |
| Name | Description |
|---|---|
trigger | Trigger content. |
default | Popover body content. |
Variants
top/right/bottom/left: Placement chooses the preferred anchored direction with collision handling.Sizes
sm: Compact popovermd: Default popoverStates
closed: Popover hiddenopen: Popover visibleSemantics
Keyboard
Screen readers
Checklist
An anchored content panel.
<Popover placement="bottom"><svelte:fragment slot="trigger">Open popover</svelte:fragment>Popover body</Popover> Side placement works well for toolbar or inline action clusters.
<Popover placement="right"><svelte:fragment slot="trigger">Details</svelte:fragment>Supporting context</Popover> Control popover state when the surrounding app owns its visibility.
<Popover open={isOpen} onOpenChange={(detail) => isOpen = detail.open}><svelte:fragment slot="trigger">Open popover</svelte:fragment>Popover body</Popover> Calculated fixtures; browser evidence is not collected. Layout estimates use declared text behavior and maximum token values.
size=sm
size=md
size=lg