Badge

Usage

Meeting recorded
import { Badge } from '@jamie/ui/badge'
 
export function BadgeDemo() {
  return <Badge>Meeting recorded</Badge>
}

Variants

All six badge variants: default, secondary, destructive, outline, ghost, and link.

DefaultSecondaryDestructiveOutlineGhostLink
import { Badge } from '@jamie/ui/badge'
 
export function BadgeVariantsDemo() {
  return (
    <div className="flex flex-wrap items-center gap-2">
      <Badge variant="default">Default</Badge>
      <Badge variant="secondary">Secondary</Badge>
      <Badge variant="destructive">Destructive</Badge>
      <Badge variant="outline">Outline</Badge>
      <Badge variant="ghost">Ghost</Badge>
      <Badge variant="link">Link</Badge>
    </div>
  )
}

With Icon

Use data-icon="inline-start" on an icon element to add proper spacing inside a badge.

RecordingProcessingComplete
import { Badge } from '@jamie/ui/badge'
import { CheckCircleIcon, ClockIcon, MicIcon } from 'lucide-react'
 
export function BadgeWithIconDemo() {
  return (
    <div className="flex flex-wrap items-center gap-2">
      <Badge>
        <MicIcon data-icon="inline-start" />
        Recording
      </Badge>
      <Badge variant="secondary">
        <ClockIcon data-icon="inline-start" />
        Processing
      </Badge>
      <Badge variant="outline">
        <CheckCircleIcon data-icon="inline-start" />
        Complete
      </Badge>
    </div>
  )
}