The headless library
Your components. All the behavior.
Explore 47 experiences and 1,483 public parts. Each guide includes compositions, a visual anatomy, installation and the complete API for its parts.
Blue marks behavior, purple marks gates, and teal marks generic components that need no service. Amber identifies visual renderers that are not purely headless. Search the sidebar by experience or public part name.
Authentication
Sign in
Authenticate with a password, a code, or a social account. Supply your own elements while the parts handle the flow.
55 public parts
Create an account
Create an account, collect profile details, and verify its email or phone.
49 public parts
Recover access
Request a password reset, choose a new password and handle recovery states.
16 public parts
Account
Profile and contact details
Edit the current account's name and picture, with save and failure states.
51 public parts
Account menu
Compose an account menu, settings dialog, invitations, and an undoable sign-out.
28 public parts
Password
Compose password settings with the auth service and your own interface.
19 public parts
Passkeys
Signing in with a passkey, the list of a person's passkeys, adding, naming and removing one, and the offer made to someone who tried a passkey and had none. A subpath of its own, installed only where an app offers passkeys. It exports SignIn and User as the auth namespaces with the passkey parts added, so a screen keeps writing SignIn.Passkey and User.AddPasskey, and a Passkeys namespace for the manager.
24 public parts
Two-factor authentication
An authenticator app for the signed-in account: setting one up, the recovery codes, replacing or removing it, and the second-factor step of signing in. A subpath of its own, installed only where an app offers it. It exports SignIn and User as the auth namespaces with its parts added, so a screen writes SignIn.TwoFactorCode and User.TwoFactor.Root, importing both from here.
38 public parts
Connected accounts
Compose connected accounts with the auth service and your own interface.
18 public parts
Active sessions
Compose sessions with the auth service and your own interface.
13 public parts
Delete account
Compose delete account with the auth service and your own interface.
16 public parts
Organizations
Switch or create a workspace
Search accessible organizations and switch the active workspace.
29 public parts
Workspace settings
Edit a workspace's name, slug and logo.
28 public parts
Members
List members, edit roles, manage domain access and pending invitations.
56 public parts
Invitations
Collect several email addresses, resolve invalid entries, and send invitations together.
37 public parts
Join requests
Review and approve or reject workspace access requests.
14 public parts
Domain access
List members, edit roles, manage domain access and pending invitations.
11 public parts
Collections
Data table
Build collection table on your collection's schema, query and permissions.
76 public parts
Filter records
Build collection filters on your collection's schema, query and permissions.
39 public parts
Record detail
Build record details on your collection's schema, query and permissions.
12 public parts
Create a record
Compose create a record using the surrounding collection's state.
9 public parts
Select and edit records
Build selection & actions on your collection's schema, query and permissions.
32 public parts
Kanban board
Build collection board on your collection's schema, query and permissions.
14 public parts
Hierarchical records
Build collection hierarchy on your collection's schema, query and permissions.
8 public parts
Files & documents
Upload files
Compose file upload with storage permissions, loading and failure states.
50 public parts
Browse files
Compose file explorer with storage permissions, loading and failure states.
72 public parts
Find files
Compose file search & filters with storage permissions, loading and failure states.
33 public parts
Organize files
Compose file actions & trash with storage permissions, loading and failure states.
42 public parts
Preview files
A keyboard-accessible file viewer shared by every family that shows files: a file browser, an upload queue, chat attachments. It takes a list of preview items (id, name, media type, nullable url), opens a modal on one, steps between them and draws each with a native stage: image with zoom, audio, video, a sandboxed frame for PDF, highlighted text, CSV. A format it cannot draw gets an honest fallback, never an endless spinner.
39 public parts
Change your avatar
Pick a photo, crop it in a dialog, and store the result in a bucket. The crop, the transforms, the background fill and the filters are local work from image-crop, a client-only service; storing the result is file-storage's, which is why these parts ship with it. The picture's URL comes back through onChange, so the same parts serve a user's avatar, an organization's logo, or any square image.
32 public parts
Transcription
Dictation
Dictate into an existing field with microphone, revision and recovery controls.
37 public parts
Live transcript
Stream speech into a transcript with partial results, speakers and connection states.
17 public parts
Recording transcript
Upload a recording, follow transcription progress and inspect the completed result.
29 public parts
AI chat
Conversation
Compose ai conversation without managing the chat transport yourself.
138 public parts
Artifact workspace
Versioned React source written by the model through the createArtifact and updateArtifact tools, inspected beside the chat: a card in the transcript, a nonmodal panel that can be resized, version navigation with a diff, and a preview that runs only when somebody presses Run, in an isolated iframe. Nothing is stored beyond the conversation and nothing executes in the host page.
27 public parts
Input components
Message composer
One generic form for every place a message is sent: a chat, a room, a comment thread, a plain form posted to a server action. It knows nothing about chats, uploads or dictation. It collects fields, holds the submit while any field is busy, and hands the message to the nearest sink or to its own onSubmit. Two contracts, field and sink, are all it relies on. It replaces Chat.Composer, Room.Composer and Upload.Composer, and the chat-attachments and chat-dictation bridges.
8 public parts
International phone field
One phone number with a searchable country list, for every screen that asks for one: sign-in, sign-up, the profile and the address. The number formats for its country as it is typed, a typed +33 picks France, a valid number is shown nationally on blur and leaves as E.164 or not at all, and a list of allowed countries is honoured. phone is a client-only service (DESIGN.md §8): no server, no config file, no route. The list is Base UI's Combobox, so the keyboard, the focus and the ARIA are the primitive's.
17 public parts
Realtime
Join a room and see who is here
Build room presence with the room's shared state and capability-aware controls.
37 public parts
Team conversation
Build room chat with the room's shared state and capability-aware controls.
33 public parts
Follow a teammate
Build cursors & following with the room's shared state and capability-aware controls.
14 public parts
Video meeting
Build video calls & devices with the room's shared state and capability-aware controls.
48 public parts
Captions and transcript
Build captions & transcript with the room's shared state and capability-aware controls.
10 public parts
Voice room
Build voice stage with the room's shared state and capability-aware controls.
14 public parts
Collaborative canvas
Build collaborative whiteboard with the room's shared state and capability-aware controls.
32 public parts
Annotate together
Build shared drawing with the room's shared state and capability-aware controls.
10 public parts