Alert
Mensajes que se quedan en la página. Uno por vista, con qué hacer después.
Mensaje que queda en la página. Usá uno por vista y decí qué hacer después.
Instalación
shadcn
npx shadcn@latest add https://design.moodinary.com/r/alert.jsonimport
import { Alert, AlertAction, AlertDescription, AlertTitle } from "@moodinary/ui/components/alert";Ejemplos
Variantes
Info, ok, warn y err. El error puede tener una acción para reintentar.
Cargá el calendario
Sumá fechas importantes para dar contexto a las lecturas del equipo.
Cambios guardados
Ya podés seguir trabajando con la configuración actualizada.
Revisá la configuración
Completá el nombre del equipo antes de compartir el enlace.
No pudimos cargar las analíticas
Probá de nuevo en unos minutos.
Código
variants.tsx
import {
Alert,
AlertAction,
AlertDescription,
AlertTitle,
} from "@moodinary/ui/components/alert";
import { Button } from "@moodinary/ui/components/button";
import {
AlertCircle,
CheckCircle,
TriangleAlertIcon,
} from "@moodinary/ui/components/icons";
export default function AlertVariants() {
return (
<div className="grid w-full gap-3">
<Alert variant="info">
<AlertCircle />
<AlertTitle>Cargá el calendario</AlertTitle>
<AlertDescription>
Sumá fechas importantes para dar contexto a las lecturas del equipo.
</AlertDescription>
</Alert>
<Alert variant="ok">
<CheckCircle />
<AlertTitle>Cambios guardados</AlertTitle>
<AlertDescription>
Ya podés seguir trabajando con la configuración actualizada.
</AlertDescription>
</Alert>
<Alert variant="warn">
<TriangleAlertIcon />
<AlertTitle>Revisá la configuración</AlertTitle>
<AlertDescription>
Completá el nombre del equipo antes de compartir el enlace.
</AlertDescription>
</Alert>
<Alert variant="err">
<TriangleAlertIcon />
<AlertTitle>No pudimos cargar las analíticas</AlertTitle>
<AlertDescription>Probá de nuevo en unos minutos.</AlertDescription>
<AlertAction>
<Button
onClick={() => window.location.reload()}
size="sm"
variant="secondary"
>
Reintentar
</Button>
</AlertAction>
</Alert>
</div>
);
}Default
Para información neutral sin ícono.
Información del equipo
Este mensaje permanece en la página mientras revisás la configuración.
Código
default.tsx
import {
Alert,
AlertDescription,
AlertTitle,
} from "@moodinary/ui/components/alert";
export default function AlertDefault() {
return (
<Alert>
<AlertTitle>Información del equipo</AlertTitle>
<AlertDescription>
Este mensaje permanece en la página mientras revisás la configuración.
</AlertDescription>
</Alert>
);
}Props
Alert
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
| variant | "default" | "info" | "ok" | "warn" | "err" | "destructive" | "default" | Tono del mensaje. destructive queda como alias legacy. |
| role | AriaRole | "status" o "alert" | err usa alert; el resto status. |
AlertAction
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
| children | ReactNode | - | Acción pegada arriba a la derecha. |
Cuándo sí y cuándo no
Hacé
- Escribí un título concreto.
- Explicá el siguiente paso.
- Usá err solo cuando algo falló.
Evitá
- No apiles muchas alertas.
- No uses alert para confirmaciones pasajeras; usá toast.
- No muestres códigos técnicos como único texto.
Accesibilidad
- err anuncia el mensaje con
role="alert"; las otras usan status. - La acción se alcanza con Tab.