Free
Pro

Drawer

Ply drawer is a slide-in panel from any edge. Register provideAnimationsAsync() or open throws NG05105. Copy drawer in, set position and size, and emit closed from links so the overlay detaches on navigate. It is extra context, not the main page.

When to use

  • Filters, nav on small screens, and inspect-record side panels.
  • When the underlying page should stay mounted behind the overlay.

When not to use

  • Blocking tasks that need a focus-trapped modal — use dialog.
  • The primary layout rail — use sidenav or shell.

Install with npx ply-ui-cli add drawer.

free

Use <ply-drawer #myDrawer position="left"></ply-drawer> to add a drawer to any page you want. Name it with identifier by your choice and use position="" to define position of the drawer. Supported positions are "left", "right", "top" and "bottom".

Use close=""with boolean "true" or "false" to control whether the drawer to be with button close or without it..

Left Drawer

Click button below to show the Left Drawer example

Right Drawer

Click button below to show the Right Drawer example

Top Drawer

Click button below to show the Top Drawer example

Bottom Drawer

Click button below to show the Bottom Drawer example

Drawer Size

Use size="" to define the Drawer size. Supported sizes are "sm", "md", "lg" and "xl". If size is not defined it will take automatic width of the content inside

Installation

Run the following command to add this component to your project:

bash

npx ply-ui-cli add drawer

API Reference

For AI agents

Copy a prompt with the registry name, CLI install, and import — or add the Ply MCP server.

bash

npx -y ply-ui-mcp

Ply provides standalone components. Import the exact elements you want to use into your component.

typescript (Example)

// Install: npx ply-ui-cli add drawer
// Paths are relative to aliases.components (default: src/app/components)
import { DrawerPanel } from './drawer/drawer-panel';
import { DrawerComponent } from './drawer/drawer.component';
import { DrawerDirective } from './drawer/drawer.directive';

@Component({
  selector: 'app-your-component',
  imports: [
    DrawerComponent,
    DrawerDirective
  ],
  template: `...`
})
export class YourComponent {}

API for drawer — generated from JSDoc in the library source.

API reference for drawer
APIMemberTypeDefaultDescription
DrawerPaneltemplateRefSignal<TemplateRef<T>>
DrawerPanelclosedOutputEmitterRef<void>
ply-drawersizeDrawerSize'md'The size of the drawer. Defaults to 'md'.
ply-drawerpositionDrawerPosition'right'The edge of the screen to slide in from. Defaults to 'right'.
ply-drawerclosebooleanfalseTriggers the closing animation when set to true.
ply-drawerdrawerLabelunknown'Drawer'Accessible name for the drawer dialog.
ply-drawer(closed)voidEvent emitted when the drawer has fully closed.
[ply-drawer]placementunknown'right'The edge of the screen to slide the drawer in from.
[ply-drawer]ply-drawerDrawerPanel<T>(required)The reference to the `ply-drawer` component to open.