Message
Displays a chat message with avatar, header, footer, and content — pairs with Bubble for the message body.
"use client"
import { Message, MessageAvatar, MessageContent, MessageHeader, MessageFooter, Bubble, BubbleContent } from "uilab-core"
export function MessagePreview() {
return (Usage
import { Message, MessageAvatar, MessageContent, MessageHeader, MessageFooter } from "uilab-core"<Message align="start">
<MessageAvatar>👤</MessageAvatar>
<MessageContent>
<MessageHeader>Bat</MessageHeader>
<Bubble>
<BubbleContent>Hello!</BubbleContent>
</Bubble>
<MessageFooter>10:30 AM</MessageFooter>
</MessageContent>
</Message>Examples
Align
Use align="start" or align="end" to position the message and its avatar.
"use client"
import { Message, MessageAvatar, MessageContent, MessageFooter, Bubble, BubbleContent } from "uilab-core"
export function MessageAlignExample() {
return (Group
Use MessageGroup to group consecutive messages from the same sender.
"use client"
import { MessageGroup, Message, MessageAvatar, MessageContent, MessageHeader, MessageFooter, Bubble, BubbleContent } from "uilab-core"
export function MessageGroupExample() {
return (Action
Place message-level actions in MessageFooter, such as copy, retry, or feedback buttons. Give each icon-only button an aria-label.
"use client"
import {
Message,
MessageAvatar,
MessageContent,With Attachment
Combine Message, Bubble, and Attachment to build a realistic conversation with file sharing.
"use client"
import { DownloadIcon, FileTextIcon } from "lucide-react"
import {
Attachment,
AttachmentAction,