# Sheet drawer

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

分类：叠加层
缩略图：https://fieldbook.lizardi.mx/thumbs/sheet-drawer.webp

Sheet drawer：侧滑面板从一侧弹入变暗背景上，将焦点限制在内部，可通过 Escape、关闭按钮或拖动头部关闭。

## 框架

react、vue、svelte、astro、html

## 预览控件

这些控件会传给演示组件。默认值和限制描述的是预览；完整的属性接口请查看实现代码。

| 名称 | 类型 | 默认值 | 选项或限制 |
| --- | --- | --- | --- |
| side | select | right | 选项：right、left、bottom |
| width | number | 380 | 范围 320 至 560；步长 10 |

## 使用说明

Sheet drawer 的预览采用「卡片」布局，主题设置为「深色」。

### Sheet drawer 提供哪些框架版本？

Sheet drawer 提供 React、Vue、Svelte、Astro、HTML 版本。实时预览使用 React；以下代码观察仅针对 index.tsx。使用其他版本前，请确认其交互行为。

### Sheet drawer 有哪些依赖？

React 元数据列出的额外 npm 依赖为：motion、radix-ui、clsx、tailwind-merge。

### Sheet drawer 的代码中有哪些无障碍细节？

Sheet drawer 的 React 代码包含：原生元素（button）；属性与事件处理器（aria-hidden、aria-label）。这些信息来自代码观察。请在组合后的页面中验证无障碍名称、焦点顺序和键盘行为。

### Sheet drawer 如何处理减少动态效果的偏好？

Sheet drawer 的 React 代码通过 useReducedMotion() 读取动态效果偏好。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 \}。请启用减少动态效果，检查完整实现、共享样式和所选框架版本；这些观察不能证明所有动画都会停止。

## 通过 MCP 安装

连接客户端，调用 get_component 获取实现，再调用 get_install_command 获取安装说明。选择已列出的框架，将源代码集成到应用中并验证功能。

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

[面向智能体](https://fieldbook.lizardi.mx/zh/docs/agents)
[MCP](https://fieldbook.lizardi.mx/api/mcp)

## 相关开放组件

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