# Sheet drawer

https://fieldbook.lizardi.mx/components/sheet-drawer

Category: Overlays
![Still of the Sheet drawer component, a Fieldbook UI component in Overlays.](https://fieldbook.lizardi.mx/thumbs/sheet-drawer.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/sheet-drawer-332c8110c0.mp4 (5 s, silent)

Sheet drawer: A slide-over panel that springs in from one edge over a dimmed backdrop, holds focus inside, and closes on Escape, the close button, or a pull on its header.

## Frameworks

react, vue, svelte, astro, html

## Preview controls

These controls are passed to the demo. Defaults and limits describe the preview; consult the implementation for its full prop API.

| Name | Type | Default | Options or constraints |
| --- | --- | --- | --- |
| side | select | right | Options: right, left, bottom |
| width | number | 380 | From 320 to 560; step 10 |

## Usage notes

Sheet drawer uses the card preview frame with a dark theme setting.

### Which frameworks are available for Sheet drawer?

Sheet drawer is available for React, Vue, Svelte, Astro, HTML. The live preview uses React; the source observations below apply to index.tsx. Check the selected port before relying on the same interactions.

### What does Sheet drawer depend on?

The React metadata lists these npm dependencies beyond React: motion, radix-ui, clsx, tailwind-merge.

### What accessibility details are visible in Sheet drawer?

The React source for Sheet drawer includes: native elements (button); attributes and handlers (aria-hidden, aria-label). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Sheet drawer handle reduced motion?

Sheet drawer reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: duration: reduced ? 0 : 0.22; duration: reduced ? 0 : 0.24; travel: reduced ? \{ duration: 0 \} : \{ type: "spring" as const, stiffness: 320, damping: 34, mass: 0.9 \}. Check the full implementation, shared styles and selected port with reduced motion enabled; these observations do not establish that every animation stops.

## Install through MCP

Connect your client, call get_component to retrieve the implementation, then get_install_command for installation instructions. Choose a listed framework, integrate the returned source and verify it in your application.

```json
{
  "tool": "get_component",
  "arguments": {
    "slug": "sheet-drawer",
    "framework": "react"
  }
}
```

[For agents](https://fieldbook.lizardi.mx/docs/agents)
[MCP](https://fieldbook.lizardi.mx/api/mcp)

## Related open components

- [Bottom sheet panel](https://fieldbook.lizardi.mx/components/bottom-sheet-panel)
- [Edge-slide panel](https://fieldbook.lizardi.mx/components/edge-slide-panel)
- [Confirm action modal](https://fieldbook.lizardi.mx/components/confirm-action-modal)
- [Custom shell lightbox](https://fieldbook.lizardi.mx/components/custom-shell-lightbox)
- [Tilt-in content frame](https://fieldbook.lizardi.mx/components/tilt-in-content-frame)
- [Anchored popover card](https://fieldbook.lizardi.mx/components/anchored-popover-card)
