shadcn.io is not affiliated with official shadcn/ui
Status Board Team Block for React
A three-column board of Online, In focus and Away for a project tracker's team, each person with their activity and local time, and a Set my status group that moves one 'You' avatar between the columns.
Installation
Overview
A team status board for React with Base UI, for Reedmarsh, a project tracker. A compact header carries a "Set my status" pill group, Online, In focus and Away. Under it three columns share their hairlines, rail to rail, each with a status dot, its name and a count. Nine people sit in them as initials avatars with a name, what they are working on and their local time, and people in focus also show when it ends ("Focus until 15:00"). A tenth avatar, "You", starts in Online: picking another status moves it to that column, and a polite line says where it went. The local times are read from your clock after the page loads. The columns hold their height when "You" moves, and on a phone they stack, each with its count. It's built from Toggle Group, Status, Avatar and Guides, with your theme's tokens for every colour. For a team page, a dashboard or an intranet home. The people are invented.
FAQ
How do I change the people and the columns?
Edit PEOPLE at the top of the file: each person is a name, a role, an activity, a status ("online", "focus" or "away"), an offset in minutes east of UTC for their clock, and for people in focus an extra that adds whole hours to when the focus ends. The columns are COLUMNS; add a status there and in PEOPLE to get a fourth.
How does the "You" avatar work?
It is one more person in the list, with the status picked in the header. Picking a pill changes that status and the avatar moves to the matching column, at the end of its list. Its clock is your own, read from the browser. Wire the pill group to your own status API where pick sets the state.
Where does "Focus until 15:00" come from?
It's worked out from the person's clock: the next whole hour on their local time, plus their extra hours. So it is always in the future and never goes stale, and it reads "--:--" until the browser's clock is read after the page loads.
How does it work with a keyboard and a screen reader?
The pills are a labelled group of toggle buttons: Tab enters it and the arrow keys move between the pills. Each column is a labelled list with its count in the heading. When "You" moves, a polite line reads "You are now In focus." without moving focus.
Related
- Pro
Status Filter Team
Hours and placesA live-chat widget's eight people in rows under a ruled pill filter (All, Online, Away, Busy) with counts, each row showing a presence dot, what they are doing and when they were last seen.
- Pro
Hour Scrubber Team
Hours and placesA framed slider over the 24 hours of the day in UTC, above nine people in rows that show who is working at that hour with their local time, a day strip and a live count.
- Pro
Time Zone Axis Team
Hours and placesTen people of a remote-first payroll company laid along an axis of UTC offsets, each office with its avatars, a live local time and a shaded band where it is working time, over six cells that list the same zones.
- Pro
Hybrid Week Desks Team
Hours and placesA coworking company's hybrid week as a table: eight people by Monday to Friday, each cell a desk code like BER-214 or Remote, a who-is-in count under each day and a select to look at one office.
- Pro
Time Off Calendar Team
Hours and placesA four-week grid of Monday to Friday for a shift-scheduling company, with the avatars of people away in each day, a coverage row under every week, the thinnest week flagged and the reasons listed in plain words.
- Pro
Team Presence Live Banner
Live statusA presence callout for a team workspace: a live "4 of 5 teammates active" count over a band of five cells, each an initials avatar with an active or idle dot, a name and the document they are in.