浮层
Dialog
一个模态表面:portal、遮罩、居中面板。
示例
default
说明
Radix Dialog 的根节点、触发器和关闭按钮,以带类型的原样透传再导出。
属性
这个组件没有自己的属性。
组成部分
Composed at the call site rather than configured through props, so a layout this component did not anticipate is still expressible.
DialogContent
一块模态表面:portal → 遮罩 → 居中面板。
焦点陷阱、Escape 键、滚动锁定和 aria-modal 的接线都归 Radix 管——这些每一项手搓的对话框都会微妙地做错,通常是把焦点留在了底下的页面里。
不管显不显示,Radix 都要求有一个 Dialog.Title,所以一个没有可见标题的对话框仍然会渲染一个隐藏的,而不是打一条警告然后交付一个没有名字的模态。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| className | string | — | |
| description | ReactNode | 标题下面的副标题。 | |
| hideTitle | boolean | false | 保留给辅助技术的标题,但在视觉上隐藏它。 用于那些看得见的人一眼就明白用途的表面——命令面板、图片灯箱——在那里印一个标题只是多余的家具。标题本身从来不是可选的:Radix 要求有一个,而一个没有可访问名称的模态,会把读屏用户丢进一个无名的区域里。 |
| showClose | boolean | true | 显示右上角的关闭控件(默认 true)。 |
| title | ReactNode | 标题文字。不传时会渲染一个视觉隐藏的标题,供无障碍使用。 |
同时接受 Omit<ComponentProps<typeof DialogPrimitive.Content>, 'title' | 'className'> 里的全部属性,它们会直接透传给底层元素,不再逐条列出。
再导出
Dialog = DialogPrimitive.RootRadix Dialog 的根节点、触发器和关闭按钮,以带类型的原样透传再导出。
DialogTrigger = DialogPrimitive.TriggerDialogClose = DialogPrimitive.Close键盘操作
| 按键 | 作用 |
|---|---|
| Escape | 关闭对话框,焦点回到它来的那个触发器。 |
| Tab | 在对话框内部循环;打开期间焦点出不去。 |
无障碍
- 焦点陷阱、Escape、滚动锁定和 aria-modal 都由 Radix 负责。
- 没有可见标题的对话框仍然会渲染一个隐藏标题,而不是交付一个没有名字的模态。