操作与浮层@neumorphism-ui/dialog

Dialog

基于 Base UI Dialog 组合 Portal、Backdrop、Popup、标题、说明和关闭操作。Escape、点击外部、焦点约束及焦点返回均由 primitive 处理。

@neumorphism-ui/dialog
Registry JSON

预览

打开后可测试焦点约束和按 Escape 关闭。

安装

安装: dialognpx shadcn@latest add @neumorphism-ui/dialog

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

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

用法

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

Import

Dialog import 代码
import { Button } from "@/components/ui/button"
import {
  Dialog,
  DialogClose,
  DialogContent,
  DialogDescription,
  DialogFooter,
  DialogHeader,
  DialogTitle,
  DialogTrigger,
} from "@/components/ui/dialog"

Example

Dialog 用法代码
<Dialog>
  <DialogTrigger render={<Button variant="primary" />}>
    创建项目
  </DialogTrigger>
  <DialogContent>
    <DialogHeader>
      <DialogTitle>新项目</DialogTitle>
      <DialogDescription>
        之后仍可修改名称和说明。
      </DialogDescription>
    </DialogHeader>
    <DialogFooter>
      <DialogClose render={<Button variant="soft" />}>取消</DialogClose>
      <Button variant="primary">创建</Button>
    </DialogFooter>
  </DialogContent>
</Dialog>

API 参考

组件属性类型默认值说明
Dialogopen / defaultOpenbooleanfalse受控的打开状态或非受控初始状态。
DialogonOpenChange(open: boolean) => void—打开状态变化时调用。
Dialogmodalbooleantrue决定是否阻止背景交互并约束焦点。
DialogTrigger / DialogCloserenderReactElement | (props, state) => ReactElement—将触发或关闭行为组合到按钮或链接上。
DialogContentshowCloseButtonbooleantrue显示右上角的默认关闭按钮。
DialogContentoverlayClassNamestring | (state) => string—单独扩展 Backdrop 的颜色、模糊和过渡效果。
DialogdisablePointerDismissalbooleanfalse禁止通过外部 pointer press 关闭 Dialog。

无障碍

  • 01

    在 DialogContent 中提供 DialogTitle,并使用 DialogDescription 关联辅助说明。

  • 02

    Base UI 负责模态焦点约束、Escape 关闭,以及关闭后将焦点返回触发器。

  • 03

    使用 DialogClose 包裹 DialogFooter 中的取消按钮,提供明确的关闭操作。