对话框是一种类型的模态窗口,它出现在应用程序内容的前面,以提供关键信息或提示用户做出决定。
包含以下组件:
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 主题中使对话框背景半透明(使用 |
onBackdropClick | function(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 主题中填充,覆盖 |
strongIos | 布尔值 | false | 在 iOS 主题中使按钮粗体 |
strongMaterial | 布尔值 | false | 在 Material 主题中使按钮填充 |
onClick | function(e) | 对话框按钮点击处理程序 |
名称 | 描述 |
---|---|
buttons | 对话框按钮内容 |
content | 对话框主要内容 |
title | 对话框标题内容 |
<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 toprovide 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 providecritical 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><Dialogopened={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"><Radiocomponent="div"value="batman"checked={radioValue === 'batman'}onChange={() => (radioValue = 'batman')}/></svelte:fragment></ListItem><ListItem label title="Spider-man"><svelte:fragment slot="after"><Radiocomponent="div"value="spiderman"checked={radioValue === 'spiderman'}onChange={() => (radioValue = 'spiderman')}/></svelte:fragment></ListItem><ListItem label title="Hulk"><svelte:fragment slot="after"><Radiocomponent="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>