vaiperui

componentes / alert

Alert

Mensagem inline com título, descrição, ícone, ação opcional e botão de fechar.

Como usar

Use para feedback ligado a um lugar da página, como validação de formulário ou status de integração. `warning` e `danger` são anunciados de forma assertiva (`role="alert"`), os demais de forma educada. O botão de fechar só aparece com `onDismiss`. Para avisos temporários use `Toast`, para os da página inteira `Banner`.

preview
Salvo
Suas alterações foram salvas.
Alert.tsx
import { Alert, Button } from "vaiperui";
<Alert variantColor="success" title="Salvo">
Suas alterações foram salvas.
</Alert>
<Alert
variantColor="warning"
title="Alterações não salvas"
action={<Button size="sm" variant="transparent">Salvar agora</Button>}
onDismiss={() => setOpen(false)}
>
...
</Alert>

Cores

preview
primary
primary
success
success
warning
danger
cores.tsx
<Alert variantColor="primary">primary</Alert>
<Alert variantColor="success">success</Alert>
<Alert variantColor="warning">warning</Alert>
<Alert variantColor="danger">danger</Alert>

Tamanhos

preview
sm
sm
md
md
lg
lg
tamanhos.tsx
<Alert size="sm">sm</Alert>
<Alert size="md">md</Alert>
<Alert size="lg">lg</Alert>

Cor personalizada

preview
Violeta
Violeta
cor-personalizada.tsx
<Alert customColor="#8b5cf6">Violeta</Alert>

Props

PropValoresPadrãoDescrição
variantColorprimary | success | warning | dangerprimaryCor e ícone padrão. warning e danger usam role=alert, os demais role=status
customColorstring | { light, dark }nenhumQualquer cor CSS (ou um par por tema). Substitui o variantColor
sizesm | md | lgmdEspaçamento e tamanho do texto
radiusnone | sm | md | lg | fulllgArredondamento dos cantos
titleReactNodenenhumResumo em negrito acima da descrição (os children)
iconReactNode | falseícone de statusSeu próprio ícone, ou false para ocultar
actionReactNodenenhumEspaço para uma ação, como um Button pequeno transparente ou um link
onDismiss() => voidnenhumMostra o botão de fechar e roda ao clicar; você decide se desmonta
dismissLabelstringDismissNome acessível do botão de fechar
(nativas)HTMLAttributes<HTMLDivElement>nenhumrole (substitui o padrão), className, style, aria-*, ref etc.

Acessibilidade

  • `warning` e `danger` usam `role="alert"` (assertivo); `primary` e `success` usam `role="status"` (educado).
  • Passe `role` para sobrescrever o padrão, por exemplo `role="status"` em um alerta `danger` que não deve interromper.
  • O ícone de status padrão é `aria-hidden`; é decoração e não tem significado para leitores de tela.
  • O botão de fechar é um `<button>` real com `aria-label` vindo de `dismissLabel` (padrão "Dismiss") e anel de foco visível.
  • O slot `action` renderiza o seu elemento, então mantenha-o focável (botão ou link) com um rótulo claro.

Tenha em mente

  • Traduza `dismissLabel` você mesmo; o padrão é em inglês.
  • Não dependa só da cor: sempre inclua um `title` ou texto que diga o significado.
  • Fechar não move o foco; se o foco estava dentro do alerta, leve-o a um lugar adequado no `onDismiss`.