shadcn-remix
GitHub

Badge

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

BadgeSecondaryDestructiveOutline
Verified89920+
import { css } from 'remix/component'

import { Badge } from '#app/ui/badge.tsx'
import { BadgeCheckIcon } from '#app/ui/icons.tsx'

const row = css({ display: 'flex', width: '100%', flexWrap: 'wrap', gap: '0.5rem' })
import { css } from 'remix/component'

import { Badge } from '#app/ui/badge.tsx'
import { BadgeCheckIcon } from '#app/ui/icons.tsx'

const row = css({ display: 'flex', width: '100%', flexWrap: 'wrap', gap: '0.5rem' })

const counter = css({
  height: '1.25rem',
  minWidth: '1.25rem',
  borderRadius: '9999px',
  paddingInline: '0.25rem',
  fontFamily: 'var(--font-mono)',
  fontVariantNumeric: 'tabular-nums',
})

export function BadgeDemo() {
  return () => (
    <div mix={css({ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '0.5rem' })}>
      <div mix={row}>
        <Badge>Badge</Badge>
        <Badge variant="secondary">Secondary</Badge>
        <Badge variant="destructive">Destructive</Badge>
        <Badge variant="outline">Outline</Badge>
      </div>
      <div mix={row}>
        <Badge
          variant="secondary"
          mix={css({
            backgroundColor: 'oklch(62.3% 0.214 259.815)',
            color: 'white',
            '.dark &': { backgroundColor: 'oklch(54.6% 0.245 262.881)' },
          })}
        >
          <BadgeCheckIcon />
          Verified
        </Badge>
        <Badge mix={counter}>8</Badge>
        <Badge mix={counter} variant="destructive">
          99
        </Badge>
        <Badge mix={counter} variant="outline">
          20+
        </Badge>
      </div>
    </div>
  )
}

Installation

$ pnpm dlx shadcn@latest add https://www.shadcn-remix.com/r/badge.json

Usage

import { Badge } from '#app/ui/badge.tsx'
<Badge variant="default | outline | secondary | destructive">Badge</Badge>

Examples

Destructive

Destructive
import { Badge } from '#app/ui/badge.tsx'

export function BadgeDestructive() {
  return () => <Badge variant="destructive">Destructive</Badge>
}
import { Badge } from '#app/ui/badge.tsx'

export function BadgeDestructive() {
  return () => <Badge variant="destructive">Destructive</Badge>
}

Outline

Outline
import { Badge } from '#app/ui/badge.tsx'

export function BadgeOutline() {
  return () => <Badge variant="outline">Outline</Badge>
}
import { Badge } from '#app/ui/badge.tsx'

export function BadgeOutline() {
  return () => <Badge variant="outline">Outline</Badge>
}

Secondary

Secondary
import { Badge } from '#app/ui/badge.tsx'

export function BadgeSecondary() {
  return () => <Badge variant="secondary">Secondary</Badge>
}
import { Badge } from '#app/ui/badge.tsx'

export function BadgeSecondary() {
  return () => <Badge variant="secondary">Secondary</Badge>
}

API Reference

Badge

PropTypeDefault
variantBadgeVariant"default"
mixMixValue-