UI

Toast

Notificação passageira que confirma uma ação ou avisa sobre algo sem interromper o que o usuário está fazendo.

Instalação

npx shadcn@latest add @lenstech/toast

Uso

A API é inspirada no sonner: monte o <Toaster /> uma única vez e dispare toasts de qualquer lugar com toast().

Adicione o <Toaster /> ao layout raiz do app:

app/layout.tsx
import { Toaster } from "@/components/ui/toast"

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="pt-BR">
      <body>
        {children}
        <Toaster />
      </body>
    </html>
  )
}

Chame toast onde precisar — em handlers, após uma requisição etc.:

import { toast } from "@/components/ui/toast"

toast.success("Orçamento enviado", {
  description: "O cliente receberá o PDF por e-mail.",
})

API UNSTABLE_ do React Aria

O Toast é construído sobre UNSTABLE_ToastRegion e UNSTABLE_Toast do React Aria. O prefixo indica que a API do React Aria ainda pode mudar, mas ela já implementa região acessível, anúncio para leitores de tela, navegação por F6 e pausa do tempo no hover/foco. Como o seu código só usa toast() e <Toaster />, uma eventual mudança fica restrita ao arquivo do componente.

Um Toaster só

Todos os toasts usam uma fila global. Se mais de um <Toaster /> for montado, apenas o primeiro é exibido (os exemplos desta página montam o seu próprio só para a prévia funcionar). Por isso a prop position vale apenas para o <Toaster /> do layout.

Exemplos

Variantes

toast(), toast.success(), toast.error(), toast.warning() e toast.info(). Cada variante tem ícone e cor de borda próprios.

Com ação

Passe action para oferecer, por exemplo, "Desfazer". Toasts com ação não somem sozinhos, a menos que você informe timeout.

Pedidos arquivados: 0

Ação assíncrona

toast() retorna um id. Use timeout: 0 para um aviso que fica na tela e toast.dismiss(id) para fechá-lo quando a requisição terminar.

Quando usar

  • Use para confirmar que algo aconteceu ("Cadastro salvo") ou avisar sobre falhas recuperáveis.
  • Não use para informação que o usuário precisa ler com calma ou que deve continuar visível — use Alert.
  • Não use para pedir uma decisão — use Alert Dialog.
  • Não use para erros de validação de campos: mostre a mensagem junto ao campo.

API

toast

Prop

Type

ToastOptions

Prop

Type

Toaster

Região onde os toasts aparecem, baseada no ToastRegion do React Aria.

Prop

Type

On this page