Skip to content

Sheet

<ax-sheet> is a modal drawer that slides in from a screen edge. It shares Dialog’s content slots (axDialogTitle / axDialogDescription / axDialogBody / axDialogFooter), focus trap, backdrop, and Escape/backdrop dismiss. Control it with [(open)].

import {
AxSheetComponent,
AxDialogTitleDirective,
AxDialogDescriptionDirective,
AxOverlayCloseDirective,
} from '@axisui-ng/overlays';
<ax-button (clickEvent)="open.set(true)">Open menu</ax-button>
<ax-sheet [(open)]="open" side="start">
<h2 axDialogTitle>Navigation</h2>
<p axDialogDescription>Browse sections of the app.</p>
<div axDialogBody></div>
<div axDialogFooter>
<ax-button variant="ghost" axOverlayClose>Close</ax-button>
</div>
</ax-sheet>
InputTypeDefaultNotes
openmodel<boolean>falseTwo-way open state.
side'start' | 'end' | 'top' | 'bottom''end'Edge the sheet slides from (logical start/end respect RTL).
closeOnEscapebooleantrueClose when Escape is pressed.
closeOnBackdropbooleantrueClose when the backdrop is clicked.

Same projection markers as Dialog:

MarkerKindNotes
axDialogTitleDirectiveWires aria-labelledby when projected.
axDialogDescriptionDirectiveWires aria-describedby when projected.
axDialogBodyAttribute slotMain content region.
axDialogFooterAttribute slotAction row; empty footer is hidden.
axOverlayCloseDirectiveDismisses via OVERLAY_REF.close().

role="dialog" aria-modal="true" with a focus trap and scroll lock, like Dialog. Provide a title via [axDialogTitle]. Escape and backdrop close when enabled. Focus returns when the sheet closes.

Interactive examples live in Storybook under Overlays / Sheet. Run pnpm storybook to explore them.