This shell is intentionally small so the primitive boundaries stay obvious.
Chat - Minimal headless shell
Compose the smallest complete chat surface from headless primitives.
The demo below composes the headless primitives that make up a complete chat surface — a root, a pane layout, a conversation list, a thread container, a message log, and a composer:
Chat.RootChat.LayoutConversationList.RootConversation.RootMessageList.RootComposer.Root
Use the minimal shell to identify:
- Which primitives are structural containers.
- Which parts are optional enhancements versus baseline building blocks.
- Where core runtime props enter the headless tree.
When to use this pattern
This pattern is a good fit for:
- Early product prototypes that need a believable chat shell quickly.
- Internal tools where correctness matters more than polished visual design.
- Embedded assistants that need a compact, low-ceremony chat surface.
- Documentation, demos, and sandbox pages that should teach the headless stack clearly.
Key primitives
Chat.Rootwires the runtime into the headless tree and renders the chat surface root.Chat.Layoutsplits the surface into conversation and thread panes.ConversationList.Rootrenders the selectable list of conversations.Conversation.Rootholds the active conversation surface.MessageList.Rootrenders the thread log.Composer.Rootholds the draft surface and submit flow.
See also
- See Two-pane inbox for the standard application layout.
- See Composition for details on the conceptual structure.