🔥 欢迎体验我们的新项目 t0ggles - 您终极的项目管理工具! 🔥

对话框 React 组件

对话框是一种模态窗口,它显示在应用程序内容的前面,提供重要信息或提示做出决定。

对话框组件

包含以下组件:

  • Dialog - 对话框元素
  • DialogButton - 对话框按钮元素

对话框属性

名称类型默认值描述
backdrop布尔值true

启用弹窗背景(对话框后面的半透明暗层)

buttonsReactNode

对话框按钮内容

colors对象

包含 Tailwind CSS 颜色类的对象

colors.bgIos字符串'bg-white dark:bg-neutral-800'

iOS 主题中的对话框背景颜色

colors.bgMaterial字符串'bg-md-light-surface-3 dark:bg-md-dark-surface-3'

iOS 主题中的对话框背景颜色

colors.contentTextIos字符串''

iOS 主题中的内容文本颜色

colors.contentTextMaterial字符串'text-md-light-on-surface-variant dark:text-md-dark-on-surface-variant'

Material 主题中的内容文本颜色

colors.titleIos字符串''

iOS 主题中的标题文本颜色

colors.titleMaterial字符串'text-md-light-on-surface dark:text-md-dark-on-surface'

Material 主题中的标题文本颜色

component字符串'div'

组件的 HTML 元素

contentReactNode

对话框主要内容

opened布尔值false

允许打开/关闭弹窗并设置其初始状态

sizeIos字符串'w-[16.875rem]'

iOS 主题的 Tailwind CSS 尺寸类

sizeMaterial字符串'w-[19.5rem]'

Material 主题的 Tailwind CSS 尺寸类

titleReactNode

对话框标题内容

titleFontSizeIos字符串'text-[18px]'

iOS 主题的标题字体大小的 Tailwind CSS 类

titleFontSizeMaterial字符串'text-[24px]'

Material 主题的标题字体大小的 Tailwind CSS 类

translucent布尔值true

在 iOS 主题中使对话框背景半透明(使用 backdrop-filter: blur

onBackdropClickfunction(e)

背景元素上的点击处理程序

对话框按钮属性

名称类型默认值描述
colors对象

包含 Tailwind CSS 颜色类的对象

colors.activeBgIos字符串'active:bg-black active:bg-opacity-10 dark:active:bg-white dark:active:bg-opacity-10'

iOS 主题中活动/按下状态的背景颜色

colors.disabledTextIos字符串'text-black text-opacity-30 dark:text-white dark:text-opacity-30'

iOS 主题中禁用按钮的文本颜色

colors.textIos字符串''text-primary

iOS 主题中的文本颜色

component字符串'button'

组件的 HTML 元素

disabled布尔值false

使按钮失效

strong布尔值false

在 iOS 主题中使按钮加粗,在 Material 主题中使按钮填充,覆盖 strongIosstrongMaterial

strongIos布尔值false

在 iOS 主题中使按钮加粗

strongMaterial布尔值false

在 Material 主题中使按钮填充

onClickfunction(e)

对话框按钮的点击处理程序

示例

Dialog.jsx
import React, { useState } from 'react';
import {
Page,
Navbar,
NavbarBackLink,
Dialog,
DialogButton,
Block,
List,
ListItem,
Radio,
Button,
} from 'konsta/react';
export default function DialogPage() {
const [basicOpened, setBasicOpened] = useState(false);
const [alertOpened, setAlertOpened] = useState(false);
const [confirmOpened, setConfirmOpened] = useState(false);
const [listOpened, setListOpened] = useState(false);
const [radioValue, setRadioValue] = useState('batman');
return (
<Page>
<Navbar
title="Dialog"
/>
<Block strong inset className="space-y-4">
<p>
Dialog is a type of modal window that appears in front of app content
to provide critical information, or prompt for a decision to be made.
</p>
</Block>
<Block strong inset>
<p className="grid grid-cols-2 md:grid-cols-4 gap-4">
<Button rounded onClick={() => setBasicOpened(true)}>
Basic
</Button>
<Button rounded onClick={() => setAlertOpened(true)}>
Alert
</Button>
<Button rounded onClick={() => setConfirmOpened(true)}>
Confirm
</Button>
<Button rounded onClick={() => setListOpened(true)}>
List
</Button>
</p>
</Block>
<Dialog
opened={basicOpened}
onBackdropClick={() => setBasicOpened(false)}
title="Dialog Title"
content="Dialog is a type of modal window that appears in front of app content to provide critical information, or prompt for a decision to be made."
buttons={
<>
<DialogButton onClick={() => setBasicOpened(false)}>
Action 2
</DialogButton>
<DialogButton onClick={() => setBasicOpened(false)}>
Action 1
</DialogButton>
</>
}
/>
<Dialog
opened={alertOpened}
onBackdropClick={() => setAlertOpened(false)}
title="Konsta UI"
content="Hello world!"
buttons={
<DialogButton onClick={() => setAlertOpened(false)}>Ok</DialogButton>
}
/>
<Dialog
opened={confirmOpened}
onBackdropClick={() => setConfirmOpened(false)}
title="Konsta UI"
content="All good today?"
buttons={
<>
<DialogButton onClick={() => setConfirmOpened(false)}>
No
</DialogButton>
<DialogButton strong onClick={() => setConfirmOpened(false)}>
Yes
</DialogButton>
</>
}
/>
<Dialog
opened={listOpened}
onBackdropClick={() => setListOpened(false)}
title="Your super hero"
content={
<List nested className="-mx-4">
<ListItem
label
title="Batman"
after={
<Radio
component="div"
value="batman"
checked={radioValue === 'batman'}
onChange={() => setRadioValue('batman')}
/>
}
/>
<ListItem
label
title="Spider-man"
after={
<Radio
component="div"
value="spiderman"
checked={radioValue === 'spiderman'}
onChange={() => setRadioValue('spiderman')}
/>
}
/>
<ListItem
label
title="Hulk"
after={
<Radio
component="div"
value="hulk"
checked={radioValue === 'hulk'}
onChange={() => setRadioValue('hulk')}
/>
}
/>
</List>
}
buttons={
<DialogButton onClick={() => setListOpened(false)}>
Confirm
</DialogButton>
}
/>
</Page>
);
}
代码许可证为 MIT.
2022 © Konsta UI 由 nolimits4web.