shadcn.io is not affiliated with official shadcn/ui
No Guests Empty State Block for React
A collaboration tool's empty guest list: a pass to fill in (email, how long it lasts, view or comment), a visitor badge on a lanyard that fills as you type, a summary that rewrites itself, and a guest list of three dashed places.
Installation
Overview
Make the first guest a pass you fill in, with this no guests empty state for React with Base UI. A hairline frame with a plus mark on each corner holds the guest list of Verandaly, a client collaboration tool. At the start is the pass: an Input for the guest's email in a Field, a Native Select for how long it lasts (7 days, 30 days or no expiry) and a Toggle Group for what the guest can do, view or comment. At the end a visitor badge hangs on a lanyard with a dashed place for the photo; type an address and the place turns solid with the guest's initials, and the speech bubble turns solid when you let the guest comment. A Data List under the badge rewrites itself as you choose. The Shine Button, the only colored control, adds the guest to the list under it: three rows, each held by a dashed place, so the panel never changes height. The frame's bands are ruled by Guides and the badge is a single drawn SVG that changes by class, with a CSS entrance only. For the guest or client list of any shared workspace.
FAQ
What stays in the page, and how do I make it real?
The guests live in the page's state: reload and the list is empty, and Start over empties it without a reload. Nothing is sent, saved or emailed. To wire it for real, call your invite API where the code says so, then add the guest from its response, with the pass's own id, and show a pending state until they accept.
Where does the expiry date come from?
From a fixed day written at the top of the file, not the visitor's clock, so the example always reads "Ends 16 Oct" for a 7 day pass. In your app compute it on the server when the pass is created, and show it in the guest's own time zone. The dates are in time elements with the ISO day, and every one is spelled the same on the server and in the browser.
What does the email field refuse?
An empty field, an address that is not in the form name@company.example, an address on the workspace's own domain (those people join as members, not guests) and an address that is already a guest. Each is said in a line under the field that holds its space, so the layout never moves, and focus goes back to the field. The button stays in the tab order and says why instead of doing nothing.
Is the badge drawing accessible?
It is decoration: hidden from assistive technology, with the same facts in text beside it. The Data List names the guest, what they can do and when the pass ends, the guest list repeats each guest's address and pass, and one polite status line says every change. The words on the badge are HTML laid over the drawing, not SVG text.
How does it look on a phone?
The pass stacks: the fields and the Invite guest button come first so the button is on the first screen, then the badge and its summary, then the guest list. The guest list never holds more than three rows, the status line reserves its lines, and the page does not scroll sideways at 320 px.
Related
- Pro
Invite Team Empty State
First runA full-height invite page for a team chat app: a drawn round table with five chairs that fill as email chips are added, a role select with a sentence per role, and one button that counts the invites and lists them.
- Pro
No Team Members Empty State
Team and accessA team directory's empty state as a bulk paste: a box for one person per line, a table that previews every line it reads and flags the ones it cannot, and an isometric office floor where a desk fills for each person.
- Pro
Invite Members Dialog
Share and inviteA 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
Delegate Access Account
Shared accessTemporary access to an account: a list of active grants with how far through each is and when it ends, End now with Undo, and a side sheet that picks a person, what they can do and 1 to 90 days.
- Pro
Team Members Account
Shared accessThe 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
No Audit Trail Empty State
Team and accessA compliance tool's empty ledger: retention policy radio cards beside a vault door whose dial turns to the choice, and an empty table of Time, Actor, Action and Resource whose first row is written when the policy is saved.