Documentation Index
Fetch the complete documentation index at: https://mintlify.com/shadcn-ui/ui/llms.txt
Use this file to discover all available pages before exploring further.
Installation
npx shadcn@latest add badge
import { Badge } from "@/components/ui/badge"
Component Code
import * as React from "react"
import { cva, type VariantProps } from "class-variance-authority"
import { Slot } from "radix-ui"
import { cn } from "@/lib/utils"
const badgeVariants = cva(
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:pointer-events-none [&>svg]:size-3",
{
variants: {
variant: {
default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
secondary:
"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
destructive:
"bg-destructive text-white [a&]:hover:bg-destructive/90",
outline:
"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
link: "text-primary underline-offset-4 [a&]:hover:underline",
},
},
defaultVariants: {
variant: "default",
},
}
)
function Badge({
className,
variant = "default",
asChild = false,
...props
}: React.ComponentProps<"span"> &
VariantProps<typeof badgeVariants> & { asChild?: boolean }) {
const Comp = asChild ? Slot.Root : "span"
return (
<Comp
data-slot="badge"
data-variant={variant}
className={cn(badgeVariants({ variant }), className)}
{...props}
/>
)
}
export { Badge, badgeVariants }
Examples
Default
Secondary
Destructive
Outline
With Icon
The default badge variant. Use the secondary variant for less prominent badges.<Badge variant="secondary">Secondary</Badge>
Use the destructive variant for error states.<Badge variant="destructive">Destructive</Badge>
Use the outline variant for a subtle badge.<Badge variant="outline">Outline</Badge>
Add icons to badges for additional context.<Badge>
<CheckIcon />
Verified
</Badge>
Variants
The Badge component supports the following variants:
default - Primary badge style
secondary - Secondary, less prominent style
destructive - For errors or warnings
outline - Outlined badge with transparent background
ghost - Minimal styling, visible on hover
link - Styled as a link with underline on hover
API Reference
| Prop | Type | Default |
|---|
variant | "default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | "default" |
asChild | boolean | false |
className | string | - |