Can the conversation scroll beneath the composer?
Kits
ChatLayout
A scrolling conversation with a pinned header, message turns, and a floating composer dock.
Composition
Conversation and composer
- <ChatLayout>
- <ChatThread>
- <ChatTurn>
- <ChatMessage />
- <Activity>
- <ActivityTrigger>
- <ActivityTitle />
- <ActivityContent>
- reasoning content
- <ActivityTrigger>
- <ChatThreadScrollButton />
- <ChatComposer />
- <ChatTurn>
- <ChatThread>
Channel header
- <ChatLayout>
- <ChatLayoutHeader>
- leading trigger
- <ChatLayoutTitle />
- <ChatLayoutDescription />
- <ChatLayoutActions />
- <ChatThread />
- <ChatLayoutHeader>
Installation
Use this command to install the component.
Usage
Dependencies
Use chat thread scroll
src/registry/hooks/use-chat-thread-scroll.tsHookMotion
Buttonsrc/registry/lib/motion.tsUtilbuttonPrimitiveChatMessagechat-messageComponentLive statuslive-statusPrimitiveScroll areascroll-areaPrimitiveRaw code
Installed component source and support files
Knobs
Typed custom properties the recipe paints with. Set one on the root — style, a utility class, or a skin — and every slot inherits it.
--cui-chat-layout-* · 7 knobsHow the cascade resolves--cui-chat-layout-radius<length-percentage>var(--radius-scene)--cui-chat-layout-background<color>var(--background)--cui-chat-layout-border-color<color>var(--border)--cui-chat-layout-border-width<length>var(--control-rim-width)--cui-chat-layout-shadow*var(--shadow-md)--cui-chat-layout-scroll-button-gap<length-percentage>calc(var(--spacing) * 3)--cui-chat-layout-turn-gap<length-percentage>calc(var(--spacing) * 2)