Badge
Displays a badge or a component that looks like a badge.
Badge
tsx
import { Badge } from "@/components/ui/badge"
export function BadgeDemo() { return <Badge>Badge</Badge>}
Installation
CLI
bash
npx fivui add badge
Manual
Copy and paste the following code into your project.
components/ui/badge.tsx
import * as React from "react"import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "@/lib/utils"
const badgeVariants = cva( "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", { variants: { variant: { default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", outline: "text-foreground", }, }, defaultVariants: { variant: "default", }, })
export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}
function Badge({ className, variant, ...props }: BadgeProps) { return ( <div className={cn(badgeVariants({ variant }), className)} {...props} /> )}
export { Badge, badgeVariants }
Usage
tsx
import { Badge } from "@/components/ui/badge"
tsx
<Badge variant="outline">Badge</Badge>
Examples
Default
Badge
tsx
import { Badge } from "@/components/ui/badge"
export function BadgeDemo() { return <Badge>Badge</Badge>}
Secondary
Secondary
tsx
import { Badge } from "@/components/ui/badge"
export function BadgeSecondary() { return <Badge variant="secondary">Secondary</Badge>}
Outline
Outline
tsx
import { Badge } from "@/components/ui/badge"
export function BadgeOutline() { return <Badge variant="outline">Outline</Badge>}
Destructive
Destructive
tsx
import { Badge } from "@/components/ui/badge"
export function BadgeDestructive() { return <Badge variant="destructive">Destructive</Badge>}
All Variants
Default
Secondary
Outline
Destructive
tsx
import { Badge } from "@/components/ui/badge"
export function BadgeVariants() { return ( <div className="flex gap-2"> <Badge>Default</Badge> <Badge variant="secondary">Secondary</Badge> <Badge variant="outline">Outline</Badge> <Badge variant="destructive">Destructive</Badge> </div> )}
API Reference
Badge
Prop | Type | Default | Description |
---|---|---|---|
variant | "default" | "secondary" | "destructive" | "outline" | "default" | The visual style variant of the badge |
Badge also accepts all standard HTML div attributes and React props.