shadcn.io is not affiliated with official shadcn/ui
Status Tile Grid Stats Block for React
Six service tiles for a hosting company, each with a state word and a p95 latency, where healthy tiles are plain and only a degraded and an incident tile change, with their cause and how long they have lasted.
Installation
Overview
A status board for React with Base UI. A centred header counts the services that are fully operational ("4 of 6 services are fully operational"). Under it, six tiles for a managed-hosting company (edge network, API gateway, managed Postgres, object storage, job queues and DNS) share their hairlines in a band that runs from rail to rail and ends the block. A tile is the service's name, its state, its p95 latency and one line. A healthy tile has a plain foreground dot, "Operational" and how long it has been quiet ("No incidents in 41 days"). Only the exceptions change: the degraded tile takes a ring in a foreground tone and a warning dot, and the incident a stronger ring and a destructive dot, each with its cause and how long it has lasted ("Replica lag of 6 seconds in Frankfurt, for 23 minutes"). No tile has a tinted border or fill, so the status colours mean something when they appear. Every count, state word and line is computed from one typed list of services. Three tiles across from lg, two across below it. It's built from Status and Guides.
FAQ
How do I change the services and their states?
Edit SERVICES at the top of the file. A service is a name, a latency in milliseconds and a state (operational, degraded or incident). A healthy one adds quiet, its days without an incident; an exception adds a cause and since, the minutes it has lasted. The header's count, the dots, the rings and every line are computed from the list, so add or remove services and keep the grid's rows in mind: it's three across from lg, so a multiple of three looks best.
Why is only the exception coloured?
A board where every tile is green stops meaning anything. Here the normal state is the quiet foreground tone, and the warning and destructive status colours appear only on the tiles that need attention, so the eye goes straight to them. The rings are in the foreground tone, never a coloured border, so the tiles still read in every theme preset and without colour: the state is also written as a word.
Is the status readable without colour?
Yes. The state is always a word ("Operational", "Degraded", "Incident") next to the dot, and the dot itself is hidden from assistive technology because the word says it. Each tile is a list item with a heading for the service. The latency and the line under it are plain text in reading order: name, state, latency, note.
Why do the tiles line up when a cause wraps?
Each tile spans four rows of the list's grid and lays its parts on them (a CSS subgrid), so when one cause wraps to three lines, the notes of the other tiles in that row stay at the same height and the hairlines between rows stay straight. It works at every width, including two across on a phone.
Is this live?
No. The block shows the readings it is given and has no timers: wire SERVICES to your status API and render the block again when it changes. The copy says the tiles read the last five minutes, which is the window your API should report.
Why is there no line under the tiles?
The band ends the block. The next section draws its own top rule along the band's foot, so a bottom border here would double it, and the column has no bottom padding for the same reason. The top rule comes from the Guides component, with a + mark where it meets each rail.
Related
- Pro
A table of services in a tinted frame with sortable column heads, 30-day uptime strips, response times and error rates, and a mark and a word on any service that is down.
- Pro
A 3 by 3 grid of hosting services whose latency and twelve-bar history advance on a timer you can pause, with the one slow service marked.
- Pro
Status Matrix Stats
HeatmapsSix services by the last eight hourly check windows: passing cells in a foreground tone, degraded cells half filled, a failed cell outlined with a cross and the destructive dot, tooltips and an uptime column.
- Pro
Goal Status Board Stats
Goals and progressA rail-to-rail status board for sales pace: four cells that lead with a state word and a glyph, Ahead, On pace, Behind or Missed, three figures each, and a legend row that defines the four glyphs.
- Pro
Compact KPI Tile Grid Stats
KPI bands and tilesSix dense KPI tiles for a café group in one hairline frame, with a Day, Week and Month switch that re-reads all six figures and rolls their digits.
- Pro
Connected KPI Bar Stats
KPI bands and tilesFour headline figures for a subscription analytics tool in cells that share their hairlines from rail to rail, each with its change on the month before and a tiny sparkline of the last twelve months.