Components
Message
One transcript turn: a right-aligned user bubble or an assistant stack (status, cards, prose) with its action row.
Turns
User rows sit 24px (compact 20) below the previous turn, right-aligned; assistant rows 8px (6) below. The assistant stack is 20px (16) apart. Hover a row to reveal its actions; focusing anything inside shows them immediately.
Light and dark
Text size and streaming
textSize re-sizes the message text through the [data-text-size] scope (v2: sm 14/20 · md 15/21 · lg 16/22); controls inside keep 14/20. A streaming reply sets aria-busy on its content and renders no actions.
Kit extras
claude.ai shows no avatars or names; MessageHeader (13/17 muted) and MessageAvatar (24 | 20 circle) are kept for other chat surfaces. A long unbroken word wraps inside the bubble.