Vibary.ai
← Vibe Coding

Typing Indicator

Three dots rise and fall in sequence inside the bubble a reply will occupy.

socialfriendlysubtleautomatic · looping · starter · ~1.2s
Variant

The animated component in this preview is rendered from the canonical file shown here. The surrounding demo shell only provides context and is not part of the copied code.

123 lines · react + motion only
import { motion, useReducedMotion } from "motion/react";

/**
 * Vibary · Typing Indicator
 *
 * Three dots inside the bubble the reply will occupy. They share one
 * cycle offset by a third each, so the movement reads as travelling
 * left to right rather than pulsing as a block — and the travel stays

About this pattern

The oldest liveness signal in messaging, and the one most often overdone. Three dots share one cycle offset by a third each, so the movement travels left to right instead of pulsing as a block, and the travel stays small enough that the bubble itself never appears to move. The indicator occupies the same slot the incoming message will land in, so nothing jumps when the words arrive.

Someone is composing a replyGroup chat activitySupport agent respondingPlaceholder for an incoming bubble

Where it shows up

Screens we drew to show where this motion usually sits. Illustrations, not captures of any product.

  • 10:15
    Dana Whitfieldonline
    Morning — did the venue confirm?
    They did, contract came back signed.10:14
    Are we still on for Thursday?
    Yes — booked the room for 2pm.10:14
    Perfect. I'll bring the printouts.
    See you then.10:14
    Message
    Chat thread

    Dots sit in the slot the incoming bubble will occupy.

Related patterns