Chat Components
The shadcn chat primitives — Message,Bubble,Attachment,Marker, andMessageScroller — ported into the @cs-coe registry and themed with Genentech tokens. See the shadcn release notesfor the original components. For a working conversation built from these pieces, see theChat Assistant demo.
Bubble
The message surface. Seven variants cover primary replies, quiet system text, tinted brand emphasis, and destructive states.
variant="default"variant="secondary"variant="muted"variant="tinted"variant="outline"variant="ghost"variant="destructive"align="end"BubbleReactionsMessage
Lays out a conversation row: avatar, header, content, and footer, with start/end alignment.
Attachment
Files and images with media, metadata, upload state, and actions. Shown across sizes, orientations, and states.
orientation="horizontal"state (uploading / processing / error / done)orientation="vertical" (image card)size="sm" / size="xs"Marker
Status updates, system notes, labeled separators, and bordered rows for streaming state, tool activity, and date breaks.
variant="default"variant="separator" (date break)variant="border"shimmer (live status)Generating response…
MessageScroller
Scroll container that anchors to the latest turn. Scroll up to reveal the jump-to-end control; the edges fade via scroll-fade.
Components Used
@cs-coe/message@cs-coe/bubble@cs-coe/attachment@cs-coe/marker@cs-coe/message-scrollerCSS Utilities
The components rely on two scroll-aware CSS utilities that ship alongside them:scroll-fade adds edge fades to scroll containers, and shimmer animates live status text like "Generating response…".
Both are vendored in src/styles/chat-utilities.cssand imported from the app's global stylesheet.