Skip to Content
DocsResourcesPricingShowcase

Toast

Used to display a temporary message to the user

SourceStorybookRecipeArk

import { Toaster, toast } from '@saas-ui/react/toast'

First, render the Toaster component in your app.

<Toaster />

Then, create a toast by calling one of the toast functions.

  • toast.create
  • toast.success
  • toast.error
  • toast.warning
  • toast.info
  • toast.promise
toast.create({
  title: 'Toast Title',
  description: 'Toast Description',
})

Set the type prop to "loading" to create a persistent toast.

Here's an example of each type of toast.

Use the action and actionLabel prop to add an action to the toast.

When the action trigger is clicked, the toast will be closed.

Use the toaster.promise to create a toast that resolves when the promise is resolved.

Next, you can define the toast options (title, description, etc.) for each state of the promise.

Use the duration prop to set the duration of the toast.

Use the pause and resume methods on the toaster object to pause and play the toast.

Use the onStatusChange prop on the toaster function to listen for changes to the toast's status.

Set the max prop on the createToaster function to define the maximum number of toasts that can be rendered at any one time. Any extra toasts will be queued and rendered when a toast has been dismissed.

@/components/ui/toaster.tsx

const toaster = createToaster({
  max: 3,
})

Toasts can be displayed on all four corners of a page. We recommend picking one desired position and configure it in the createToaster function.

@/components/ui/toaster.tsx

const toaster = createToaster({
  position: 'top-right',
})

By default, toasts are stacked on top of each other. To make the toasts overlap each other, set the overlap prop to true in the createToaster function.

@/components/ui/toaster.tsx

const toaster = createToaster({
  position: 'top-right',
  overlap: true,
})

Set the offset prop in the createToaster function to offset the toasts from the edges of the screen.

@/components/ui/toaster.tsx

const toaster = createToaster({
  offset: '20px',
})

Alternatively, you can use the offset prop to set the offset for each edge of the screen.

@/components/ui/toaster.tsx

const toaster = createToaster({
  offset: { left: '20px', top: '20px', right: '20px', bottom: '20px' },
})

Previous

Timeline

Next

Toggle Tip