🔥 認識我們的新專案 t0ggles - 您的終極專案管理工具! 🔥

Dialog Svelte 組件

對話框是一種模態視窗,它會出現在應用程式內容的前面,以提供重要資訊,或提示使用者做出決定。

對話框元件

包含以下元件:

  • Dialog - 對話框元素
  • DialogButton - 對話框按鈕元素

對話框屬性

名稱類型預設值描述
backdropbooleantrue

啟用彈出視窗的背景 (後方的深色半透明圖層)

buttonsstring

對話框按鈕內容

colorsobject

包含 Tailwind CSS 顏色類別的物件

colors.bgIosstring'bg-white dark:bg-neutral-800'

iOS 主題中的對話框背景顏色

colors.bgMaterialstring'bg-md-light-surface-3 dark:bg-md-dark-surface-3'

iOS 主題中的對話框背景顏色

colors.contentTextIosstring''

iOS 主題中的內容文字顏色

colors.contentTextMaterialstring'text-md-light-on-surface-variant dark:text-md-dark-on-surface-variant'

Material 主題中的內容文字顏色

colors.titleIosstring''

iOS 主題中的標題文字顏色

colors.titleMaterialstring'text-md-light-on-surface dark:text-md-dark-on-surface'

Material 主題中的標題文字顏色

contentstring

對話框主要內容

openedbooleanfalse

允許開啟/關閉彈出視窗並設定其初始狀態

sizeIosstring'w-[16.875rem]'

iOS 主題的 Tailwind CSS 大小類別

sizeMaterialstring'w-[19.5rem]'

Material 主題的 Tailwind CSS 大小類別

titlestring

對話框標題內容

titleFontSizeIosstring'text-[18px]'

iOS 主題標題字體大小的 Tailwind CSS 類別

titleFontSizeMaterialstring'text-[24px]'

Material 主題標題字體大小的 Tailwind CSS 類別

translucentbooleantrue

在 iOS 主題中使對話框背景半透明 (使用 backdrop-filter: blur)

onBackdropClickfunction(e)

背景元素上的點擊處理器

DialogButton 屬性

名稱類型預設值描述
colorsobject

包含 Tailwind CSS 顏色類別的物件

colors.activeBgIosstring'active:bg-black active:bg-opacity-10 dark:active:bg-white dark:active:bg-opacity-10'

iOS 主題中作用中/按下狀態的背景顏色

colors.disabledTextIosstring'text-black text-opacity-30 dark:text-white dark:text-opacity-30'

iOS 主題中已停用按鈕的文字顏色

colors.textIosstring''text-primary

iOS 主題中的文字顏色

disabledbooleanfalse

使按鈕停用

strongbooleanfalse

在 iOS 主題中使按鈕粗體,並在 Material 主題中填滿,覆寫 strongIosstrongMaterial

strongIosbooleanfalse

在 iOS 主題中使按鈕粗體

strongMaterialbooleanfalse

在 Material 主題中使按鈕填滿

onClickfunction(e)

DialogButton 點擊處理器

對話框插槽

名稱描述
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 by nolimits4web.