AhaSlides Design
v0.52.0React · Vue · Lit

Components · Data Display

Tag

A small label chip for a category, keyword, or state — filled or bordered, with an icon, a dismiss ×, or a checkable toggle.

Examples

Colour
Shape
Closable
Checkable
Colour presets · filled
Draft Poll Published Scheduled Review Archived
Bordered (outlined) · leading icon
Draft Featured Live Blocked
Closable keywords · animates out on ✕
Marketing Q&A Word cloud
Checkable toggle · aria-pressed
Poll Quiz Survey

API

PropTypeDefaultNotes
colorneutral | primary | success | processing | warning | errorneutralSemantic tone preset (alias: `variant`)
borderedbooleanfalseOutlined shape — white surface + a coloured 1px hairline instead of the filled tint
iconstringLeading DS icon name, e.g. system-tag (resolved via <aha-icon>)
closablebooleanfalseShows a dismiss × that animates out, removes the tag, and emits close
checkablebooleanfalseRenders a selectable toggle chip (button, aria-pressed)
checkedbooleanfalseSelected state of a checkable tag (brand fill)
closeCustomEventComposed event when the × is pressed
changeCustomEventComposed event on a checkable toggle, detail { checked }

Install

# .npmrc — once: point the @ahaslides-product scope at GitHub Packages
@ahaslides-product:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}   # a GitHub token with read:packages

npm i @ahaslides-product/design
import '@ahaslides-product/design/tokens.css';   // once, at the app root
import '@ahaslides-product/design/aha-tag';   // registers <aha-tag>

Agent feed for this component (absolute, fetchable anywhere): tag.agent.json · tag.md · tag.llms.txt

When to use

When to use
  • Tag — labelling content with a category/keyword, or showing a non-urgent state inline
  • Badge — a count or a status dot attached to another element
  • Button — the chip should trigger an action — a Tag is a label, not a control
Keep tag text to one or two words, sentence case. Colour carries meaning — reserve success/processing/warning/error for real states, not decoration. Use `closable` for user-removable keywords; use `checkable` for an inline filter toggle. For a domain lifecycle state prefer the status pill (aha-design-status-badges).
Surfaces
editor dashboard settings audience

Spec

Box height 22 · radius 4 · padding 0 8 · 6px gap to a 14px leading icon · Text Plus Jakarta SemiBold 600, 12/18 · Neutral bg #F1F1F1, label #4A4A4A · Primary bg #F9F5FF, label #6A1EBB · Success / Processing / Warning / Error tinted bg + matching text token · Bordered white surface + a coloured 1px hairline (the outlined DS V3 flavour) · Closable system-x ✕; animates out (scale + fade, motion-mid) then removes + emits close · Checkable outlined toggle; checked → brand fill #6A1EBB / white label; aria-pressed synced