Skip to main content
WireKit
Copy for LLM

Status Tiles

The <x-wirekit::status-tiles> component renders a list of entities as colored status tiles — a fleet light you read at a glance. Each tile is tinted by its intent, but status never rides on color alone: every tile also carries a distinct icon shape and a screen-reader status word, so the grid stays legible for colorblind users and assistive technology (WCAG 1.4.1).

Reach for it when you have N of the same kind of thing and want to see all their states in one screen: thirty apps on one dashboard, a rack of services, a batch of jobs. For a two-dimensional cross of rows × columns, use Status Matrix instead.

Usage

Pass items — a list of ['key', 'label', 'intent'] maps. Add href to make a tile a link, and meta for a small caption under the label.

Fleet status at a glance
shop.example 2 incidents Status: Critical
blog.example elevated latency Status: Warning
api.example Status: OK
docs.example Status: OK
cdn.example Status: OK
mail.example maintenance Status: Info

Legend

Set :legend="true" to show a count-per-intent legend above the grid. Only the intents actually present are listed, each with its shaped icon, word, and count — so the summary is readable without color too.

Status tiles with a legend
OK (3) Warning (1) Critical (1) Unknown (1)
auth Status: OK
billing Status: OK
search Status: Warning
queue Status: Critical
webhooks Status: OK
exports Status: Unknown

Clickable tiles

Give an item an href and its tile becomes a keyboard-operable link with a focus ring — click through to the entity's detail view. Tiles without href stay static.

Tiles that link to detail views

Density

The tiles fill a responsive grid. Pass columns (the same syntax as Grid) to control how many sit per row — tighten it for a dense fleet wall, loosen it for a handful of services.

A denser wall of tiles
node-1 Status: OK
node-2 Status: OK
node-3 Status: Warning
node-4 Status: OK
node-5 Status: Critical
node-6 Status: OK
node-7 Status: OK
node-8 Status: OK

Props

Prop Type Default Description
items array [] The fleet — each entry a map: key, label, intent, optional href, optional meta.
legend bool false Show a count-per-intent legend above the grid (only present intents listed).
columns string '2 sm:3 md:4 lg:6' Responsive grid column spec, forwarded to Grid.
gap string 'sm' Grid gap token.
scope string|null null Scoped personalization key.

Each items entry accepts:

Key Type Description
key string Stable identifier, emitted as data-key (optional but recommended).
label string The visible entity name.
intent string success, warning, danger, info, or neutral. Anything else falls back to neutral.
href string Makes the tile a link to the entity's detail view.
meta string Optional small caption under the label (a count, a note).

Accessibility

  • The grid is an ARIA list; each tile is a listitem. Always pass an aria-label naming the fleet (aria-label="Fleet status").
  • Status is never color-only (WCAG 1.4.1): each tile carries a distinct icon shape and a visually-hidden status word (Status: Critical), so colorblind and screen-reader users get the state without relying on the tint.
  • Linked tiles are real <a> elements — tab-reachable, with a visible focus ring.
  • The legend repeats the same shaped-icon + word + count triad, readable in grayscale.

Keyboard Interaction

Status tiles carry no interaction model of their own — a tile is keyboard-operable only when it is a link (has an href). Static tiles are read-only status displays and are intentionally not focusable.

Key Action
Tab Move focus to the next linked tile (skips static tiles)
Enter Activate the focused linked tile (follow its href)

Design Tokens

Tiles reuse the intent grammar of Badge — a soft color-mix tinted surface with a matching 25%-tinted border and the -text intent color for the icon. No new tokens are introduced.

Token Used for
--color-wk-success / --color-wk-warning / --color-wk-danger / --color-wk-accent Tile tint + border per intent
--color-wk-success-text / --color-wk-warning-text / --color-wk-danger-text / --color-wk-info-text Status icon color per intent
--color-wk-bg-muted / --color-wk-border-subtle Neutral tile surface
--radius-wk-md Tile corner radius
--color-wk-ring Focus ring on linked tiles

Further Reading