Moodinary/UI

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.json
import
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.
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

PropTipoDefaultDescripción
variant"default" | "info" | "ok" | "warn" | "err" | "destructive""default"Tono del mensaje. destructive queda como alias legacy.
roleAriaRole"status" o "alert"err usa alert; el resto status.

AlertAction

PropTipoDefaultDescripción
childrenReactNode-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.