Badge
A non-interactive label used to highlight short, scannable information — a status, a category tag, or a count — in the smallest possible footprint.
When to use
- Status indicators:
Succeeded,Failed,Pending,Beta. - Category or tag chips alongside list items, table rows, or cards.
- Counts (e.g.
12 new) when paired with brief context.
When not to use
- For interactive UI. Badges are not buttons or links; use
ButtonorAnchor(optionally withasChildstyling) instead. - For long-form text. Keep labels to one or two short words.
- As the sole signal of meaning. Pair color with a label or icon so the distinction works without color (color blindness, monochrome themes).
Choosing a color
Prefer functional colors (success, warning, danger, info, accent, neutral) for status meaning so theming stays coherent. Reach for named hues only when the badge's semantic role isn't already covered.
- Muted amberMuted amber
- Muted blueMuted blue
- Muted cyanMuted cyan
- Muted emeraldMuted emerald
- Muted fuchsiaMuted fuchsia
- Muted grayMuted gray
- Muted greenMuted green
- Muted indigoMuted indigo
- Muted limeMuted lime
- Muted orangeMuted orange
- Muted pinkMuted pink
- Muted purpleMuted purple
- Muted redMuted red
- Muted roseMuted rose
- Muted skyMuted sky
- Muted tealMuted teal
- Muted violetMuted violet
- Muted yellowMuted yellow
- Muted importantMuted important
- Muted infoMuted info
- Muted accentMuted accent
- Muted dangerMuted danger
- Muted neutralMuted neutral
- Muted successMuted success
- Muted warningMuted warning
Polymorphism
When you want to render something else as a Badge, you can use the asChild prop to compose. This is useful when you want to splat the Badge styling onto a react-router Link.
API Reference
Badge
All props from span, plus: