shadcn.io is an independent project built on shadcn/ui
The header is centered. The description says 100 tasks were completed. The card reads Century Club. Those figures are static. Awesome does not grant anything.
Save this for a real milestone, not every save. A routine success is a Toast. In React, Base UI does not count completed tasks.
Installation
Anatomy

Usage
<AlertDialog>
<AlertDialogTrigger render={<Button />}>Complete Action</AlertDialogTrigger>
<AlertDialogContent>
<AlertDialogHeader className="sm:place-items-center sm:text-center">
<div className="mb-2 flex size-12 items-center justify-center rounded-full bg-primary/10">
<PartyPopperIcon aria-hidden="true" className="size-6 text-primary" />
</div>
<AlertDialogTitle>Milestone Achieved!</AlertDialogTitle>
<AlertDialogDescription>
Congratulations! You've completed 100 tasks. Keep up the great
work!
</AlertDialogDescription>
</AlertDialogHeader>
<div className="rounded-lg bg-linear-to-r from-primary/10 to-primary/5 p-4 text-center">
<div className="font-medium text-muted-foreground text-xs uppercase">
Achievement Unlocked
</div>
<div className="mt-1 font-semibold text-lg">Century Club</div>
</div>
<AlertDialogFooter>
<AlertDialogAction>Awesome!</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>FAQ
When is a celebration better than a plain success?
For rare milestones most people won't reach every day. Celebrating routine completions wears the effect out.
How is the card styled?
bg-linear-to-r from-primary/10 to-primary/5, a soft wash of the theme's primary color that works in light and dark mode. Keep it subtle in a serious product.
Which icon suits a celebration?
A party popper for playful milestones, a trophy for competitive ones, a cake for anniversaries. It sits in a size-12 bg-primary/10 circle and is aria-hidden.
API Reference
Alert Dialog
No extra props in this demo. The rest is on the Alert Dialog page.
Button
No extra props in this demo. The rest is on the Button page.



