Use these notes to decide quickly whether this is the right DK component for the job.
Decision guide
Choose Badge when the interaction should feel deliberate, documented, and reusable across product surfaces.
If the scenario is more specialized than the current Badge contract, prefer a simpler component or build a dedicated workflow on top of the lower-level DK primitives.
Do
Keep the Badge label, value, or status language direct enough to scan quickly.
Use the documented size and state recipes instead of inventing one-off variants in product code.
Do not
Do not hide the main purpose of Badge behind decorative copy or overloaded surface treatments.
Do not stretch Badge into a workflow it was not designed to handle just because the visuals are close.
Usage
When to use
Prefer these situations when choosing this component.
Use Badge to label state, environment, phase, or system intent in a compressed area.
Use soft or outline emphasis when the label should support, not dominate, a larger surface.
Usage
When not to use
These patterns are better served by a different component or a simpler surface.
Do not use Badge as a clickable filter token; use Chip instead.
Do not replace longer guidance or system messaging with a terse badge.
Anti-patterns
Using Badge as a generic layout container instead of a purpose-built interaction or content surface.
Forking the documented recipe in product code instead of extending the shared DK contract.
Migration notes
Migrate legacy badge usage by mapping existing variants and states onto the documented DK props before porting any custom styling.
Treat the docs examples as the reference contract for accessibility and event behavior during adoption.
Anatomy
Structural parts
The anatomy explains which pieces matter to the recipe and accessibility model.
status shell
root
Carries the tone, emphasis, and compact shape.
supporting slot
leading
Optional symbol or marker before the label.
status text
label
Concise status label.
API
Public interface
The docs contract distinguishes props, DOM events, and slots so integration behavior is explicit.