Badge

Status indicator for labels, counts, and categories. Figma V8.0: 3 types × 12 colors × 3 sizes. Icon and dot variants included.

import{ Badge } from "@pepulux/ui"

Type: Pill color — all 12 colors

DraftNewErrorWarningActiveSlateSkyBlueIndigoPurplePinkOrange

Type: Badge color — rounded-[4px]

DraftNewErrorWarningActiveSlateSkyBlueIndigoPurplePinkOrange

Type: Badge modern — no border, semibold

DraftNewErrorWarningActiveSlateSkyBlueIndigoPurplePinkOrange

Sizes — sm / md / lg

SmallMediumLarge

Icon: Dot

DraftNewErrorWarningActiveSlateSkyBlueIndigoPurplePinkOrange

Icon: leading, trailing and icon only

LabelLabelLabelLabelLabel
LabelLabelLabelLabelLabel
LabelLabelLabelLabelLabel

Badge group — leading and trailing badge

Version 4.0We’ve just released a new featureVersion 4.0We’ve just released a new featureWe’ve just released a new featureVersion 4.0
New featureWe’ve just released a new featureNew featureWe’ve just released a new featureWe’ve just released a new featureNew feature
ErrorThere was a problem with that actionErrorThere was a problem with that actionThere was a problem with that actionFix now
WarningJust to let you know this might be a problemWarningJust to let you know this might be a problemJust to let you know this might be a problemWarning
SuccessYou’ve updated your profile and detailsSuccessYou’ve updated your profile and detailsYou’ve updated your profile and detailsSuccess

Badge group — dot, sizes sm and md

Version 4.0We’ve just released a new featureVersion 4.0We’ve just released a new featureWe’ve just released a new featureVersion 4.0We’ve just released a new featureVersion 4.0
New featureWe’ve just released a new featureNew featureWe’ve just released a new featureWe’ve just released a new featureNew featureWe’ve just released a new featureNew feature
ErrorThere was a problem with that actionErrorThere was a problem with that actionThere was a problem with that actionFix nowThere was a problem with that actionFix now
WarningJust to let you know this might be a problemWarningJust to let you know this might be a problemJust to let you know this might be a problemWarningJust to let you know this might be a problemWarning
SuccessYou’ve updated your profile and detailsSuccessYou’ve updated your profile and detailsYou’ve updated your profile and detailsSuccessYou’ve updated your profile and detailsSuccess

Props

PropTypeDefaultDescription
variant"gray" | "brand" | "error" | "warning" | "success" | "slate" | "sky" | "blue" | "indigo" | "purple" | "pink" | "orange""gray"Figma Color prop — 12 colors matching V8.0 spec
shape"pill" | "badge" | "modern""pill"Figma Type prop — Pill color | Badge color | Badge modern
size"sm" | "md" | "lg""sm"Height and font size
dotbooleanfalseFigma Icon=Dot — shows a colored dot before the label
leadingIconReactNode—Figma Icon=True — small icon before the label
leadingImagestring—Figma Icon=Avatar / Flag — round image URL before the label
trailingIcon"close" | "arrow" | ReactNode—Figma Icon=X / Arrow — icon after the label. "close" renders a button that calls onClose
onClose() => void—Called when the trailing close (x) icon is clicked
iconOnlybooleanfalseFigma Icon=Only — square badge, children is the icon (e.g. a plus)

BadgeGroup props

Props

PropTypeDefaultDescription
badge*string—Text inside the small badge
children*ReactNode—Message shown next to the badge
color"gray" | "brand" | "error" | "warning" | "success""gray"Figma Color
size"sm" | "md""sm"Figma Size
position"leading" | "trailing""leading"Figma Theme — badge on the left or right of the message
filledbooleanfalseStronger background tint on the pill
dotbooleanfalseNeutral pill with a colored dot instead of a colored pill
arrowbooleantrueShows the arrow icon
href / onClickstring / () => void—Makes the group a link or a button
Base component → Badgeswww.pepulux.com

Notes and documentation

Space for notes, documentation, and best practices for using these components.

Small labels that categorise or count

Use badges for status, categories and counts. Colour carries meaning (success, warning, error), so reserve brand colours for non-semantic labels.

Keep the text to one or two words; if it needs a sentence it belongs in body copy.

Do

  • Use a dot for status in dense tables
  • Use the close icon only for removable filters

Don't

  • Make badges the primary action — use a button