Overlays
Glass Sheet
A glass panel that slides in from any edge; pull a bottom sheet down to close it.
Preview
Glass sheet
Drag the handle down or press Escape to close.
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 { GlassSheet, GlassSheetContent } from 'ngx-vitreo';
@Component({
imports: [GlassSheet, GlassSheetContent],
// ...
})Usage
Usage
<glass-sheet [(open)]="open">
<button glassButton glassSheetTrigger>Open sheet</button>
<glass-sheet-content side="bottom">
<h2 glassSheetTitle>Glass sheet</h2>
<p glassSheetDescription>Drag the handle down or press Escape to close.</p>
</glass-sheet-content>
</glass-sheet>API reference
GlassSheet
<glass-sheet>
| Input | Type | Default | Description |
|---|---|---|---|
open / defaultOpen | boolean (model) | false | Controlled with [(open)], or uncontrolled from defaultOpen. |
(openChange) | boolean | None | Emits when it opens or closes. |
modal | boolean | true | Traps focus and makes the page behind inert. |
GlassSheetContent
<glass-sheet-content>
| Input | Type | Default | Description |
|---|---|---|---|
side | 'top' | 'right' | 'bottom' | 'left' | 'bottom' | Edge the sheet slides in from. Only bottom sheets get a drag handle that dismisses them. |
closeLabel | string | 'Close sheet' | Accessible name of the built-in close button. |
(openAutoFocus) / (closeAutoFocus) | Event | None | Focus moving in on open and back to the trigger on close. preventDefault() keeps it where it is. |
(escapeKeyDown) / (pointerDownOutside) / (interactOutside) | KeyboardEvent / CustomEvent | None | Ways the content is about to close. preventDefault() keeps it open. |
thickness | number | thickness preference | Glass thickness as a multiple of regular (1); thicker glass bends the backdrop further at the rim. |
class | string | None | The element is the glass panel, so its classes style the panel. |
Trigger, Close, Title, Description
[glassSheetTrigger], [glassSheetClose], [glassSheetTitle], [glassSheetDescription]
| Input | Type | Default | Description |
|---|---|---|---|
— | — | None | The dialog parts under sheet names. |