Toast

Brief messages that stack in a corner and dismiss themselves.

'use client';

import { Button, ToastProvider, useToast } from '@brand-studio/ui';

function AddToBasket() {
  const toast = useToast();
  return (
    <Button onClick={() => toast.add({ title: 'Added to basket', description: 'Ethiopia Guji, 250 g' })}>
      Add to basket
    </Button>
  );
}

export default function ToastDemo() {
  return (
    <ToastProvider>
      <AddToBasket />
    </ToastProvider>
  );
}

Installation

pnpm add @brand-studio/ui

Usage

import { ToastProvider, useToast } from '@brand-studio/ui';
function SaveButton() {
  const toast = useToast();
  return <Button onClick={() => toast.add({ title: 'Saved' })}>Save</Button>;
}

<ToastProvider>
  <SaveButton />
</ToastProvider>

Accessibility

  • Toasts are announced to screen readers and dismiss after five seconds; hovering or focusing pauses the timer.
  • F6 moves focus to the toast region. Swipe or press the close button to dismiss.
  • Call useToast() anywhere inside ToastProvider.

API Reference

PropTypeDefault
childrenReact.ReactNode
timeout?number5000
limit?number3
closeLabel?string'Dismiss'

Still, Deskhand and Hollis are fictional brands. The coffee photographs are original generated artwork. @brand-studio/ui is MIT licensed.