Skip to content

Drawer

A panel sliding in from an edge (a bottom sheet on phones).

Group: Overlays · Kind: native

open

Open in the playground

The same specimen painted by React, SwiftUI, Compose and gpui.

exponential-ui-drawer on Web
exponential-ui-drawer on iOS
exponential-ui-drawer on Android
exponential-ui-drawer on Desktop
Prop Type Required Bindable Description
title string – – The drawer heading.
description string – – A muted line under the heading.
open boolean – yes Whether it shows; bind it to a boolean path. Default false.
side top | right | bottom | left – – The edge it slides from; {base: "bottom", md: "right"} turns the phone sheet into a side panel on wide surfaces. Default "bottom". Responsive: takes a per-breakpoint object.
dismissible boolean – – Closes on the backdrop or Escape. Default true.
dragToDismiss boolean – – Lets a swipe toward its edge close it. Default true.
  • on.change: runs an action
  • trigger: one component by id
  • footer: one component by id

many

No basic catalog component maps here.

A native component: every renderer paints it directly.

Role: dialog

dialog (modal)

Keys Action
– As Dialog; a swipe toward the edge closes when dragToDismiss

Recipe parts: Drawer/overlay Drawer/content Drawer/handle Drawer/title Drawer/description Drawer/footer

Keyed by: side dismissible :hover :pressed :focus :disabled :checked :open :selected :invalid :dragover

Themes · Write a theme

DockCard · Dialog · AlertDialog · Popover · Tooltip · Menu · Toast