Component Porchlight CSS

Drawer

Off-canvas slide-over panel using Popover API with @starting-style animation.

52 components 51 stable 1 experimental

Command

Search Porchlight

Drawer

The .c-drawer is an off-canvas panel that slides in from a viewport edge. It uses the native Popover API for top-layer rendering and light-dismiss, combined with @starting-style for a smooth enter/exit animation.

Semantic HTML

<button popovertarget="my-drawer">Open</button>

<div popover class="c-drawer" id="my-drawer" data-side="end">
  <div class="c-drawer__header">
    <h2 class="c-drawer__title">Title</h2>
    <button popovertarget="my-drawer" aria-label="Close">x</button>
  </div>
  <div class="c-drawer__body">Content</div>
  <div class="c-drawer__footer">
    <button class="c-button" data-variant="ghost">Cancel</button>
    <button class="c-button" data-variant="primary">Save</button>
  </div>
</div>

Side variants

[data-side]Direction
start (default end)Slides from inline-start (left in LTR)
endSlides from inline-end (right in LTR)

Class contract

SelectorRole
.c-drawerThe panel (popover, fixed to edge).
.c-drawer__headerSticky header with title + close.
.c-drawer__titlePanel heading.
.c-drawer__bodyScrollable content area.
.c-drawer__footerBottom action bar.