Measured entry
hextaui-ai-message
A shadcn registry client component for rendering AI replies as GFM Markdown, with simulated streaming, clipboard feedback, optional edit and regenerate actions, and theme-aware Shiki code highlighting. It relies on React Markdown, Shiki, next-themes, Lucide icons, Tailwind typography, shared utilities, and shadcn button and dropdown primitives.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | flagged at 375 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 1937.5 KB (2003.0 KB build, 65.5 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 1.59s error during build: [vite]: Rollup failed to resolve import "lucide-react" from "<sandbox>re-20f5648e30a8/src/cut/blocks/ai/ai-message.tsx".
Verdict
Feature-rich and accessible in the configured harness, but expensive for a message renderer and not ready for compact layouts as shipped. It needs a shadcn-style setup to build and mount, plus explicit integration work for responsive containers.
Use it if
- You need a ready-made assistant response renderer with Markdown, tables, links, and fenced code.
- Your product benefits from copy, edit, and regenerate actions that can be wired to existing chat behavior.
- Your app already uses shadcn conventions, Tailwind typography, and next-themes.
Skip it if
- You need a lightweight plain-text message row and do not want Shiki or the Markdown stack in the client bundle.
- Your chat must fit narrow screens without additional layout work, since the verified compact view clips content.
- You need true token streaming from the transport layer rather than a timer that reveals an already complete string.
- Your design system does not use shadcn aliases, shared utilities, or its button and dropdown components.
Install
| Declared dependencies | react-markdown, remark-gfm, shiki, next-themes, @radix-ui/react-slot, @radix-ui/react-dropdown-menu, clsx, tailwind-merge |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add the declared Markdown, GFM, highlighting, theme, Radix, class-merging, and Lucide packages; configure Tailwind typography and theme tokens; then provide the shared cn utility, path aliases, button, and dropdown-menu components. Also constrain the parent width responsively and decide whether to disable code highlighting.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/preetsuthar17/HextaUIAlternatives
Other published entries for the chat pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hextaui-alertminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 26.8KB
- Bare
- fail
- Prov
- NO
- kibo-bannerminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 33.0KB
- Bare
- fail
- Prov
- NO
- ruixen-comment-threadunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 40.2KB
- Bare
- fail
- Prov
- NO
- ruixen-smart-paste-inputunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 44.4KB
- Bare
- fail
- Prov
- NO
- ruixen-faq-chat-accordionunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 67.7KB
- Bare
- fail
- Prov
- NO
- ruixen-gradient-chat-inputgradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 72.6KB
- Bare
- fail
- Prov
- NO