Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Build Pipeline Matrix Changelog Block for React

A run-by-stage matrix of the last six builds with a result and a time in every cell, a failed run that explains itself, and a stage lens that tints a column.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A build-pipeline changelog for React with Base UI, written for Smeltwick, a fictional CI service. The header counts from the data how many of the last six builds passed ("5 of 6 builds passed"). One inset framed table with + marks on its corners holds a row per run (its number, branch, commit, trigger and total time) and a column per stage: Install, Lint, Build, Test and Deploy. Every stage cell is a shape and a word with its time, never colour alone: a check and "Passed", a cross and "Failed", a dash and "Skipped". The failed run has a row of its own under it, "Failed at Test", with the first lines of the error in a focusable pre. A toggle group above the table picks a stage: its column takes a quiet tint and a polite line under the table gives that stage's median time and how often it failed. It's built from Guides, Toggle Group and Status, with CSS transitions for the entrance and your theme's tokens for every colour. For CI dashboards, release notes that show the build behind a version and status pages for a pipeline. The runs are example data.

FAQ

How do I change the runs?

Edit RUNS at the top of the file. A run is a number, a branch, a short commit, a trigger and one outcome per stage, written with the small pass, fail and skip helpers (a stage and its seconds). The headline, each run's total, the median times and the failure counts are all computed from the list. Give a failing run its errors lines and its "Failed at Test" row appears under it by itself.

Why is there only one status mark?

A status colour should mean a real failure, so only the failed cell takes one, with the word "Failed" beside it. Every other result is a shape and a word in the foreground colour: a check and "Passed", a dash and "Skipped". In a greyscale or high-contrast theme nothing is lost.

What does the stage toggle do?

It tints one stage's column in every row and rewrites the line under the table: the median time of that stage, and in how many of the runs that reached it, it failed. Choosing "All" gives the pass count and the median run. It changes only this block; the table keeps its height and nothing is re-run.

Is it a real table?

Yes: a native table with a caption, scope on every header, the run number as the row header and tabular numbers. The scroll region around it has a name and takes focus, so a keyboard user can reach the columns that sit past the edge. The error lines sit in their own focusable region too.

How does it fit on a phone and in a right-to-left layout?

Below lg the table scrolls sideways inside its region and the run number stays pinned at the start, so every row keeps its stage results. In a right-to-left layout the table mirrors while run numbers, branches, commits and times stay in reading order.

What moves, and what happens with reduced motion?

The header and the table fade up once on load, with CSS transitions. With reduced motion they are off and the block simply appears. Choosing a stage tints the column at once.

  • Pro

    An inset framed table of preview environments: branch, pull request, a state shape and word, the preview URL with a Copy button that announces itself, and age, with a building row and a failed row with its log link.

  • Pro

    Lanes With Gates Release Train

    Deploys and rollouts

    A release-train table: a lane per train, a column per station (Dev, Staging, Canary, Production), each cell a gate shape and word with a hover card of its checks, and the departure time at the end of the lane.

  • Pro

    Deployment Log Tabs Changelog

    Deploys and rollouts

    Tabs by environment with counts over a framed table of deploys: environment, commit with Copy, message, deployer, a duration micro-bar and a status word.

  • Pro

    Six test suites as rows with a segmented outcome bar (solid, hatched, outlined, dotted), counts as words and a popover per suite that lists its flaky tests with retry counts.

  • Pro

    Three load test runs on one 0 to 800 ms ruler: a line from p50 to p99 with marks at p50, p95 and p99 and a shared SLO line, beside each run's requests per second, error rate and a Pass or Fail badge.

  • Pro

    Rollback History Changelog

    Deploys and rollouts

    A table of rollbacks that runs rail to rail and ends the block: the day, the version it came from and the one restored, a reason badge, a sortable time to revert and how each ended, with a summary counted from the rows.