组件

Alert Dialog

一个 React 警告对话框,用于破坏性操作确认,采用 Liquid Glass 表面与固定取消/确认按钮。

AlertDialog 是可访问的模态确认组件。它内部渲染 Portal、遮罩、居中弹窗、标题、描述、可选正文以及固定的取消/确认操作。

基础示例

基础示例使用受控模式:用 open 控制显示,触发按钮由页面自己渲染。它是模态的,点击遮罩不会关闭;但按 Escape 仍会关闭,并且不会调用 onCancel 或 onConfirm。如果 Escape 不应取消破坏性操作,请在 onOpenChange 中拦截。

受控用法

open 与 onOpenChange 控制对话框。自己渲染按钮并把 open 设为 true 即可打开;onConfirm 与 onCancel 用于执行操作副作用。

No changes published.

自定义内容

children 会在描述和操作按钮之间渲染额外内容。

无障碍

AlertDialog 渲染模态 alertdialog,由 title 命名,并由 description 描述。打开时焦点移动到浮层内,打开期间被限制在浮层中,关闭后返回触发器。

按 Escape 会关闭对话框,但不会调用 onCancel 或 onConfirm;如果按 Escape 不应关闭,请在 onOpenChange 中拦截。点击背景始终不会关闭警告对话框,因此请保留可见的取消操作。浮层焦点规则见可访问性指南。

API 参考

属性类型默认值说明
titleReactNode—对话框标题,必填。
descriptionReactNode—标题下方的说明文字。
childrenReactNode—描述与操作按钮之间的额外内容。
cancelLabelReactNode"Cancel"取消按钮文案。
confirmLabelReactNode"Confirm"确认按钮文案。
onCancelMouseEventHandler<HTMLButtonElement>—点击取消时调用。
onConfirmMouseEventHandler<HTMLButtonElement>—点击确认时调用。
openboolean—受控的打开状态。
defaultOpenbooleanfalse非受控时的初始打开状态。
onOpenChange(open: boolean, details) => void—对话框打开或关闭时调用。
onOpenChangeComplete(open: boolean) => void—打开或关闭动画结束后调用。
actionsRefRefObject<Actions | null>—命令式的 close 与 unmount 操作。
handleAlertDialogHandle—将对话框与外部触发器关联。
triggerIdstring | null—与对话框关联的触发器 ID。
defaultTriggerIdstring | null—初始打开时使用的触发器 ID。
classNamestring—合并到弹窗的 Tailwind 类名。
styleCSSProperties—内联样式,合并到与 className 相同的元素。
ui{ backdrop?: ClassValue; viewport?: ClassValue; popup?: ClassValue; glass?: ClassValue; overlay?: ClassValue; content?: ClassValue; title?: ClassValue; description?: ClassValue; body?: ClassValue; footer?: ClassValue }—按 data-slot 组织的内部槽位类名。
属性说明
data-open对话框打开时存在。
data-closed对话框关闭时存在。
data-starting-style对话框开始进入动画时存在。
data-ending-style对话框正在退出动画时存在。
data-nested对话框嵌套在另一个对话框内时存在。
data-nested-dialog-open对话框内部还有另一个对话框打开时存在。
data-slot标记内部部件(backdrop、viewport、popup、glass、overlay、content、title、description、body、footer),用于样式选择。

主题

组件使用共享玻璃材质。可以在父级调整 --ui-glass-* token,用 className 控制布局,并通过 ui 按 data-slot 调整内部槽位。组件级数值位于 src/theme/alert-dialog.ts。Token 分层与预设见主题指南。

相关组件

  • Dialog — 可更自由关闭的通用模态内容。
  • Drawer — 小屏幕上的贴边面板。
  • Button — 操作区使用的按钮样式。