Components

Badge

A small mono pill that classifies the thing beside it, like a plan tier.

iOS
Android
Web
import Badge from "swshd/Badge";

Badge is a small mono pill that classifies the thing beside it — a plan tier, a state. It reads at a glance and never acts.

Don't use it for counts or attention marks — that is Notification.

Seven variants, each a pair of semantic roles from BADGE_TOKENS: neutral, outline and inverse, plus the four tint colors accent / success / warning / danger. The pill is 20 px tall with label-sm mono at sm (24 px, label-md at md).

neutral
fill.raised · text.primary
The default classification.
outline
fill.transparent · text.muted · border.default
A ring, muted ink — quieter tiers.
inverse
fill.inverse · text.inverse
Brand white — the top tier.
accent
tint.accent.fill · tint.accent.ink
Highlights and brand-colored tags.
success
tint.success.fill · tint.success.ink
Rises and positive states.
warning
tint.warning.fill · tint.warning.ink
Things that need attention.
danger
tint.danger.fill · tint.danger.ink
Falls and failures.

The organization plan tiers as the sidebar shows them:

Riverside
Starter
Northbeam
Growth
Harbor
Enterprise

Write labels in sentence case; mono renders them uppercase.

import Badge from "swshd/Badge";
import type { BadgeVariant } from "swshd/Badge";

<Badge variant="outline">Starter</Badge>

A badge is a text label on the thing it classifies — the row or heading carries the accessible name, and the badge reads as part of the content.

No style prop: the badge is configured through variants.

PropTypeDefaultDescription
variant"neutral" | "outline" | "inverse" | "accent" | "success" | "warning" | "danger""neutral"Which BADGE_TOKENS entry paints the pill.
size"sm" | "md""sm"sm is every badge today; md is the card tag.
IconIconComponent—Leading glyph in the badge's ink.
childrenstring—The label, sentence case.
testIDstring—data-testid on web.