操作与浮层@neumorphism-ui/drawer

Drawer

使用 Base UI Drawer 的手势和焦点管理。Sheet 适合固定任务面板,而 Drawer 更适合可滑动关闭或从不同方向打开的临时触控界面。

@neumorphism-ui/drawer
Registry JSON

预览

安装

安装: drawernpx shadcn@latest add @neumorphism-ui/drawer

CLI 会依次处理 npm 依赖、base token、utils 和组件源码。

首次使用此 Registry?请先完成 namespace 配置 。

用法

用法: 安装npx shadcn@latest add @neumorphism-ui/drawer @neumorphism-ui/button

Import

Drawer import 代码
"use client";
import {
  Drawer,
  DrawerClose,
  DrawerContent,
  DrawerDescription,
  DrawerFooter,
  DrawerHeader,
  DrawerTitle,
  DrawerTrigger,
} from "@/components/ui/drawer";
import { Button } from "@/components/ui/button";

Example

Drawer 用法代码
export default function Example() {
  return <Drawer swipeDirection="down">
    <DrawerTrigger render={<Button />}>快捷设置</DrawerTrigger>
    <DrawerContent>
      <DrawerHeader>
        <DrawerTitle>快捷设置</DrawerTitle>
        <DrawerDescription>无需离开当前页面即可调整常用选项。</DrawerDescription>
      </DrawerHeader>
      <div className="grid gap-3 px-5 py-4"><p>通知和显示控件可以放在此区域。</p></div>
      <DrawerFooter><DrawerClose render={<Button variant="primary" />}>完成</DrawerClose></DrawerFooter>
    </DrawerContent>
  </Drawer>;
}

API 参考

组件属性类型默认值说明
DrawerswipeDirection"down" | "up" | "left" | "right""down"设置打开、关闭和滑动方向。
Draweropen / onOpenChangeboolean / (open: boolean) => void—控制 Drawer 的打开状态。
DrawersnapPointsnumber[]—按需配置中间停靠点。
DrawerTriggerrenderReactElement—将现有 Button 或其他元素组合为触发器。
DrawerContentclassNamestring | (state) => string—在保留方向和手势行为的同时扩展面板样式。

无障碍

  • 01

    提供 DrawerTitle 和 DrawerDescription,让辅助技术识别已打开面板的用途。

  • 02

    模态 Drawer 打开时应隔离背景内容与焦点,并支持 Escape 关闭。

  • 03

    不要把滑动作为唯一关闭方式;同时提供明确的 DrawerClose 控件。