🔥 遇见我们的新项目 t0ggles - 你终极的项目管理工具! 🔥

对话框 Svelte 组件

对话框是一种类型的模态窗口,它出现在应用程序内容的前面,以提供关键信息或提示用户做出决定。

对话框组件

包含以下组件:

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

对话框属性

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

启用弹出窗口背景(弹出窗口后面的半透明暗层)

buttons字符串

对话框按钮内容

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 主题中的标题文本颜色

content字符串

对话框主要内容

opened布尔值false

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

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

iOS 主题的 Tailwind CSS 大小类

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

Material 主题的 Tailwind CSS 大小类

title字符串

对话框标题内容

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 主题中的文本颜色

disabled布尔值false

使按钮禁用

strong布尔值false

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

strongIos布尔值false

在 iOS 主题中使按钮粗体

strongMaterial布尔值false

在 Material 主题中使按钮填充

onClickfunction(e)

对话框按钮点击处理程序

对话框插槽

名称描述
buttons

对话框按钮内容

content

对话框主要内容

title

对话框标题内容

示例

Dialog.svelte
<script>
import {
Page,
Navbar,
NavbarBackLink,
Block,
Button,
Dialog,
DialogButton,
List,
ListItem,
Radio,
} from 'konsta/svelte';
let basicOpened = false;
let alertOpened = false;
let confirmOpened = false;
let listOpened = false;
let radioValue = 'batman';
</script>
<Page>
<Navbar title="Dialog" />
<Block strong inset class="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 class="grid grid-cols-2 md:grid-cols-4 gap-4">
<Button rounded onClick={() => (basicOpened = true)}>Basic</Button>
<Button rounded onClick={() => (alertOpened = true)}>Alert</Button>
<Button rounded onClick={() => (confirmOpened = true)}>Confirm</Button>
<Button rounded onClick={() => (listOpened = true)}>List</Button>
</p>
</Block>
<Dialog opened={basicOpened} onBackdropClick={() => (basicOpened = false)}>
<svelte:fragment slot="title">Dialog Title</svelte:fragment>
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.
<svelte:fragment slot="buttons">
<DialogButton onClick={() => (basicOpened = false)}>
Action 2
</DialogButton>
<DialogButton onClick={() => (basicOpened = false)}>
Action 1
</DialogButton>
</svelte:fragment>
</Dialog>
<Dialog opened={alertOpened} onBackdropClick={() => (alertOpened = false)}>
<svelte:fragment slot="title">Konsta UI</svelte:fragment>
Hello world!
<svelte:fragment slot="buttons">
<DialogButton onClick={() => (alertOpened = false)}>Ok</DialogButton>
</svelte:fragment>
</Dialog>
<Dialog
opened={confirmOpened}
onBackdropClick={() => (confirmOpened = false)}
>
<svelte:fragment slot="title">Konsta UI</svelte:fragment>
All good today?
<svelte:fragment slot="buttons">
<DialogButton onClick={() => (confirmOpened = false)}>No</DialogButton>
<DialogButton strong onClick={() => (confirmOpened = false)}>
Yes
</DialogButton>
</svelte:fragment>
</Dialog>
<Dialog opened={listOpened} onBackdropClick={() => (listOpened = false)}>
<svelte:fragment slot="title">Your super hero</svelte:fragment>
<List nested class="-mx-4">
<ListItem label title="Batman">
<svelte:fragment slot="after">
<Radio
component="div"
value="batman"
checked={radioValue === 'batman'}
onChange={() => (radioValue = 'batman')}
/>
</svelte:fragment>
</ListItem>
<ListItem label title="Spider-man">
<svelte:fragment slot="after">
<Radio
component="div"
value="spiderman"
checked={radioValue === 'spiderman'}
onChange={() => (radioValue = 'spiderman')}
/>
</svelte:fragment>
</ListItem>
<ListItem label title="Hulk">
<svelte:fragment slot="after">
<Radio
component="div"
value="hulk"
checked={radioValue === 'hulk'}
onChange={() => (radioValue = 'hulk')}
/>
</svelte:fragment>
</ListItem>
</List>
<svelte:fragment slot="buttons">
<DialogButton onClick={() => (listOpened = false)}>Confirm</DialogButton>
</svelte:fragment>
</Dialog>
</Page>
代码许可证为 MIT.
2022 © Konsta UI 由 nolimits4web.