Badges & Chips

Compact labeling system. Badges are static labels; chips are interactive filters or tags.

Badge variants

Six semantic colors, all using a border+text approach without solid fill.

All variants

Neutral Neon Cyan Success Warning Danger

v2.1.0

.badge

Default metadata, version numbers, categories.

Featured

.badge .color-group-primary

Primary highlight, active status, featured items.

New

.badge .color-group-secondary

Secondary highlight, links, information labels.

Verified

.badge .color-group-success

Positive state: online, verified, complete.

Pending

.badge .color-group-warning

Caution state: pending, review required.

Failed

.badge .color-group-danger

Error state: offline, failed, critical.

With icons

Badges can include a leading icon. Keep it 12–14px.

Verified Review needed Offline Scheduled

Chips

Used for filters, tags, and removable selections. Neomorphic base distinguishes them from flat badges.

Base chips

TypeScript SvelteKit Featured New

Removable chips

Frontend TypeScript Animation Design Systems

In context

Badges inside card, table row, and filter bar patterns.

@vulppi/kit

npm install @vulppi/kit

Featured v0.9.1

Core utilities and primitives for Vulppi projects. Includes type helpers and common patterns.

TypeScriptSvelteKitUtilities

Filter bar pattern

Filter by: Frontend TypeScript

Usage rules

Do

  • Use badges for read-only status labels
  • Use chips for interactive selections
  • Include an icon alongside status badges
  • Keep text concise — max 2 words

Don't

  • Don't use more than 3 badge colors in one view
  • Don't use a badge where a chip is interactive
  • Don't mix badge styles (solid vs. border)
  • Don't use warning for non-cautionary info