Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Performance Log Changelog Block for React

Five load metrics as rows sorted by improvement, each with the old reading struck through, the new one, the change as an arrow and a percentage, and paired bars, with a toggle that picks the release to compare against.

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 performance log for React with Base UI, written for Speedledger, a fictional web-performance monitor. A start-aligned header carries a title worked out from the data ("Median improvement of 30%", the middle of the five changes) and a toggle group that picks which earlier release to compare the newest one against. Under it a band ruled from rail to rail that ends the block: one row per metric, sorted by improvement, with its name, the old reading struck through and the new one in a heavier weight, the change as an arrow, a sign and a percentage that rolls to the new value, and a pair of bars (the old reading an outline, the new one solid). It's built from Toggle Group, Sliding Number and Guides, with CSS transitions for the bars and your theme's tokens for every colour. For release notes, performance budgets and engineering updates. The readings are example data.

FAQ

How do I change the metrics and the releases?

Edit RELEASES (newest first, each with its day) and METRICS. A metric has one reading per release, in the same order, and lower is better. The change, the order of the rows, the median in the title and the bars are all worked out from those readings, so they cannot disagree. Add a release to the list and a button for it appears in the toggle.

How are the bars scaled?

Each pair is drawn to its own larger reading, so the longer bar always fills the row and the shorter one shows the ratio between the two. The bars are decoration; the readings and the change are always in text, and the legend says which bar is which.

What does the toggle do?

It chooses the release the newest one is compared against. The old readings, the bars and the percentages change, the percentages and the median roll to their new digits, and a polite line says what is showing. The rows are sorted by improvement against the chosen release, and the block's height never changes. The choice stays local to the page.

Is a better or worse change shown by colour?

No. The change is an arrow, a true minus or a plus and a number, and a screen reader hears it in words ("38% lower than v6.1"). The old reading is struck through and the new one is heavier, so before and after are told apart without colour.

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

Below the tablet width each row stacks: the name and the change first, the readings under them, then the bars. Readings, arrows and signed changes keep their left-to-right order in a right-to-left layout, while the names and the text around them mirror.

  • Pro

    API Response Time Changelog

    Metrics and charts

    Paired bars for five endpoints on a shared 0 to 400 ms axis, the previous release pale and this one solid, with the change in rolling percent digits, the optimisation behind it and a p50, p95 or p99 toggle that redraws the bars.

  • Pro

    Paired Bars Queue Metrics

    Metrics and charts

    Five message queues as rows of paired bars, the release before as an outline and the current release solid, with a three-way switch between throughput, lag and dead letters, and a header that counts the lagging queues.

  • Pro

    Bundle Size Changelog

    Metrics and charts

    Five releases as stacked horizontal bars split into four chunks, told apart by weight and pattern, with a budget tick, each release's total and change, and a toggle that rolls the sizes between gzip, brotli and raw.

  • 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

    A single bar that slices a 250 ms request budget by hop (edge, auth, database, render), a switch between two releases that re-slices it, and a four-cell band with each hop's milliseconds and its change.

  • Pro

    Four error classes as rows, each a 14-day line split by a release marker with the average after it and the change as an arrow and a sign, plus a switch for one shared scale.