AhaSlides Design
v0.52.0React · Vue · Lit

Patterns · AhaSlides surfaces

Status badge

A glanceable lifecycle pill for a domain object — draft, published, closed, archived, active, inactive.

Examples

Status
Domain lifecycle · dot + label · colour never alone
Draft Published Closed Archived Active Inactive

API

PropTypeDefaultNotes
statusdraft | published | closed | archived | active | inactivedraftThe lifecycle state — drives the pill and dot colour via a CSS-only persistent node

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-status-badge';   // registers <aha-status-badge>

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

When to use

When to use
  • Status badge — reflecting a value from a known status enum (a survey/presentation/collector's lifecycle state)
  • Tag — a free-form label, keyword or category chip
  • Badge — a count or a bare notification dot
Use only for a value from a real status enum — not free-form labels, counts, or notification dots (those are Tag / Badge). Always keep the text label; the dot colour is decorative and never the sole signal.
Surfaces
dashboard editor settings

Spec

Shape height 22 · radius pill · dot 6 + label · Draft neutral #F7F7F7 · dot #B5B5B5 · Published positive #D8FAEF / #13A181 · dot #16C49A · Closed warning #FFF5F0 / #E65B29 · dot #FF7747 · Archived muted #F3F3F3 / #8A8A8A · dot #8A8A8A · Active positive #D8FAEF / #13A181 · dot #16C49A · Inactive neutral #F3F3F3 / #8A8A8A · dot #B5B5B5