Chat bubbles

Chat message bubble components for real-time conversations, offers, images, and notifications.

Text messages

Maria S.

Hey! Is this still available?

14:30

Yes it is! Are you interested?

14:30

Yes, can you do a better price?

14:30

I can do 10% off if you buy today

14:30

Text bubbles show sent messages (green, right-aligned) and received messages (card background, left-aligned). Sent messages include delivery status indicators (single check = sent, double check = delivered/seen).

Delivery status

Message sent

14:30

Message delivered

14:30

Message seen

14:30

Sent, delivered, and seen states are shown with check mark icons next to the timestamp.

Image messages

Ana L.

Check out this vintage bag!

14:30
14:30

Image bubbles support single and multi-image layouts. Single images display full-width; multiple images use a 2-column grid. Click to expand in a dialog. Captions appear below the image when content is not empty.

Image error state

Ana L.

Image failed to load

14:30

When photos fail to load or the entity has no valid image URLs, a graceful fallback message is displayed.

Notification bubble

Notification

Your order has been shipped! Track it now.

14:30
Notification

You have a new review from Ana L.

Notification bubbles use a blue border and background. They display a "Notification" badge and optionally include a CTA button that opens an external link.

Offer bubble (actionable)

R$ 5.643,00R$ 7.500,00

New offer

When you receive a new offer, the bubble shows accept, decline, and counter buttons. Uses variant="primary", variant="destructive", and variant="secondary" button variants.

Offer states

Received — pending

R$ 5.643,00R$ 7.500,00

New offer

Received — accepted

R$ 5.643,00R$ 7.500,00

Accepted

Received — rejected

R$ 5.643,00R$ 7.500,00

Declined

Received — countered

R$ 5.643,00R$ 7.500,00

New price offered

Received — expired

R$ 5.643,00R$ 7.500,00

Expired

Received — cancelled

R$ 5.643,00R$ 7.500,00

Cancelled

Offer bubbles use semantic design tokens for each state: yellow for pending, green for accepted, red for declined, purple for countered, and muted for expired/cancelled.

Offer sender view

Sent — waiting

R$ 5.643,00R$ 7.500,00

Waiting for response

Sent — accepted

R$ 5.643,00R$ 7.500,00

Accepted

Sent — declined

R$ 5.643,00R$ 7.500,00

Declined

Sent — countered

R$ 5.643,00R$ 7.500,00

New price offered

The sender's view uses muted badge colors to differentiate from the recipient's view. A "waiting for response" message shows only while pending.

Full conversation

Ana L.

Hi! I'm interested in your bag

14:30

Hi Ana! Yes it's available

14:30
Ana L.

Can you send more photos?

14:30

Here you go! It's in great condition

14:30
R$ 9.000,00R$ 12.000,00

New offer

A typical conversation mixing text messages, images, and offer bubbles. Messages flow naturally with sender names shown only on the first message in a group.