Alert
A callout for displaying short messages with default, warning, and destructive variants.
Preview
alert-demo
Heads up
You can add components to your app from the registry.
Almost there
Your trial ends in three days.
Something went wrong
Your session has expired. Please sign in again.
Installation
pnpm dlx shadcn@latest add http://localhost:3000/r/alert.jsonSource
import * as React from "react";
import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "@/lib/utils";
const alertVariants = cva(
"group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",
{
variants: {
variant: {
default: "bg-muted text-foreground",
warning:
"border-warning/20 bg-warning/10 text-warning *:data-[slot=alert-description]:text-warning/90",
destructive:
"border-destructive/20 bg-destructive/10 text-destructive *:data-[slot=alert-description]:text-destructive/90",
},
},
defaultVariants: {
variant: "default",
},
},
);
function Alert({
className,
variant,
...props
}: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>) {
return (
<div
data-slot="alert"
role="alert"
className={cn(alertVariants({ variant }), className)}
{...props}
/>
);
}
function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
return (
<div
data-slot="alert-title"
className={cn("font-medium group-has-[>svg]/alert:col-start-2", className)}
{...props}
/>
);
}
function AlertDescription({ className, ...props }: React.ComponentProps<"div">) {
return (
<div
data-slot="alert-description"
className={cn("text-sm text-muted-foreground group-has-[>svg]/alert:col-start-2", className)}
{...props}
/>
);
}
export { Alert, AlertDescription, AlertTitle };Props
| Prop | Type | Default | Description |
|---|---|---|---|
variant | "default" | "warning" | "destructive" | "default" | Controls the tone of the callout. |
className | string | - | Adds custom classes to the alert container. |