跳转到正文

Dialog对话框

模态对话框;焦点陷阱、Escape、滚动锁与恢复由 Base UI 管理。

Alpha

确认或编辑局部内容;保持清晰标题、取消路径与焦点恢复。

引入

TSX
import { Dialog } from "@cwa-design/react";
import "@cwa-design/react/styles.css"; // 应用入口引入一次

当前通过源码 workspace 使用。查看有效安装步骤 →

交互示例

可切换示例主题、开启实色降级并重置状态。应用根部需要 CwaProvider。

Dialog 基础用法

可运行示例 · 与复制源码同源

正在准备交互示例…

dialog-basic
查看与复制源码
TSX
// 应用入口引入 @cwa-design/react/styles.css,并将此示例置于 CwaProvider 内。
import { Button, Dialog, Stack } from "@cwa-design/react";

export default function Example() {
  return (
    <Dialog>
      <Dialog.Trigger render={<Button>新建工作区</Button>} />
      <Dialog.Content>
        <Dialog.Title>新建工作区</Dialog.Title>
        <Dialog.Description>确认后会在当前应用中创建团队空间。</Dialog.Description>
        <Stack direction="row" gap={2}>
          <Dialog.Close render={<Button variant="secondary">取消</Button>} />
          <Dialog.Close render={<Button>确认</Button>} />
        </Stack>
      </Dialog.Content>
    </Dialog>
  );
}

在应用根部引入 styles.css 并配置 CwaProvider。源码 SHA-256:ac6c1f9351fd

API

下表读取本版本组件契约。原生与 Base UI 继承属性的完整定义保留在 TypeScript 声明中。

类型:DialogRootProps · 继承 @base-ui/react/dialog#DialogRootProps;open/defaultOpen/onOpenChange/modal 等完整继承 · 候选源类型 ↗

属性说明类型默认值
childrenReactNode;内容由调用方提供ReactNode;内容由调用方提供—

Dialog.Trigger

Base UI Dialog Trigger 类型;CWA 可附加默认样式类。

类型:DialogTriggerProps · 继承 @base-ui/react/dialog#DialogTriggerProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗

没有新增 CWA 属性;完整继承属性见上方源类型声明。

Dialog.Close

Base UI Dialog Close 类型;CWA 可附加默认样式类。

类型:DialogCloseProps · 继承 @base-ui/react/dialog#DialogCloseProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗

没有新增 CWA 属性;完整继承属性见上方源类型声明。

Dialog.Title

Base UI Dialog Title 类型;CWA 可附加默认样式类。

类型:DialogTitleProps · 继承 @base-ui/react/dialog#DialogTitleProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗

没有新增 CWA 属性;完整继承属性见上方源类型声明。

Dialog.Description

Base UI Dialog Description 类型;CWA 可附加默认样式类。

类型:DialogDescriptionProps · 继承 @base-ui/react/dialog#DialogDescriptionProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗

没有新增 CWA 属性;完整继承属性见上方源类型声明。

Dialog.Content

Dialog 的主题化 Portal/Popup 组合;材质只写在此部件。

类型:DialogContentProps · 候选源类型 ↗

属性说明类型默认值
childrenReactNode;内容由调用方提供ReactNode;内容由调用方提供—
className附加样式类;具体合并行为以实现为准string—
material见类型定义"glass-thick" | "solid""glass-thick"

材质与状态

较厚玻璃

材质规则来自源 metadata。覆盖玻璃区域的浮层按实际重叠关系选择较厚或实色材质。

材质属于 Dialog.Content;默认 glass-thick,嵌套玻璃区域显式 solid。Provider solid 与系统回退优先。

媒体对照舞台

打开浮层,检查玻璃透色、边缘与阴影在真实亮/暗照片上的表现。

打开、选中、禁用与焦点状态叠加在同一背景上;Tab 检查焦点可见性。

适用的状态与行为见示例及本页 API;系统减少透明与显式 solid 配置会启用回退。

阅读材质指南 →

关联 Token

以下变量从组件源样式的实际引用生成。共享光学规则还使用全局玻璃 Token。

--cwa-design-color-scrim--cwa-design-space-6--cwa-design-space-5--cwa-design-radius-sheet--cwa-design-color-text--cwa-design-font-family--cwa-design-font-size-body--cwa-design-shadow-elevation-large-contact-y--cwa-design-shadow-elevation-large-contact-blur--cwa-design-shadow-elevation-large-ambient-y--cwa-design-shadow-elevation-large-ambient-blur--cwa-design-color-surface-raised--cwa-design-color-border-subtle--cwa-design-shadow-contact-y--cwa-design-shadow-contact-blur--cwa-design-color-glass-contact-shadow--cwa-design-shadow-ambient-y--cwa-design-shadow-ambient-blur--cwa-design-color-glass-ambient-shadow--cwa-design-space-2--cwa-design-font-size-title--cwa-design-font-leading-body--cwa-design-space-4--cwa-design-font-size-caption--cwa-design-color-text-muted--cwa-design-space-3
在主题实验室调整公开 Token →

无障碍与使用约束

  • semantic-content
  • visible-focus-for-interactive-parts
  • keyboard-behavior-from-native-or-base-ui

这些是组件契约与使用要求。具体业务页面仍需验证标签、阅读顺序与实际背景下的对比度。

查看无障碍使用指南 →