Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Data Migration Changelog Block for React

Five backfill jobs in a framed table: records, duration and a status as an icon, a word, a progress bar and a percentage, with a total in the headline and a Retry button for the failed job.

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 backfill report for React with Base UI, written for Haulage, a fictional data-movement tool. A start-aligned header carries a headline that counts the records moved so far (added up from the rows) and the release's version and day; under it a framed table lists five jobs. Each row gives the job's name in mono, its records in a tabular column, how long it ran and its status as an icon and a word with a progress bar and a percentage: three are done, one is running at 63% and one failed, with the error under its name. The failed job has a Retry button; it queues the job in this demo and says so in the row and in a status line, and nothing is sent. The table sits in a focusable region that scrolls sideways if it must; on a phone the records move under the job's name and the duration drops. It's built from Progress, Status, Button, Guides and a native table, with CSS transitions for the entrance and your theme's tokens for every colour. For backfill reports, data-migration status pages and release notes with long jobs. The jobs and their figures are example data.

FAQ

How do I change the jobs?

Edit JOBS at the top of the file. A job has an id, a name, the records it has to move, how many it has moved, how long it ran (duration), a phase (DONE, RUNNING or FAILED) and, for a failed one, an error. The percentages, the bars and the headline total ("2.4M records moved so far") are all computed from those numbers.

How is a status shown without colour?

Each status is an icon and a word: a check and "Done", a spinner mark and "Running", a cross and "Failed" (the one status token in the block, with its word beside it), a clock and "Queued". The bar carries the percentage in numbers beside it, and its accessible name says the job and the percentage.

What does Retry do?

It changes the failed row to "Queued" and swaps its error for "Retry queued in this demo. Nothing is sent.", and a polite status line says the same. It does not call anything: wire the button to your own request. The row keeps its height, because both texts sit in the same cell and only one is shown.

How does the table work with a screen reader and a keyboard?

It is a native table with a caption, column headers and the job name as the row header. When the table is wider than its frame the frame is a focusable, labelled region you can scroll with the arrow keys.

What changes on a phone?

The records move under each job's name, the duration column drops and the names break after an underscore instead of in the middle of a word. The status, bar and percentage stay in their column.

What moves, and what happens with reduced motion?

The header and the table fade up once on load, with CSS transitions, and the progress bars use the catalog's own. With reduced motion the transitions are off and the block simply appears.

  • Pro

    Four migrations as a band of accordion rows, the newest open: each row shows its id, name, status as an icon and a word and its run time, and opens to the SQL with Up and Down tabs and a Copy button.

  • Pro

    Four changes to a data pipeline as pressable rows, newest first, beside a framed diagram of two sources, a transform and two destinations: choosing a change rings its box, thickens its curve and explains it in a line.

  • Pro

    Migration Guide Changelog

    APIs and integrations

    A split: a deadline tag and a running progress count at the start, four migration steps at the end, each with a Done checkbox and a copyable config snippet in a collapsible.

  • Pro

    A source-to-target header with the overall percent at its end and three phases as cells of one band: a count, a progress bar, a state glyph and word, and a finish or expected day.

  • Pro

    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.

  • 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.