← All @molecule/* packages · App templates
@molecule/app-status-badge-reactFeature · status-badge · App (browser) · v1.0.1 · Apache-2.0
React status badge / pill with semantic kinds
npm install @molecule/app-status-badge-react@molecule/app-status-badge-react is a ready-made status-badge feature for the app (browser) side. It composes the core interfaces it needs, so it works with whichever providers your app has bonded.
import { StatusBadge, StatusPill } from '@molecule/app-status-badge-react'
<StatusBadge kind="success">Open</StatusBadge>
<StatusBadge kind="warning" icon={<span aria-hidden>!</span>}>Pending</StatusBadge>
<StatusPill kind="error">Overdue</StatusPill>Works with: @molecule/app-react, @molecule/app-ui, @molecule/app-ui-react
Auto-generated, AI-first package reference for the molecule.dev ecosystem. It is written to be read by coding agents as much as by people, and is generated from this package's source — edit
src/index.tsJSDoc, not this file.
React status-badge and status-pill components.
Both components map a small StatusKind union (success/warning/
error/info/neutral) to ClassMap-driven styling so apps can
restyle by swapping the ClassMap bond rather than rewriting
components.
<StatusBadge kind children icon? appearance? className?> — the
contract is kind + children (there are NO label/color props).
appearance='ui' (default) wraps <Badge> from
@molecule/app-ui-react and works with any ClassMap bond.
<StatusPill kind children dot? className?> adds a small colored
status dot before the label.
import { StatusBadge, StatusPill } from '@molecule/app-status-badge-react'
<StatusBadge kind="success">Open</StatusBadge>
<StatusBadge kind="warning" icon={<span aria-hidden>!</span>}>Pending</StatusBadge>
<StatusPill kind="error">Overdue</StatusPill>
feature
npm install @molecule/app-status-badge-react @molecule/app-react @molecule/app-ui @molecule/app-ui-react react
npm install -D @types/react
StatusBadgePropsProps for the {@link StatusBadge} component.
interface StatusBadgeProps {
/** Semantic kind — maps to ClassMap badge color variants. */
kind?: StatusKind
/** Badge label (usually `t('...')`). */
children: ReactNode
/** Optional leading icon (e.g. a dot or check). */
icon?: ReactNode
/**
* Visual appearance variant.
* - `'ui'` (default) — wraps `<Badge>` from `@molecule/app-ui-react` with
* ClassMap-driven coloring. Honors the active ClassMap bond's badge
* styling and works with any theme.
* - `'uppercase-pill'` — a compact uppercase pill that colors itself with
* the SAME ClassMap `badge` tokens as the `'ui'` variant
* (`cm.badge({ variant })` → real, theme-backed `bg-*` / `text-*`
* utilities), then layers `cm.uppercase` + `cm.trackingWide` for the
* uppercase treatment. Every kind is visibly colored in both light and
* dark themes.
*/
appearance?: 'ui' | 'uppercase-pill'
/** Extra classes passed through to the rendered element. */
className?: string
}
StatusPillPropsProps for the {@link StatusPill} component.
interface StatusPillProps {
/** Semantic kind. */
kind?: StatusKind
/** Pill label. */
children: ReactNode
/** Render a leading dot indicator. Defaults to true. */
dot?: boolean
/** Extra classes. */
className?: string
}
StatusKindSemantic status kind used to select badge color variants.
type StatusKind = 'success' | 'warning' | 'error' | 'info' | 'neutral'
StatusBadge(props)Semantic status badge — maps status kinds to ClassMap color variants. Use for "Open / Closed / Pending / Archived" row labels, deal stages, ticket priorities, etc.
Both appearances resolve their color through the ClassMap badge tokens,
so they stay theme-correct: appearance="ui" (default) renders the
framework <Badge>, and 'uppercase-pill' renders a compact uppercase
pill with the same per-kind bg-* / text-* colors.
function StatusBadge({
kind = 'neutral',
children,
icon,
appearance = 'ui',
className,
}: StatusBadgeProps): JSX.Element
props — Component props (see {@link StatusBadgeProps}).StatusPill(props)Rounded status pill with an optional leading colored dot. The pill has
NO background surface of its own — only the dot carries color — so add
a surface via className if you need a filled pill. The neutral dot
uses bg-outline, which is only visible in themes that define an
outline color token.
function StatusPill({
kind = 'neutral',
children,
dot = true,
className,
}: StatusPillProps): JSX.Element
props — Component props (see {@link StatusPillProps}).Peer dependencies:
@molecule/app-react ^1.0.1@molecule/app-ui ^1.0.1@molecule/app-ui-react ^1.0.1react ^18.0.0 || ^19.0.0@molecule/app-react
@molecule/app-ui
@molecule/app-ui-react
react
Requires a wired ClassMap bond (e.g. @molecule/app-ui-tailwind) —
getClassMap() throws before bonding.
Both appearance variants color through the ClassMap badge tokens
(cm.badge({ variant }) → real bg-* / text-* theme utilities), so
the 'uppercase-pill' variant is visibly colored per kind in every
theme — it just adds cm.uppercase + cm.trackingWide on top of the
same colors the 'ui' variant uses.
<StatusPill> has no background surface of its own — only the dot
is colored; add a surface via className if you need a filled pill.
Its neutral dot uses bg-outline, which also needs a theme
outline color token to be visible.
Labels are children — pass already-translated strings
(t('...')); the components render no text of their own.