Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Team Members Settings Block for React

A members panel with seat and two-factor meters, a native table with row selection, a role menu per person and, pinned at the foot, a bulk role change and Remove that an Undo walks back one step at a time.

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 admins change who is on the team, and take it back, with this team members panel for React with Base UI. A strip of two meters opens the panel: the seats in use out of ten, and how many members sign in with two-factor, each with a Progress bar and a line about what it means. Below it a native table lists eight members: a Checkbox, who they are (initials, name and address), a role in a Native Select, the two-factor word with a glyph and the last day they were active. The box above the table selects everyone who can be changed and is mixed while only some are ticked. At the foot, pinned to the screen, a status line and Undo sit beside a role menu for the ticked members, the one Shine Button, Change role, and Remove. A removed member stays in the table as a struck row and frees a seat, so the panel never changes height, and every change (one person's role, a bulk role, a removal) goes onto a stack of five that Undo walks back. Owner has a lock instead of a box and a menu. On a phone the table is one card per member. It's built from Checkbox, Native Select, Progress, Avatar, Button, Shine Button and Guides, with a CSS entrance only. For an admin console, a workspace or any product where people hold seats.

FAQ

How do I fill it with my own team?

Edit START: each member has an id, a name, an address, a role (job), whether they use two-factor and the last day they were active as an ISO date. JOBS lists the roles a member can be given, SEATS is what the plan includes and AS_OF is the day the last-active column counts from, so the page reads the same every time. The seat meter, the two-factor meter, the counts and the hints are all worked out from the list.

How does changing a role for several people work?

Tick the members, pick a role in the foot's menu and press Change role. The button waits quietly until both a member and a role are chosen, and pressing it early says which is missing and moves focus there. The menu doesn't act on its own when you arrow through it, so a keyboard or screen reader user can't change five people by accident. A single person's role changes as soon as you choose it in their row, and the status line names who and what.

Why is there no confirmation before Remove?

Because every step can be undone. Remove marks the ticked members as removed, frees their seats and leaves their rows in place as struck lines, and Undo puts the list back as it was before the last change, up to five steps. The status line says what was removed and how many seats are in use. If your product can't take a removal back, ask in an alert dialog first, as the destructive blocks in this category do.

What stays local, and how do I make it real?

Everything. Roles and removals only change the list in the page, and nobody is told or signed out. To make it real, send each change from setJob, changeRole and removePicked to your server, and let it keep the rules the page only shows: the owner can't be changed or removed, a plan has a seat limit, and a removed member's sessions end. Replace the list with the server's answer.

How does it work with a keyboard and a screen reader?

Tab runs through the select-all box, each member's box and role menu, then the foot: Undo, the role menu, Change role and Remove. Every box and menu is named for its member ("Select Calum Rennick", "Role for Calum Rennick"). Change role, Remove and Undo stay focusable while they have nothing to do and explain why in the status line, which is the one live region. Removed members read as "Removed in this demo".

How does it look on a phone?

Each member is a card with the same box, role menu and facts, and the foot stays pinned to the bottom of the screen while the panel scrolls under it, with the status line and Undo on top, the role menu below and Change role and Remove under that.

  • Pro

    A roles window with a rail of five roles and a detail of grouped permissions: mixed-state group boxes, a Compare with select that marks each permission with a plus or a minus, read-only system roles and Duplicate to edit.

  • Pro

    Join rules for a workspace: a domain rules table with a role menu and approval switch, a form that checks a domain before adding it, a field that tries an email address against the rules, and a queue of join requests to approve or decline.

  • Pro

    Seats on a team plan: members with a role each (viewers are free), a stepper for the seats you pay for, and the monthly and prorated cost worked out before you save.

  • Pro

    Invite Members Dialog

    Share and invite

    A household calendar's Members page with its invite dialog shown open: one email field that knows the household's domain, so an outside address joins as a guest, the people who already have access, and a Send invite button that adds a pending row.

  • Pro

    The people who can sign in to a shared account as hairline tiles: role menu, two-factor on or off, last sign-in, those without two-factor first with a reminder button, pending invitations and an invite form.

  • Pro

    A three-step alert dialog for handing over a workspace, open over the members list: choose an admin, review the before and after of both roles, type the workspace name, then a pending state with Cancel transfer.