Lumeo

Drawer

A panel that slides up from the bottom of the screen on mobile devices.

Installation

dotnet add package Lumeo

One-time app setup (AddLumeo(), CSS & JS) is covered in the installation guide.

Usage

@using Lumeo

<Drawer />

When to Use

  • Present mobile-first overlays that slide up from the bottom of the screen
  • Build bottom sheets for action selection, filters, or confirmations
  • Show supplementary content without navigating away from the current page
  • Provide a gesture-friendly overlay that supports swipe-to-dismiss
  • Display quick-action menus on touch devices

Pick a value to see it applied live.

Intercepting close

OnBeforeClose fires for every close path including swipe-down on touch devices. The handler receives a DismissEventArgs with a Reason string — "escape", "outside", "swipe", "close", "action", or "cancel". Set e.Cancel = true to keep the drawer open.

Nested stacking. Drawers stack automatically on top of Dialogs, Sheets, AlertDialogs, or other Drawers — z-index is allocated per overlay, and Escape closes only the top-most one. No API change.

Keyboard Interactions

Key Action
EscapeClose the drawer (unless PreventClose is enabled)
TabCycle focus through focusable elements within the drawer
Shift + TabMove focus to the previous focusable element within the drawer

On touch devices, swiping down on the drawer handle also dismisses it.

API Reference

Drawer

Property Type Default Description
Open bool false Controls whether the drawer is open. Use with @bind-Open for two-way binding.
OpenChanged EventCallback<bool> Callback invoked when the open state changes.
IsOpen bool false Deprecated alias for Open. Prefer Open in new code.
IsOpenChanged EventCallback<bool> Deprecated alias for OpenChanged. Prefer OpenChanged in new code.

DrawerContent

Property Type Default Description
PreventClose bool false Prevents closing via swipe or backdrop click.
The panel that slides up from the bottom of the screen. Includes focus trap, scroll lock, and swipe-to-dismiss gesture. Sub-components DrawerTrigger, DrawerClose, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription mirror the Dialog/Sheet API.
Side Lumeo.Side Bottom Side the drawer slides in from. Values: Top, Right, Bottom, Left.
  • Sheet — Use for side-panel overlays on desktop; Drawer is optimized for bottom-sheet mobile interactions
  • Dialog — Use for centered modal overlays that require explicit user decisions
  • Popover — Use for small contextual overlays anchored to a trigger element