shadcn.io is an independent project built on shadcn/ui
A people icon, the title No team members yet, and a line about inviting people. Invite Team Member and Import from CSV are full-width buttons, one above the other.
Use it in a narrow panel so the two actions do not sit in a cramped row. The invite form itself can open in a Dialog. In Svelte, Ark UI does not send the invite.
Installation
Anatomy

Usage
<Empty><EmptyHeader><EmptyMedia variant="icon"><UsersIcon aria-hidden="true" /></EmptyMedia><EmptyTitle>No team members yet</EmptyTitle><EmptyDescription>Invite team members to collaborate on your projects.</EmptyDescription></EmptyHeader><EmptyContent><Button class="w-full"><UserPlusIcon aria-hidden="true" data-icon="inline-start" />Invite Team Member</Button><Button class="w-full" variant="outline"><UploadIcon aria-hidden="true" data-icon="inline-start" />Import from CSV</Button></EmptyContent></Empty>FAQ
How do the buttons stack?
They are direct children of EmptyContent, which is a column. Each Button has className="w-full", so both stretch to the content width.
Which button is filled?
Invite Team Member has no variant and includes UserPlusIcon. Import from CSV sets variant="outline" and includes UploadIcon. Invite is first.
What separates the two buttons?
EmptyContent is a column with a gap, so the buttons separate without a margin class of their own. The header icon is UsersIcon in EmptyMedia with variant="icon".
What does the empty team say?
EmptyTitle is "No team members yet". EmptyDescription says to invite team members to collaborate on projects.
API Reference
Empty
Sets variant="icon". The rest is on the Empty page.
Button
Sets variant="outline". The rest is on the Button page.





