componentes / feedback
Toast
Notificações empilhadas que somem sozinhas, com suporte a swipe e teclado.
toast-default.tsx
"use client";
import { Button } from "@/components/ui/button";
import { ToastProvider, useToast } from "@/components/ui/toast";
function Buttons() {
const toast = useToast();
return (
<div className="flex flex-wrap justify-center gap-3">
<Button onClick={() => toast.add({ title: "Changes saved", description: "Your profile is up to date.", type: "success" })} variant="outline">
show toast
</Button>
<Button onClick={() => toast.add({ title: "Upload failed", description: "Check your connection and try again.", type: "error" })} variant="outline">
show error
</Button>
</div>
);
}
export default function ToastDefault() {
return (
<ToastProvider>
<Buttons />
</ToastProvider>
);
}Instalação
$ npx shadcn@latest add https://cd-ui.vercel.app/r/toast.jsonprimeira vez? configure o components.json e o tema antes: veja instalação.
Uso
import { ToastProvider, useToast } from "@/components/ui/toast"
// once, at the root of your app
<ToastProvider>{children}</ToastProvider>
// anywhere below it
const toast = useToast()
toast.add({ title: "Saved", description: "Your changes are live.", type: "success" })API
ToastProvider
Base UI · Toast.ProviderEnvolva o app uma vez. Ele renderiza a pilha de notificações no canto inferior direito.
| prop | tipo | padrão |
|---|---|---|
timeoutTempo (ms) até o toast sumir sozinho. Use | number | 5000 |
limitNúmero máximo de toasts visíveis. | number | 3 |
closeLabelRótulo do X para leitor de tela. | string | "Close" |
useToast
Base UI · Toast.useToastManagerHook que devolve o gerenciador. Chame add({ title, description, type }) para mostrar um toast; ele também tem close e update.
| prop | tipo | padrão |
|---|---|---|
title · descriptionTexto mostrado no toast. | ReactNode | - |
typeTexto livre. | string | - |
createToastManager
Base UI · Toast.createToastManagerCria um gerenciador que funciona fora do React (passe ao ToastProvider como toastManager).
| prop | tipo | padrão |
|---|
Teclado
| tecla | ação |
|---|---|
| F6 | Move o foco para a área dos toasts. |
| Tab | Navega entre os toasts e seus botões de fechar. |
| EnterSpace | Fecha o toast quando o X dele está em foco. |
Acessibilidade
- Toasts são anunciados por leitores de tela sem tirar o foco. Não deixe a única cópia de uma informação importante num toast.
- O tempo pausa ao passar o mouse e quando a janela perde o foco, para dar tempo de ler.