Conversation

A chat thread written as plain text — speakers auto-register, runs collapse under one name, and bubbles hold their measure in both CJK and Latin.

Playground
you

how wide should a bubble be?

Ada

30em.

A CJK glyph is 1em and a Latin glyph about half that, so one number lands on ~30 Chinese characters and ~60 Latin ones.

you

ship it

pnpm dlx shadcn@latest add https://buxx.me/r/conversation
Astro
---
import Conversation from '@/components/ui/conversation.astro';

const source = `
@conversation avatars=on names=on tints=on
@Ada accent=#4E7A5E

you: how wide should a bubble be?
ada: 30em.
ada: A CJK glyph is 1em and a Latin glyph about half that,
  so one number lands on ~30 Chinese characters and ~60 Latin ones.
--- later
you: ship it
`;
---

<Conversation source={source} />

Original conversation syntax and thread layout by Bunizao.

View source Components