Badge

µBadge is an inline label and counter component. It supports 11 color variants, outline style, pill shape, three sizes, and an attached positioning mode for notification counters.

Basic usage #

Apply .badge along with a color variant class to a <span>:

Primary
<span class="badge badge-primary">Primary</span>

The default badge (without a color class) uses --mu-contrast as its background color.

Color variants (filled) #

All 11 color roles are available:

Primary Secondary Tertiary Contrast Spark Accent Pop Success Info Warning Error
<span class="badge badge-primary">Primary</span>
<span class="badge badge-secondary">Secondary</span>
<span class="badge badge-tertiary">Tertiary</span>
<span class="badge badge-contrast">Contrast</span>
<span class="badge badge-spark">Spark</span>
<span class="badge badge-accent">Accent</span>
<span class="badge badge-pop">Pop</span>
<span class="badge badge-success">Success</span>
<span class="badge badge-info">Info</span>
<span class="badge badge-warning">Warning</span>
<span class="badge badge-error">Error</span>
Class Background Text color Border
.badge-primary--mu-primary--mu-primary-inverse--mu-primary
.badge-secondary--mu-secondary--mu-secondary-inverse--mu-secondary
.badge-tertiary--mu-tertiary--mu-tertiary-inverse--mu-tertiary
.badge-contrast--mu-contrast--mu-contrast-inverse--mu-contrast
.badge-spark--mu-spark--mu-spark-inverse--mu-spark
.badge-accent--mu-accent--mu-accent-inverse--mu-accent
.badge-pop--mu-pop--mu-pop-inverse--mu-pop
.badge-success--mu-success--mu-success-inverse--mu-success
.badge-info--mu-info--mu-info-inverse--mu-info
.badge-warning--mu-warning--mu-warning-inverse--mu-warning
.badge-error--mu-error--mu-error-inverse--mu-error

Outline variant #

Add .badge-outline to remove the background and keep only the border and colored text:

Primary Secondary Tertiary Contrast Spark Accent Pop Success Info Warning Error
<span class="badge badge-outline badge-primary">Primary</span>
<span class="badge badge-outline badge-secondary">Secondary</span>
<span class="badge badge-outline badge-tertiary">Tertiary</span>
<span class="badge badge-outline badge-contrast">Contrast</span>
<span class="badge badge-outline badge-spark">Spark</span>
<span class="badge badge-outline badge-accent">Accent</span>
<span class="badge badge-outline badge-pop">Pop</span>
<span class="badge badge-outline badge-success">Success</span>
<span class="badge badge-outline badge-info">Info</span>
<span class="badge badge-outline badge-warning">Warning</span>
<span class="badge badge-outline badge-error">Error</span>

The .badge-outline class sets background-color: transparent and changes the text color to match the role color.

Pill shape #

Add .badge-pill for fully rounded corners (useful for counters and short labels):

12 99+ New Beta
<span class="badge badge-primary badge-pill">12</span>
<span class="badge badge-success badge-pill">99+</span>
<span class="badge badge-error badge-pill">New</span>
<span class="badge badge-outline badge-info badge-pill">Beta</span>

Sizes #

Three sizes are available:

Small Default Large
<span class="badge badge-primary badge-sm">Small</span>
<span class="badge badge-primary">Default</span>
<span class="badge badge-primary badge-lg">Large</span>
Class Font size Padding
.badge-sm0.6875rem0.15em 0.4em
(default)0.75rem0.2em 0.55em
.badge-lg0.875rem0.3em 0.7em

Attached (notification counter) #

Use .badge-attached to position a badge as a notification counter on the corner of a parent element. The parent must have position: relative:

Inbox 3 Notifications 12
<span style="position: relative; display: inline-block; padding: 0.5rem 1rem; border: 1px solid var(--mu-secondary-background); border-radius: 0.375rem;">
    Inbox
    <span class="badge badge-error badge-attached badge-pill">3</span>
</span>

<span style="position: relative; display: inline-block; padding: 0.5rem 1rem; border: 1px solid var(--mu-secondary-background); border-radius: 0.375rem;">
    Notifications
    <span class="badge badge-warning badge-attached badge-pill">12</span>
</span>

The .badge-attached class uses absolute positioning (top: -0.4em; right: -0.4em) and a pill border-radius. It has a smaller font size (0.625rem) and minimum dimensions of 1.2em.

CSS classes reference #

Class Description
.badgeBase badge (inline-flex, padding, font-size, border-radius)
.badge-{color}Color variant (primary, secondary, tertiary, contrast, success, info, warning, error, accent, pop, spark)
.badge-outlineTransparent background, colored text and border
.badge-pillFully rounded corners (border-radius: 50rem)
.badge-smSmall size
.badge-lgLarge size
.badge-attachedAbsolute positioning for notification counters

Styling details #

Property Value
Default border radius0.25rem
Font weight600
Line height1
Default font size0.75rem

Accessibility #

  • Badges used as links should have descriptive text or aria-label for screen readers.
  • Ensure sufficient color contrast between badge text and background (WCAG AA minimum).
  • Avoid using color alone to convey meaning — pair colored badges with text labels.
  • For notification badges (counts), use aria-label to describe the count in context (e.g., aria-label="3 unread messages").

See also: Alert · Button