Toast
Aviso temporário que confirma uma ação sem tirar a pessoa do lugar.
O Toast confirma o resultado de uma ação rápida, como copiar um link ou publicar a Marca, e some sozinho. Para um problema que exige correção, use Alert inline. Um único Toast.Provider fica na raiz do app; os avisos saem de qualquer lugar com a função toast.
import { Toast, toast } from "@rastreio-x/ui";
Padrão e estados
toast(...) mostra um aviso neutro; toast.info, toast.success, toast.warning e toast.danger aplicam o estado. Cada um some após 4 segundos.
Com descrição e ação
description acrescenta contexto e actionProps traz um botão. Guarde o id para o botão fechar o próprio aviso.
Promessa
toast.promise acompanha uma tarefa: carregando, depois sucesso ou erro, no mesmo aviso.
Persistente
timeout: 0 mantém o aviso até a pessoa fechar. Use só quando houver o que decidir.
No Admin
Copiar é uma ação rápida: confirme por toast e, se falhar, diga o que fazer.
Configurar o Provider
Renderize Toast.Provider uma vez na raiz. O Admin usa o padrão; placement, maxVisibleToasts e width ajustam a pilha.
import { Toast } from "@rastreio-x/ui";
export function Root({ children }: { children: React.ReactNode }) {
return (
<>
{children}
<Toast.Provider />
</>
);
}
Anatomia
Toast.Indicator: ícone do estado.Toast.Content,Toast.TitleeToast.Description: o texto.Toast.ActionButtoneToast.CloseButton: ação e fechar.Toast.Provider: a região que empilha os avisos.
Propriedades
Provider (Toast.Provider):
Aviso (Toast):
Animações
Os avisos entram e saem com opacity e transform, empilham com leve escala e se reorganizam ao fechar um deles. Os temporizadores pausam ao passar o mouse ou focar. Com prefers-reduced-motion, a folha global da fachada reduz as transições a 0,01 ms.
Acessibilidade
- Os avisos ficam numa região de referência nomeada:
F6chega a ela eAlt+Tmove o foco direto. - Cada aviso é um
alertdialogcom título e descrição ligados, e é anunciado ao surgir. - Tab alcança os botões dos avisos visíveis; Esc recolhe a pilha.
- O tempo de 4 segundos pausa com hover, foco ou aba em segundo plano; não coloque nele informação que só existe ali.
Boas práticas
Faça
Evite
- Um aviso por ação; não dispare vários seguidos.
- Para problemas ligados ao contexto, prefira
Alertperto do campo ou do bloco. - Dê um botão de ação (
Desfazer) quando reverter for possível. - Texto sem caixa alta; sem "Sucesso!" genérico.
Relacionados
- Alert para problemas que ficam na tela.
- AlertDialog para confirmar antes de agir.
- Button que dispara a ação e o aviso.