Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Project Standup Chat Block for Radix UI

A stand-up bot asks Yesterday, Today and Blockers in turn, the field follows the step, and each answer fills a board of cards that can be copied as Markdown.

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

Run a daily stand-up in a conversation, with this project standup chat for React with Radix UI. A hairline frame with a plus mark on each corner holds a window of fixed height for Standline, a stand-up bot: Standline Bot, marked with a Bot word, asks three questions one at a time in Message and Bubble rows, a strip of three steps above the field shows where you are, and the field's label and placeholder follow the step ("Yesterday I...", "Today I will...", "Blocked by..."). At the end sits Today's board with three lists; each answer posts in the thread and adds your card to the board next to four teammates' typed cards, "Posted 4 of 5" counts everyone who has answered all three, and a Blockers card is marked with a glyph and the word "Blocked" unless the answer is "none". "Copy summary" really copies the board as Markdown. The composer's Shine Button is the only colored control, and on a phone a Toggle Group switches between Chat and Board. The frame is ruled by Guides, and everything moves with CSS only. It's the starting point for a stand-up bot, a check-in or any guided conversation that fills a record.

FAQ

How does the field follow the step?

The step is the number of answers you have given, so STEPS.at(answers) gives the label, the placeholder and the question the bot asked. The strip is a list with the current step marked aria-current="step" and done steps ticked. After the third answer the field becomes a plain message field and the bot closes the stand-up.

How is the board derived?

Teammates' answers are typed in TEAM; yours come from state. cardsOf builds each list from both, postedOf counts the people with all three answers, and a card is Blocked when it is in the Blockers list and its text does not start with none, no, nothing or n/a. The same function feeds the board, the count and the Markdown, so they never disagree.

What does Copy summary copy?

A real Markdown document: a title, then Yesterday, Today and Blockers headings each with one line per person, and "(blocked)" after a blocker. If the browser refuses the clipboard, the status line says so. Replace the summary with a call to your tracker if you want it posted.

What stays in the page, and how do I make it real?

Everything: the bot's questions and closing line are typed, and nothing is posted to a team. To wire it for real, send each answer to your server where post says so, and render the board from what your server returns.

Is it usable with a keyboard and a screen reader?

The log is a focusable region announced as a log, the field has a label that changes with the step, and one status line under the window announces each card added. The board's lists have headings, and "Blocked" is a word beside its glyph.