AI Message
One turn in a conversation, with role, avatar, actions and footer slots.
- AI
- 1 file
- 2 npm packages
- Accessibility notes
pnpm dlx @dowel-ui/cli add ai-messagenpm packages installed: class-variance-authority, radix-ui.
import { Message } from "@/components/ui/ai-message";Default
Roles
With Actions
With Footer
Actions Reveal
<Message>
| Prop | Type | Default |
|---|---|---|
fromWho is speaking. Named | MessageRole | "assistant" |
fromLabelOverrides the visually hidden speaker label. | string | — |
Plus every attribute of <li> except role.
<MessageBody>
| Prop | Type | Default |
|---|---|---|
fromWho is speaking. See the note on MessageProps for why not | MessageRole | "assistant" |
Plus every attribute of <div> except role.
<MessageAvatar>
| Prop | Type | Default |
|---|---|---|
asChild | boolean | — |
Plus every attribute of <div>.
<MessageActions>
Plus every attribute of <div>.
<MessageTimestamp>
| Prop | Type | Default |
|---|---|---|
dateTimeMachine-readable value for | string | — |
Plus every attribute of <time>.
<MessageFooter>
Plus every attribute of <div>.
8/8
checks passed
- Tested — passes
- axe assertion — passes
- Keyboard tested — does not apply
- Storybook examples — passes
- Accessibility documented — passes
- Semantic tokens only — passes
- Motion from tokens — passes
- className merged — passes
- Visible focus — does not apply
- No fixed widths — passes