Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Collab Workspace Music Block for Radix UI

A shared mix with five versions: pick a base and a version to compare with two radios, read the difference track by track in words (Bass: -2 dB, Vocal stem: new take, Drums: unchanged), merge one into the other to move the Current marker, and keep a comment thread whose composer adds to the top.

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

Let a band see what changed between two mixes before they agree on one, with this collaboration workspace for React with Radix UI. It holds one shared mix of Bouncepoint, a collaboration workspace, in a hairline frame with a plus mark on each corner, with an Avatar stack of the four collaborators in the header and three columns. The first is a version list, v1 to v5, with the author, a note and a fixed time, a Base and a Compare radio on each row and a Current badge. The second is the difference between the two you picked, one row for each of five tracks with a glyph and words (a level change in dB, a new take, added, removed, unchanged) and the block's one primary, a Shine Button that reads "Merge v5 into v4" and moves the Current marker. The third is a thread of four comments with a Textarea and a Button to post. It's built from Avatar, Badge, Shine Button, Textarea, Button and Guides, with a CSS entrance only. For music, video and design review tools.

FAQ

How do I fill it with my versions?

Edit VERSIONS: each has an id, an author, a note, a display time and an ISO when, and a mix listing, for each track it contains, its level in dB and which take it uses. Tracks are listed in TRACKS. Everything else, the rows of the difference, their glyphs and the count of changed tracks, is worked out from the two versions you pick.

How is the difference worked out?

Track by track, from the base to the version you compare. A track in only one of them is added or removed; otherwise a different level is read as a signed number of dB and a different take as a new take, and both are shown together if both changed. A track that is the same says unchanged, and picking the same version twice says nothing differs.

What does Merge do?

In the example it moves the Current marker to the version you compare and says it merged in this demo, and it refuses with a reason when the two versions are the same or the version is already current. Replace the handler with a call that merges the two mixes on your server and set the Current marker from its result.

How do I use it from the keyboard?

Each column of radios is a native group, so the arrow keys move within Base or within Compare and Tab leaves the group. The Merge button explains itself when it cannot act, the thread is a named region you can scroll with the keyboard, and one polite status line says what changed. Colour never carries the difference: every row says it in words.

What stays local?

Everything: the comparison, the Current marker and the comments you add live in the page, nothing is sent and the thread is capped at a few new comments. To make it real, load versions and comments from your API and post new ones from the composer.

How does it look on a phone?

Below a wide screen the three columns stack in reading order: the versions, then the difference with its Merge button, then the thread. The thread keeps its own scroll height so the page stays short.