Skip to content

对话框

属性 ​

属性类型默认值说明
isOpenboolean—对话框是否打开。该属性必填。
isInlinebooleanfalse以普通文档流渲染内容,不使用 <dialog>、遮罩与模态行为,仅用于文档预览。
widthnumber | string400首选宽度,数字单位为像素,字符串原样使用。窄屏时夹取到视口内,全屏变体忽略此项。
maxHeightnumber | string'75vh'最大高度,数字单位为像素,字符串原样使用。全屏变体忽略此项。
positionDialogPosition居中对话框的静态偏移,支持 top、bottom、start、end,未设置时居中。逻辑属性 start 与 end 在 RTL 下自动镜像,全屏变体忽略此项。
variant'standard' | 'fullscreen''standard'对话框变体:standard 为标准对话框,fullscreen 占满整个视口。
purpose'required' | 'form' | 'info''info'允许的关闭方式:required 禁用 Escape 与点击遮罩,必须由用户响应;form 仅允许 Escape;info 两者都允许。
padding0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10主题默认值(16px)对话框内边距,取值对应 --astryx-spacing-* 令牌。

事件 ​

  • openChange(isOpen: boolean):用户通过 Escape 或点击遮罩请求关闭时以 false 触发,是否触发取决于 purpose。父组件通过设置 isOpen 来关闭。

插槽 ​

  • default:对话框内容。通常为 DialogHeader,之后是正文与操作区。

DialogHeader 属性 ​

属性类型默认值说明
titlestring—对话框标题。打开时获得默认焦点,并为对话框命名。必填。
subtitlestring—标题下方的次要文字。为空时不渲染。
hasCloseButtonbooleanfalse显示关闭按钮,点击时发出 openChange(false)。
closeButtonLabelstring'Close'关闭按钮的无障碍名称。

DialogHeader 事件与插槽 ​

  • openChange(isOpen: boolean):点击关闭按钮时以 false 触发。
  • startContent:标题之前的内容,例如返回按钮。
  • endContent:标题之后、关闭按钮之前的内容。

useImperativeDialog ​

  • show(content, options?):以给定内容打开对话框。选项与传给 Hook 的默认选项合并。
  • hide():关闭对话框。
  • isOpen:只读的打开状态。
  • Host:在模板中渲染一次的组件。

主题 ​

css
.my-dialog {
  --astryx-dialog-background: #fff;
  --astryx-dialog-foreground: #000;
}
  • --astryx-dialog-background:表面颜色。
  • --astryx-dialog-foreground:文字颜色。
  • --astryx-dialog-overlay:遮罩颜色。
  • --astryx-dialog-shadow:表面阴影。
  • --astryx-dialog-padding:未设置 padding 属性时的默认内边距。
  • --astryx-dialog-title-color:标题颜色。