Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Progress Tracker Table Block for React

An initiative tracker whose progress bars show tasks done, in review and not started, with a line for last week and a diamond for the plan, a change in points, a Behind plan flag, and sortable Progress and Change heads.

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

Show how far work has come and whether it is where it should be, with this progress tracker table for React with Base UI. A compact header names the table. Inside a hairline frame with a plus mark on each corner, a band says how the rows are ordered, over a native table of six Milestride initiatives with an owner, a progress bar, the change since last week and a due date. Each bar has three parts worked out from the task counts: done (solid), in review (half strength) and not started (the empty track). A line stands where the initiative was a week ago and a diamond where the plan says it should be today. The change column says "+11 pts" with a trend icon and a word, and "Behind plan" with a warning glyph appears when an initiative is more than ten points under the plan, with no colour thresholds anywhere. The Progress and Change heads sort. A legend closes the panel. It is built from Guides and plain CSS bars, with a CSS entrance only. For initiative trackers, roadmaps, onboarding checklists and any table where progress needs a baseline.

FAQ

How is each bar drawn?

From the task counts: the done share is done / (done + review + todo) rounded to a whole percent, the review share likewise, and the rest of the track is empty. The three parts are widths set from CSS variables on the bar, so the bar is plain CSS with no chart code. The last-week line and the plan diamond use the same scale, so they sit exactly where their percentages say.

When does Behind plan show, and why no colours?

When the plan's percentage minus the done percentage is more than BEHIND (ten points). The flag is a warning glyph and two words, and the line it sits on is always there, hidden when not needed, so rows never change height. Status carried by colour alone fails for many readers and for greyscale printing; here the words, a sign and an icon carry it and the whole table works in one tone.

How do I use my own initiatives?

Edit INITIATIVES: a name, an owner, the tasks done, in review and not started, the percent done a week ago, the percent the plan wants today and the due date. Progress, change and the flag are derived from those numbers. The array is in due-date order, which is also what a third press on a head returns to.

How do the sortable heads behave?

Progress and Change start with the most first, the second press reverses and the third restores due-date order. The sorted head has aria-sort, the others say none, ties fall to the name and a polite line reads out the order. The rows are rebuilt for each order, so nothing animates under the pointer.

What stays local, and how do I wire real data?

The counts are constants and the sort is one useState; nothing is requested or saved. To use real data, map your tracker's tasks to the three counts and store the previous week's percentage in a weekly snapshot, then pass INITIATIVES in. Nothing else in the table needs to change.

How does it look on a phone?

The Owner and Due columns fold into a line under the initiative's name ("Tamsin Okafor, due Nov 6") and the bar keeps its own column with a short caption under it. The change keeps its icon, sign and words. Nothing scrolls sideways at 320 pixels.

  • Pro

    A team resourcing table with a utilisation bar on a 150 percent scale, a line at 100 percent, hatched overflow that says Over by 6 h, a week menu that swaps the hours, sortable heads and a team total in the footer.

  • Pro

    An email campaigns table with a data bar under every result sized to the column maximum, a Counts and Rates toggle that changes the numbers and bars together, status words with dots, sortable heads and a line naming each bar scale.

  • Pro

    A KPI table of five metrics, each with a 30-day sparkline in its row, and one range slider under the table that moves a cursor across every line and updates the value and change for the chosen day, with a 14 or 30 day window.

  • Pro

    Target Ratio Progress Stats

    Goals and progress

    Five team rows led by a booked-over-quota ratio at display size, each with a bar along the row's floor and the share and the gap written at the end.

  • Pro

    Sortable Members Table

    Sort and search

    A members table whose column heads are buttons: press one to sort, again to reverse, a third time for the original order, with aria-sort on the active head, ties settled by name and a spoken line for each result.

  • Pro

    A ticket queue where a switch raises any ticket due within two days by one level, shown as drawn bars, a word and a raised-from note, and the Priority head sorts by that effective rank.