Badge

PreviousNext

Displays a badge or a component that looks like a badge.

BadgeSecondaryDestructiveOutline
Verified89920+
import { AlertCircleIcon, BadgeCheckIcon, CheckIcon } from "lucide-react"

import { Badge } from "@/components/ui/badge"

export function BadgeDemo() {
  return (
    <div className="flex flex-col items-center gap-2">
      <div className="flex w-full flex-wrap gap-2">
        <Badge>Badge</Badge>
        <Badge variant="secondary">Secondary</Badge>
        <Badge variant="destructive">Destructive</Badge>
        <Badge variant="outline">Outline</Badge>
      </div>
      <div className="flex w-full flex-wrap gap-2">
        <Badge
          variant="secondary"
          className="bg-blue-500 text-white dark:bg-blue-600"
        >
          <BadgeCheckIcon />
          Verified
        </Badge>
        <Badge className="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums">
          8
        </Badge>
        <Badge
          className="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums"
          variant="destructive"
        >
          99
        </Badge>
        <Badge
          className="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums"
          variant="outline"
        >
          20+
        </Badge>
      </div>
    </div>
  )
}

Installation

pnpm dlx shadcn@latest add badge

Usage

import { Badge } from "@/components/ui/badge"
<Badge variant="default | outline | secondary | destructive">Badge</Badge>

Examples

You can use the badgeVariants helper to apply badge styling to other elements like links.

import Link from "next/link"

import { badgeVariants } from "@/components/ui/badge"

export function BadgeLinkDemo() {
  return (
    <div className="flex flex-wrap gap-2">
      <Link href="#" className={badgeVariants({ variant: "default" })}>
        Default Link
      </Link>
      <Link href="#" className={badgeVariants({ variant: "secondary" })}>
        Secondary Link
      </Link>
      <Link href="#" className={badgeVariants({ variant: "outline" })}>
        Outline Link
      </Link>
      <Link href="#" className={badgeVariants({ variant: "destructive" })}>
        Destructive Link
      </Link>
    </div>
  )
}
import Link from "next/link"
 
import { badgeVariants } from "@/components/ui/badge"
 
export function LinkAsBadge() {
  return (
    <Link href="/" className={badgeVariants({ variant: "default" })}>
      Badge Link
    </Link>
  )
}