Badge

Stable

Small inline labels for status, categories, or counts. Always a <span> — never interactive on its own.


Recent decision: the status dot is a fixed sizing.indicator.dot token, and the brand variant's text now sits on the AA-paired on-surface.accent role. See Decisions.

Variants

Brand Success Warning Error Info Neutral
HTML
<span class="vi-badge vi-badge--brand">Brand</span>
<span class="vi-badge vi-badge--success">Success</span>
<span class="vi-badge vi-badge--warning">Warning</span>
<span class="vi-badge vi-badge--error">Error</span>
<span class="vi-badge vi-badge--info">Info</span>
<span class="vi-badge vi-badge--neutral">Neutral</span>

With dot indicator

Add vi-badge--dot to prepend a status circle. Useful for live/active/pending states.

Active Pending Offline Draft
HTML
<span class="vi-badge vi-badge--success vi-badge--dot">Active</span>
<span class="vi-badge vi-badge--warning vi-badge--dot">Pending</span>

Class reference

ClassTypeDescription
vi-badgeBaseRequired. Sets size, font, letter-spacing, border-radius.
vi-badge--brandVariantBrand blue tint.
vi-badge--successVariantGreen. Active, complete, healthy states.
vi-badge--warningVariantYellow. Pending, needs attention.
vi-badge--errorVariantRed. Failed, invalid, critical.
vi-badge--infoVariantLight blue. Informational, new.
vi-badge--neutralVariantGrey. Draft, inactive, secondary labels.
vi-badge--dotModifierAdds a colored status dot before the label text.