Skip to content

Popover

Standalone non-modal component with CDK Overlay/Portal, positioning, dismiss, and focus return.

Design

Anatomy

  1. Trigger — Button controlling open state and aria-expanded.
  2. Panel — elevated surface with role="dialog".
  3. Header — optional title and absolutely positioned close control.
  4. Body — independent Content Text and Content Slot.
  5. Actions — up to two independently replaceable and hideable Buttons.
  6. Arrow — closed Shape pointing to the trigger.

Interactive example · Angular

Running with the native Angular component and @angular/cdk/overlay + portal + a11y.

Loading functional preview…

Additional Content Slot · Angular

Executed by the native Angular component with CDK Overlay/Portal and content projection.

Loading functional preview…

Placements

ModifierPanel position
ds-popover--bottomBelow the trigger
ds-popover--topAbove the trigger
ds-popover--leftTo the trigger's left
ds-popover--rightTo the trigger's right

Token mapping

PartComponent tokens
Panelcomponent.popover.panel.{bg,border-color,border-width,gap,max-width,padding-x,padding-y,radius,shadow}.default
Title / Bodycomponent.popover.title.color.default, component.popover.body.{color,gap,padding-bottom}.default
Closecomponent.popover.close.{size,icon-size,padding,color}.default, component.popover.close.icon.stroke-width.default
Content Slotcomponent.popover.content-slot.gap.default
Actionscomponent.popover.actions.{gap,padding-top}.default
Arrowcomponent.popover.arrow.{base,fill}.default