Popover
NewUseful details, close at hand. Add a small panel of content right beside the action that opens it.
Basic
Toggle a panel from its trigger. Click outside or press Escape to close, while the rest of the page stays available.
DESIGN WORKSPACE
Better work starts together.
A shared place for ideas and thoughtful next steps.
Your team
A few familiar faces, working together.
Alex MorganDesigner
Jamie ChenDeveloper
Taylor ReedProduct manager
Select data
Choose an item in the panel and return the selection to your page.
PROJECT OWNER
Choose a teammate
Choose a teammate for your next project.
One panel, many triggers
Keep a single popover outside the repeated rows. Opening another row moves the panel and updates its content.
| Product | Price | Details |
|---|---|---|
| Everyday notebookStationery | $18 | |
| Studio headphonesAudio | $129 | |
| Desk lampLighting | $64 |
Stationery
Everyday notebook
A place for sketches, lists and the next good idea.
$18
Explicit dismissal
Disable outside-click dismissal for content that should stay open until its action is complete. Projected form content keeps its value between openings.
Kept in this demo
Usage and API
TypeScript
import { AvPopover, AvButton } from 'avero-ui';
// Add AvPopover and AvButton to your component imports.HTML
<button avButton (click)="panel.toggle($event)">Open details</button>
<av-popover #panel ariaLabel="Project details" width="360px">
<h3>Design workspace</h3>
<p>Your content goes here.</p>
<button avButton (click)="panel.hide()">Done</button>
</av-popover>Content template
<av-popover #panel ariaLabel="Quick actions">
<ng-template #content let-close="close">
<button avButton (click)="close()">Done</button>
</ng-template>
</av-popover>Methods and events. show(event, target?), toggle(event, target?) and hide(). The optional target overrides event.currentTarget. visible() exposes read-only state; onShow and onHide report visibility changes.
Inputs. inputId, ariaLabel, ariaLabelledBy, width (320px), dismissable (true), closeOnEscape (true), focusOnShow (true), showCloseIcon (false), closeAriaLabel. Supply projected content or #content with let-close="close".
Positioning. The panel follows scroll and resize, flips above the trigger when needed, and stays within the viewport. Browsers supporting the Popover API render it in the top layer, outside clipping containers.
Accessibility. Provide a descriptive ariaLabel or ariaLabelledBy. The trigger receives aria-expanded, aria-controls and aria-haspopup while open. This non-modal dialog leaves the page interactive and does not trap Tab. Escape or a panel action restores focus to its trigger; outside clicks preserve the user's new focus.
Styling. Use --av-popover-background, --av-popover-color, --av-popover-border, --av-popover-radius and --av-popover-padding.