Overlays
Popover
A floating glass card pinned to whatever opened it.
Preview
Installation
Install the package once, then import the parts you use into a standalone component.
Install
npm install ngx-vitreo @angular/cdk @floating-ui/domImport
import { GlassPopover, GlassPopoverTrigger, GlassPopoverAnchor, GlassPopoverClose, GlassPopoverContent } from 'ngx-vitreo';
@Component({
imports: [GlassPopover, GlassPopoverTrigger, GlassPopoverAnchor, GlassPopoverClose, GlassPopoverContent],
// ...
})Usage
Usage
<glass-popover [(open)]="open">
<button glassButton glassPopoverTrigger>Open popover</button>
<glass-popover-content aria-label="Glass popover" sideOffset="16">
Anchored to its trigger. Press Escape to close.
</glass-popover-content>
</glass-popover>API reference
GlassPopover
glass-popover
| Input | Type | Default | Description |
|---|---|---|---|
[(open)] | boolean | false | Whether the popover is open; (openChange) fires as it opens or closes. |
modal | boolean | false | Traps focus, locks page scroll and hides the page from assistive technology. |
GlassPopoverTrigger
[glassPopoverTrigger]
GlassPopoverAnchor
[glassPopoverAnchor], glass-popover-anchor
GlassPopoverClose
[glassPopoverClose]
GlassPopoverContent
glass-popover-content
| Input | Type | Default | Description |
|---|---|---|---|
sideOffset | number | 12 | Gap between the trigger and the panel, in pixels. |
side / align | 'top' | 'right' | 'bottom' | 'left' / 'start' | 'center' | 'end' | 'bottom' / 'center' | Preferred placement; it flips to stay on screen. |
alignOffset / avoidCollisions / collisionPadding / sticky / hideWhenDetached | number / boolean / number / 'partial' | 'always' / boolean | 0 / true / 0 / 'partial' / false | Fine placement: offsets, collision padding and sticking to the anchor. |
thickness | number | thickness preference | Glass thickness as a multiple of regular (1); thicker glass bends the backdrop further at the rim. |
class | string | None | Applies to the glass panel, which is the element itself. |
(escapeKeyDown) / (pointerDownOutside) / (focusOutside) / (interactOutside) | Event | None | Call preventDefault() to keep the popover open. |