Toast
A component for displaying brief, non-intrusive notifications or messages.
Anatomy
Usage
- Create a
toaster
instance
// lib/toaster.svelte.ts
import {createToaster} from 'ui-ingredients';
export const toaster = createToaster({
placement: 'bottom',
overlap: true,
});
- Add
Toaster
and Toast
components in your root layout
<!-- +layout.svelte -->
<script>
import {XCloseIcon} from '$lib/icons';
import {toaster} from '$lib/toaster.svelte.ts';
import {Toaster, Toast} from 'ui-ingredients';
let {children} = $props();
</script>
{@render children()}
<Toaster {toaster}>
<Toast.Root>
<Toast.Title />
<Toast.Description />
<Toast.CloseTrigger>
<XCloseIcon />
</Toast.CloseTrigger>
</Toast.Root>
</Toaster>
- Use
toaster
in your components
<!-- +page.svelte -->
<script>
import {toaster} from '$lib/toaster.svelte.ts';
</script>
<button
onclick={() => {
toaster.create({
title: 'Title',
description: 'Description',
});
}}
>
Create
</button>
API Reference
Root
Prop | Default | Description |
asChild | | Snippet Render a different element. |
Data Attribute | Value |
data-align | |
data-first | |
data-mounted | Present when mounted |
data-overlap | Present when overlapping |
data-part | root |
data-paused | Present when paused |
data-placement | The placement of the toast |
data-scope | toast |
data-sibling | |
data-side | |
data-stack | |
data-state | "open" | "closed" |
data-type | The type of the item |
ActionTrigger
Prop | Default | Description |
asChild | | Snippet Render a different element. |
CloseTrigger
Prop | Default | Description |
asChild | | Snippet Render a different element. |
Description
Prop | Default | Description |
asChild | | Snippet Render a different element. |
Group
Prop | Default | Description |
asChild | | Snippet Render a different element. |
Title
Prop | Default | Description |
asChild | | Snippet Render a different element. |
Toaster
Prop | Default | Description |
toaster | | CreateToasterReturn |
asChild | | Snippet Render a different element. |