sheengemologic ui
All components

Drawer

Opens a modal panel from a logical viewport side using the scoped overlay stack.@gemologic/sheen · overlays

Playground

<Drawer title="Filters" trigger="Open filters" side="end"><Input label="Query" /></Drawer>

Variant matrix

End-side drawer
side: start
side: end

Anatomy

Package
@gemologic/sheen
Source
packages/ui/src/primitives/Drawer.tsx
Tokens
  • --sheen-color-bg-raised
  • --sheen-color-bg-overlay
  • --sheen-elevation-modal
  • --sheen-duration-slow

Accessibility

Role: dialogKeyboard: Tab, Shift+Tab, Escape

Do

  • Use logical start/end sides so the panel follows document direction.

Do not

  • Do not mount a second portal or focus trap around Drawer.

Generated props

NameTypeDefaultDescription
sideDrawerSideendLogical viewport edge from which the panel enters.
title *stringAccessible panel title.
contentIdstringOptional stable content element ID.
triggerstringVisible label for the opening button.
descriptionstringOptional explanatory text associated with the panel.
openbooleanControlled open state.
defaultOpenbooleanfalseUncontrolled initial open state.
onOpenChange(open: boolean) => voidRequests an open-state change.
dismissiblebooleantrueAllows Escape, outside press, and the close action.
closeLabelstringVisible and accessible close label.
initialFocus() => HTMLElement | undefinedResolves an enabled focus target inside the panel.
returnFocus() => HTMLElement | undefinedResolves a surviving focus target after close.
shortcutScopestringUnique modal shortcut scope ID.
classstringAdditional classes on panel content.
footerJSX.ElementApp-owned footer actions beside close.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.