UI Ingredients v1.6.0
Github

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.