Skip to content

Tag

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

Pill is a visual style — use GTBadge (already rounded). Chip is an interactive metadata element — use GTTag.

Demo

Display (metadata)

DesignTilgængelighedFrontendOpen Source

Dismissible

Vue 3TypeScriptSCSS

Selectable (filter)

designvuea11ycss

Aktive: design, css

Sizes

SmallMedium

Disabled

DisabledDisabled selected

Installation

vue
<script setup>
import { GTTag } from '@grundtone/vue';
</script>

In Nuxt, GTTag is auto-imported.

When to use

Use for secondary metadata: categories, filters, keywords. Do not use for primary actions or navigation.

Usage

Display (metadata)

vue
<GTTag label="Design" />
<GTTag label="Tilgængelighed" />
<GTTag label="Frontend" />

Dismissible

vue
<GTTag label="Vue 3" value="vue" dismissible @dismiss="removeFilter" />

Selectable (filter)

vue
<GTTag
  v-for="filter in filters"
  :key="filter.key"
  :label="filter.label"
  :selected="filter.active"
  @update:selected="filter.active = $event"
/>

With icon

vue
<GTTag label="Verified" icon="check" />

Props

PropTypeDefaultDescription
labelstringDisplay text (required)
valuestringValue emitted on events
iconstringIcon name
dismissiblebooleanfalseShow × button
selectedbooleanfalseSelected state (v-model:selected)
size'sm' | 'md''md'Size preset
disabledbooleanfalseDisabled state

Events

EventPayloadDescription
clickstring | undefinedTag clicked
dismissstring | undefined× button clicked
update:selectedbooleanSelected state toggled

Accessibility

  • Focusable, keyboard-activatable (Enter/Space)
  • role="option" + aria-selected for selectable tags
  • Dismiss button has descriptive aria-label

See Tag (Design System) for full CSS reference.