Skip to content

Badge

Compact status label for communicating states, categories, and counts.

Neutral

Variants

Five semantic tones communicate status. Match tone to meaning and keep usage consistent across the product.

VariantPurpose
NeutralDefault status — drafts, labels, and non-urgent metadata.
InfoInformational status — announcements, in-progress states.
SuccessPositive status — in stock, completed, verified.
WarningCaution — low stock, pending review, expiring soon.
ErrorCritical status — failed, out of stock, blocked.

Design tokens

TokenValueDescription
background/subtle
#f5f5f5
Neutral subtle background
border/default
#cccccc
Neutral subtle border
text/secondary
#4f5052
Neutral subtle text
background/state/info/subtle
#ecf7ff
Info subtle background
border/state/info
#00599d
Info subtle border
text/state/info
#004275
Info subtle text
background/state/success/subtle
#eefff5
Success subtle background
border/state/success
#049442
Success subtle border
text/state/success
#049442
Success subtle text
background/state/warning/subtle
#fff6ee
Warning subtle background
border/state/warning
#8c7314
Warning subtle border
text/state/warning
#774217
Warning subtle text
background/state/error/subtle
#ffeae7
Error subtle background
border/state/error
#bc1700
Error subtle border
text/state/error
#931200
Error subtle text
background/state/{tone}/bold
varies
Solid background per tone
radius/sm
4px
Corner radius
stroke-weight
1px
Subtle variant border

Guidelines

Do
  • Use badges in tables to show row status
  • Keep labels 1–2 words: "Active", "Pending", "In stock"
  • Use consistent tone mapping across your app
  • Use SM inside table cells or compact UI
  • Include an icon when the tone alone may be ambiguous
Don't
  • Use badges as interactive buttons or links
  • Use more than 2–3 different tones in a single view
  • Use solid variant for status — subtle is more readable
  • Use long labels — truncate or abbreviate instead
  • Mix sizes within the same table or list