Alert
cardfrom shadcn/ui Essentials
Alert
AI Usage Rules
Use Alert for important messages that need attention. Default variant for informational, destructive for errors. Include an icon before the title for better visual hierarchy.
Code Template
import * as React from "react"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/utils"
const alertVariants = cva(
"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
{
variants: {
variant: {
default: "bg-card text-card-foreground",
destructive: "bg-card 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("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className)} {...props} />
}
function AlertDescription({ className, ...props }: React.ComponentProps<"div">) {
return <div data-slot="alert-description" className={cn("col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed", className)} {...props} />
}
export { Alert, AlertTitle, AlertDescription }Props Schema
| Property | Type | Default | Description |
|---|---|---|---|
| title | string | — | |
| variant | string | — | |
| description | string | — |
View raw JSON schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"variant": {
"enum": [
"default",
"destructive"
],
"type": "string"
},
"description": {
"type": "string"
}
}
}