Skip to main content
WireKit
Copy for LLM

Stage Card

A column-header / stage primitive for kanban boards, sales pipelines, roadmap quarters, and workflow milestones. Renders an intent-tinted border, a faintly intent-tinted body, an optional item-count pill, and an optional completion bar — the pattern dashboards previously hand-rolled per column.

Basic Usage

Plain stage card
Backlog
Draft onboarding email
Spec the billing page

Intents

The border and body tint pull from the matching design token. neutral is the default:

Stage cards across intents
Backlog 8
In progress 3
In review 2
Done 14
Blocked 1

Count Pill

Pass count to show an item count in the header. The pill announces as "N items" to screen readers:

Stage card with count
In progress 12
Implement the export endpoint

Progress

Pass progress (0–100) to render a thin completion bar colored to match the stage intent:

Stage card with progress
Q1 — Foundations
Q2 — Launch
Q3 — Scale

Pipeline Composition

Combine count, progress, and slotted items for a full pipeline stage:

Full pipeline stage
Negotiation 4
Acme Corp — $48k
Globex — $22k

Props

Prop Type Default Description
label string|null null Stage title rendered in the header. Also the aria-label of the group.
intent string 'neutral' Border + tint color: primary / success / warning / danger / info / neutral.
count int|string|null null Item count rendered as a header pill (announced as "N items").
progress int|null null Completion percentage 0..100; renders a thin intent-colored bar.
scope string|null null Personalization scope key.

Slots

Slot Description
default The stage's items (cards, rows, anything). Stacked vertically with a small gap.

Accessibility

  • When label is set, the card is a role="group" with aria-label="{label}", so the stage title is announced as the purpose of its grouped items.
  • The count pill carries aria-label="{count} items" — the number is announced with its unit, not as a bare integer.
  • The border color is decorative; the label text is the accessible name, so the stage is distinguishable without color perception.

Keyboard Interaction

Stage Card is a presentational container — it has no interactive behavior of its own. Any interactive children (cards, buttons, links inside the default slot) own their own keyboard model.

Pitfalls

  • Don't rely on the border color alone to convey the stage. Always pass a label — color is a redundant cue, not the primary signal.
  • progress is a display value, not a control. It mirrors a server-computed percentage; it isn't a slider. Pass an integer 0..100.

Design Tokens

Token Usage
--color-wk-bg-elevated Body background (mixed with 6% of the intent color).
--color-wk-border Card border.
--radius-wk-lg Card corner radius.
--color-wk-success / --color-wk-warning / --color-wk-danger / --color-wk-accent / --color-wk-text-muted Intent border + tint source.

Usage & Conventions

Prop conventions — this component uses the shared semantic prop name intent. See Prop naming conventions for the canonical vocabulary, alias matrix, and decision tree.

Was this page helpful?

Voting requires cookies or local storage. What we store