Workspace members: seat usage, an invite row, the member list with activity and roles, and pending invites.
FreeWeb and MobileMotion
Preview
npx shadcn add @fetaui/membersPlayground
Members
Manage who can work in the Fieldnote workspace.
7 of 10 seats
Members 5
⌘ K
- Emma CollinsYouemma@fieldnote.exampleOwner · Active nowActive nowOwner
- Ava Mitchellava@fieldnote.exampleAdmin · Active nowActive now
- Marcus Johnsonmarcus@fieldnote.exampleMember · Active 2 hours agoActive 2 hours ago
- Jasmine Brooksjasmine@fieldnote.exampleMember · Active yesterdayActive yesterday
- Sofia Ramirezsofia@fieldnote.exampleViewer · Active Sep 14Active Sep 14
Pending invites 2
- jordan.blake@fieldnote.exampleMember · Invited Sep 19
- priya.shah@harborline.exampleViewer · Invited Sep 20
Inviting
Members
Manage who can work in the Fieldnote workspace.
9 of 10 seats
Members 5
⌘ K
- Emma CollinsYouemma@fieldnote.exampleOwner · Active nowActive nowOwner
- Ava Mitchellava@fieldnote.exampleAdmin · Active nowActive now
- Marcus Johnsonmarcus@fieldnote.exampleMember · Active 2 hours agoActive 2 hours ago
- Jasmine Brooksjasmine@fieldnote.exampleMember · Active yesterdayActive yesterday
- Sofia Ramirezsofia@fieldnote.exampleViewer · Active Sep 14Active Sep 14
Pending invites 2
- jordan.blake@fieldnote.exampleMember · Invited Sep 19
- priya.shah@harborline.exampleViewer · Invited Sep 20
Icons animation
Motion
Installation
Terminal· bash
npx shadcn add @fetaui/members
Accessibility
- The seat bar is a labelled progress bar.
- Each role Select and remove button is named after the member.
- Presence repeats in the Active now text, never colour alone.
- Owner has no Select, so it cannot be changed by mistake.
Motion
- The panel fades and rises 8 over 400 ms, and rows fade in 40 ms apart.
- The seat count rolls and the bar scales over 240 ms as addresses are typed.
- Press is 0.98 from Button.
- With reduced motion, the panel fades only and values swap.
Responsive behavior
- Below 480 wide the invite row stacks.
- Activity and role Selects drop into a line under the name, and search and Revoke are dropped.
Performance
- Parsing the invite field and filtering members are both memoized.
- Rows fade in 40 ms apart, once, and reduced motion skips it.
Note for AI
Give your coding assistant the Markdown reference instead of screenshots.
- Import Members from @/components/fetaui/members. It composes Input, Select, Search, Button and Icon Button with Avatar and Meter from product-kit.
- Seats used counts members, pending and addresses being typed. It shows the count but never blocks past seats, so enforce that in onInvite.
- Send waits until every address is valid, and Enter sends them. Use Invite Field when you need chips and a message per address.
- members and pending are controlled: update them from onInvite, onRoleChange, onRemove, onResend and onRevoke. The demo does this in local state. Rows with role Owner have no controls.
Related
Member RowComponentOne member: avatar, name and email, last activity, a role Select and a menu. Pending adds Invited and Resend, and Deactivated locks the role.Invite FieldComponentA wrapping box of email chips, a role Select and Send. Send waits until every address is valid.Invite TeammatesComponentAn invite panel with a seat bar split by members, pending and new. At the seat limit, the action becomes an upgrade.Roles and PermissionsProBlockA permission matrix: roles as columns, grouped permissions with mixed group rows, a locked Owner column, and held changes with Save.People DirectoryProBlockSearch, team tabs, a list with presence and a detail pane with a copy email button.