UG666

UG666 UI

@ug666/react 文档演示

Modal 对话框

Modal 适合重要确认、表单弹窗和需要打断用户流程的操作。

导入方式

所有示例均直接使用 @ug666/react 中的真实组件导出。

import { Modal, ModalContent, ModalHeader, ModalTitle, ModalFooter, ModalCloseButton } from '@ug666/react'

变体预览

基础确认弹窗与更宽的说明弹窗。

状态展示

可用在危险确认、只读说明与复杂表单流程中。

尺寸展示

通过 ModalContent 的 maxWidth 控制弹窗宽度。

max-w-sm 紧凑确认max-w-lg 标准表单max-w-2xl 说明内容

代码示例

推荐配合 Button 与自定义内容组合实现业务确认流。

import { useState } from 'react'
import { Button, Modal, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalTitle } from '@ug666/react'

export function DeleteConfirmDialog() {
  const [open, setOpen] = useState(false)

  return (
    <>
      <Button variant="destructive" onClick={() => setOpen(true)}>删除项目</Button>
      <Modal open={open} onClose={() => setOpen(false)}>
        <ModalContent>
          <ModalHeader>
            <ModalTitle>确认删除</ModalTitle>
            <ModalCloseButton onClick={() => setOpen(false)} />
          </ModalHeader>
          <div className="px-6 pb-4 text-sm text-text-secondary">此操作不可撤销,请谨慎确认。</div>
          <ModalFooter>
            <Button variant="outline" onClick={() => setOpen(false)}>取消</Button>
            <Button variant="destructive">确认删除</Button>
          </ModalFooter>
        </ModalContent>
      </Modal>
    </>
  )
}

Props 说明

属性类型默认值说明
openbooleanfalse控制对话框显示与隐藏。
onClose() => void点击遮罩、按下 ESC 或关闭按钮时触发。
classNamestring自定义遮罩容器样式。
maxWidthstring'max-w-lg'ModalContent 的最大宽度类名。