Measured entry
tripled-ai-chat-interface-shadcnui
chatminimal-flatmotion on file
A client-side React prompt composer with an auto-growing textarea, animated action menus, a model picker, and a send control. It ships as a shadcn registry component and relies on shadcn Button and Textarea primitives, Tailwind theme classes, Framer Motion, Lucide icons, React, and the supporting Radix stack.



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 | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 74.3 KB (139.7 KB build, 65.4 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 55.29s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/components/ui/button.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A capable visual starting point that builds and mounts cleanly in its intended environment, with responsive behavior and sensible reduced-motion handling. It is still a UI shell rather than a chat feature, and it needs a shadcn-style setup before it will work in a bare React project.
Use it if
- You need a polished prompt composer shell for an AI chat screen and will wire its actions to your own application logic.
- Your app already uses shadcn conventions, Tailwind theme tokens, and the expected import aliases.
- You want compact share, rewrite, history, and model menus in the composer itself.
Skip it if
- You need a complete chat flow with message history, uploads, streaming responses, or a working send action.
- You do not want Framer Motion and icon-library weight for a single prompt composer.
- Your project cannot adopt shadcn-style primitives, Tailwind theme classes, and path aliases.
- You need model choices and menu actions to come from live data without first replacing the hardcoded options and console-only handlers.
Install
| Declared dependencies | framer-motion, react, radix-ui |
|---|---|
| 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 expected source alias and utility helper, shadcn-compatible Button and Textarea primitives, Tailwind configuration with the referenced theme tokens, global styles, Framer Motion, Lucide React, and any Radix dependencies used by those primitives. Then replace the placeholder logging and fixed model list with application behavior.
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/moumen-soliman/uitripledAlternatives
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