Skip to content

Tag

Interactive metadata element for categories, filters, and keywords. For static status indicators, use Badge instead.

Pill is a visual style, not a component — use Badge (it's already rounded). Chip is an interactive metadata element — use Tag.


Preview

Design Tilgængelighed Vue 3 Aktiv filter

When to use

Use tags for secondary metadata: categories, filters, keywords. Use as many as needed, but as few as possible.

Do not use for primary functionality (use Button). Do not mix with buttons — it confuses users. Do not use as navigation.


Usage

Display tag

html
<span class="tag tag--md" tabindex="0">
  <span class="tag__label">Design</span>
</span>

Dismissible

html
<span class="tag tag--md" tabindex="0">
  <span class="tag__label">Vue 3</span>
  <button class="tag__dismiss" aria-label="Fjern Vue 3">&times;</button>
</span>

Selected (filter)

html
<span class="tag tag--md tag--selected" tabindex="0" role="option" aria-selected="true">
  <span class="tag__label">Active filter</span>
</span>

Do's and don'ts

Do
Use for metadata, categories, filters, keywords
Do
Keep text short and recognizable
Do
Use uppercase first letter, lowercase rest
Don't
Use for primary actions (use Button)
Don't
Mix with buttons — confuses users
Don't
Use as navigation replacement
Don't
Design static tags to look like buttons

Classes

ClassDescription
.tagBase container
.tag--smSmall size
.tag--mdMedium size
.tag--selectedActive/selected state (filled primary)
.tag--disabledDisabled state
.tag__iconOptional icon
.tag__labelText
.tag__dismissRemove button (×)

Accessibility

  • Focusable via tabindex="0"
  • role="option" + aria-selected for selectable tags
  • Dismiss button has aria-label="Fjern {label}"
  • Keyboard: Enter/Space activates, × dismisses