Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Release Blockers Changelog Block for React

A verdict header counted from the data with a cleared bar, a toggle group (Open, Cleared, All) and an inset framed table of blockers with owners, states as shapes and words, and the day each was opened.

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 release-blockers list for React with Base UI, written for Gatekeel, a fictional release-management tool. The header gives the verdict counted from the data ("2 blockers remain before v6.1.0 can ship") with a bar at its end that says how many are cleared ("4 of 6 cleared"). A toggle group chooses Open, Cleared or All, each with its count, and a polite line reads how many rows are showing. The rows sit in an inset framed table with + marks on its corners and hairlines between rows: the id in mono, the blocker's title, its owner (initials in an avatar), the state as a shape and a word (a ring for open, a filled square for cleared) and the day it was opened. The one open critical blocker carries the block's only status dot and a "Critical" badge with an icon. On a phone the owner and the day are dropped and the id moves above the title. It's built from Guides, Toggle Group, Progress, Avatar, Badge and Status, with CSS transitions for the entrance and your theme's tokens for every colour. For release dashboards, launch checklists and changelogs that say what is still in the way. The blockers are example data.

FAQ

How do I change the blockers?

Edit BLOCKERS at the top of the file. A blocker is an id, a title, an owner with initials, an opened day as an ISO date ("2026-07-06") and a cleared flag; add critical to the one that stops the release outright. The headline's count, the "4 of 6 cleared" line, the bar and the filter counts are all computed from the list, and the day on screen ("Jul 6, 2026") is spelled out from the ISO day by a small helper, so it reads the same on the server and in every browser. Dates are fixed, never computed from today.

Why is there only one status dot?

A status colour should mean a real alert, so only the open critical blocker gets one, with the word "Critical" beside it. Every other state is a shape and a word in the foreground colour: a ring and "Open", a filled square and "Cleared". Colour is never the only signal, and in a greyscale or high-contrast theme nothing is lost.

How does the filter work?

The toggle group chooses one view and the table shows only those rows. Pressing the chosen item again does nothing, so the table is never empty. The table's height follows the filter, since two rows are shorter than six. A polite status line announces how many rows are showing.

Is it a real table?

Yes: a native table with a caption, column headers with scope, and the blocker's title as the row header. The caption is visually hidden because the heading above already introduces the list. The states are words as well as shapes, so a screen reader hears "Open" or "Cleared" for each row.

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

Below sm the Owner and Opened columns are dropped and the id sits above the title, so each row keeps its title and state without scrolling sideways at 320 pixels. The toggles wrap onto a second line if they must. In a right-to-left layout the table mirrors, while ids, dates and counts 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. Changing the filter swaps the rows at once.

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

  • Pro

    Post-Mortem Changelog

    Incidents and uptime

    A blameless post-mortem as one framed report: three impact cells, a five-whys accordion from the symptom to the root cause, and an action-items table with owners, due days and states beside a progress bar.

  • Pro

    On-Call Handoff Changelog

    Incidents and uptime

    A pager handoff note as a split: two responders and a band of three counts at the start, a checklist of what is still open at the end that the incoming person ticks, and a Shine Button that unlocks when every box is ticked.

  • Pro

    Incident Severity Changelog

    Incidents and uptime

    An incident log grouped under P0 to P4 headings, with a toggle group that filters it, a band of five median-time-to-resolve cells and rows of id, title, users affected and state, each severity a shape and a word.

  • Pro

    A release sign-off split: a summary of the release at the start, and a vertical approval chain at the end with people, states and times, an Approve button that advances it in the demo, a progress bar and a Deploy button that gives a stated demo result.

  • Pro

    Kanban Status Changelog

    Roadmap and customers

    A roadmap board for a team planning tool: three columns on shared hairlines, Planned, In progress and Shipped, each with its count and cards that carry an area, a title, a line and a vote button that moves the count by one and back.