iMessage Typing Indicator Video: How to Animate the Pause
The three grey dots are the most emotionally loaded three pixels in messaging. They mean someone is on the other end, right now, composing a response to what you just said. And the moment they disappear without a message arriving, they mean something else entirely — that the person read your message, started to answer, thought better of it, and stopped.
That single beat carries more narrative weight than most dialogue you could write. This guide covers how to animate it in MockClip's iMessage template: the typing bubble itself, the cancelled-typing variant where nothing ever sends, the separate input-field animation for your own outgoing messages, and the timing values that make each one land.
What the typing indicator actually controls
MockClip exposes four separate settings that govern typing behaviour, and they do not all do the same thing. Getting them straight is the difference between a clip that reads as a real conversation and one that feels subtly wrong.
typingDuration — the number of seconds the three-dot bubble displays before the incoming message appears. This applies to messages from the other person only. Your own messages never show a typing bubble, because on a real phone you do not see your own typing indicator.
cancelTyping — when enabled on an incoming message, the typing bubble appears, runs for the full typingDuration, and then disappears without the message ever being delivered. The message content you wrote is never shown. It requires typingDuration to be set, since there has to be a duration for the indicator to run before it cancels.
showTyping — animates your own outgoing text appearing character by character in the input field at the bottom of the screen, before it sends. This is the outgoing counterpart, and it applies to your messages only.
typingSpeed — characters per second for that outgoing input-field animation. The default is 15.
The split matters: incoming typing is a bubble, outgoing typing is an input field. They are different UI elements in the real app and MockClip keeps them separate. If you set showTyping on an incoming message or typingDuration on an outgoing one, you will not get what you expect.
The cancelled-typing beat
This is the single most useful storytelling device in the whole chat-video format, and almost nobody uses it, because most tools cannot render it.
A normal typing indicator is punctuation. It fills the gap between messages so the conversation breathes. A cancelled typing indicator is content. It tells the viewer something happened inside the other person's head that they chose not to share.
Structurally, it works like this:
- You send something that lands hard — a question, an accusation, a confession.
- The dots appear. The other person is answering.
- The dots hold. Long enough that the viewer starts reading into it.
- The dots disappear. Nothing arrives.
The fourth step is where the tension comes from. The viewer has been primed to expect a reply, and the expectation is withdrawn. In a comments section this reliably produces the "WHAT DID THEY TYPE" reaction, which is exactly the engagement you want.
You can extend it further by following the cancellation with a different message than the one that was cancelled. The video above does this: after the cancelled beat, the reply that eventually arrives is "We'll talk when you get home." — which answers nothing and implies everything. The viewer's brain fills the gap between what was typed and what was sent.
To build it, add an incoming message, set typingDuration to somewhere between 2.5 and 3.5 seconds, enable cancelTyping, and then add a second incoming message underneath with its own shorter typingDuration. The first one never lands; the second one does.
Timing the hold
The duration you pick changes the meaning:
| Duration | Reads as |
|---|---|
| Under 1s | A rendering glitch — too fast to register as a pause |
| 1.5–2s | Normal conversational rhythm, ordinary reply |
| 2.5–3.5s | Hesitation. Something is being weighed |
| 4s+ | Risky in short-form. Most viewers scroll |
For a standard typing bubble between two ordinary messages, 1.5 to 2 seconds is right. It reads as natural pacing and the viewer barely notices it consciously, which is the goal — it should feel like a conversation, not like a feature demo.
For a cancelled beat, go longer. The whole point is the discomfort of waiting, so 2.5 to 3.5 seconds gives the viewer time to lean in before the rug pull. Under two seconds the cancellation happens before they have registered that typing started.
One caveat specific to short-form: these durations are dead air. A nine-second clip with three two-second typing indicators is spending two-thirds of its runtime on dots. Use the long holds where they carry meaning and keep the rest tight, or use delayBefore on messages that do not need a typing bubble at all.
Outgoing typing: the input-field animation
The other half of the feature animates your own side. Enable showTyping on an outgoing message and MockClip types the text into the input field character by character before sending it, at whatever typingSpeed you set.
This is a different tool with a different job. The incoming bubble creates suspense about what someone else will say. The outgoing animation creates suspense about what you will say — and because the viewer can read the text as it forms, it lets them anticipate the message before it sends.
typingSpeed is where the characterisation lives. The default of 15 characters per second is a neutral, competent typing pace. Drop it to 10 or 11 and the same sentence reads as hesitant, careful, maybe a bit reluctant. Push it past 20 and it reads as urgent or angry. The second video above runs at 11 for exactly that reason — "Yeah. Can't sleep." typed slowly says something the same words typed fast would not.
A technique worth knowing: because the input-field animation shows text forming before it sends, you can use a long outgoing message with a slow typing speed as the payoff of a video. The viewer reads it as it appears. By the time it sends they have already absorbed it, and the send itself becomes the punctuation rather than the reveal.
Which templates support what
Typing behaviour is not uniform across MockClip's templates, because it is not uniform across the real apps either. Verified against the current template set:
| Template | Incoming typing bubble | Cancelled typing | Outgoing input-field typing |
|---|---|---|---|
| iMessage | Yes | Yes | Yes |
| Yes | No | Yes | |
| Instagram DM | Yes | No | Yes |
| ChatGPT | No | No | Yes |
The practical consequence: if your script depends on the cancelled-typing beat, build it in the iMessage template. It is the only one that renders it. If you need the beat in a WhatsApp-styled video, you would have to fake it another way, and the result will not be as clean.
The ChatGPT template's omission is deliberate rather than a gap. ChatGPT does not show you a three-dot bubble while it composes — it streams tokens into the response. That is a different animation, covered separately in the streaming-text and thinking-state templates.
Four scripts that use the beat
The unanswered question. Outgoing message asking something direct. Long cancelled typing. Then a reply that changes the subject. Works for relationship-drama content, and it is the structure of the first video on this page.
The apology that never sends. Incoming cancelled typing, twice in a row, with a delayBefore gap between them. No message ever arrives. The clip ends on silence. Pairs well with a caption that supplies the missing context.
The slow confession. Outgoing showTyping at a low typingSpeed on a long message, no incoming typing at all. The viewer watches the sentence assemble. Best for text-heavy storytelling where the words are the content.
The interrupted argument. Alternating short messages with 1.5-second typing bubbles to establish a fast rhythm, then one cancelled beat at 3.5 seconds to break it. The rhythm change does the work — the viewer feels the conversation stall.
Mistakes that break the illusion
Typing bubbles on your own messages. Real iMessage does not show you your own typing indicator. If you want to animate your side, use showTyping and the input field.
Every message getting a typing indicator. Real conversations do not work this way. Quick back-and-forth replies arrive without a visible typing pause. Reserve the bubble for messages where the pause means something and use delayBefore for the rest.
Cancelling without a follow-up. A cancelled beat with nothing after it can read as an unfinished clip rather than an intentional silence. It works, but only if the framing makes the silence obviously deliberate — a caption, a hard cut, or a held final frame.
Uniform typing speed across characters. If two different people in your conversation both type at exactly 15 characters per second, they read as the same person. Vary it.
Ignoring total runtime. Typing indicators are the easiest way to accidentally build a 20-second clip out of four messages. Time the whole thing before you export.
Building one
Open the iMessage template, set the contact name and theme, then add your messages in order. For each incoming message, set typingDuration if you want a bubble and enable cancelTyping if it should never arrive. For each outgoing message, enable showTyping and set typingSpeed if you want the input-field animation. Preview, adjust the durations against the table above, then export to MP4.
If you are new to the template, the full iMessage conversation walkthrough covers the basics — contacts, themes, delivery states, and export. For the beats that come after a message lands, the tapback reactions guide covers the other half of the emotional vocabulary. And if you are still deciding which app's UI fits your story, the chat format guide compares every template side by side.
Export options and watermarking vary by plan; the pricing page has the current details.
Combining typing with delivery receipts
Typing indicators and delivery statuses are the two halves of the same toolkit — one covers the moment before a message exists, the other the moment after it lands — and they compound when used together.
The strongest pairing is a long incoming typing bubble followed by an outgoing message left on read. The viewer watches the other person compose something, sees it cancel or arrive, and then watches the reply go unanswered. Two different kinds of silence in one clip, each meaning something different: the first is someone choosing not to speak, the second is someone choosing not to respond.
The inverse also works. Open with your own message already marked as read, then run a long incoming typing bubble that cancels. The order changes the story — now the silence is the answer to something already acknowledged, which reads as colder than an unanswered message.
Delivery statuses cost almost nothing in runtime, while typing indicators are expensive in dead air. That asymmetry is useful: use the receipts to carry meaning cheaply, and spend your typing seconds only on the one or two beats that genuinely need a pause. The delivery receipts guide covers the status side in full, including the rule that only the last message in a thread displays a status.
Troubleshooting
The bubble does not appear. typingDuration applies to incoming messages only. If the message is marked as coming from you, there is no bubble to render — use showTyping instead.
The cancelled message shows up anyway. cancelTyping requires typingDuration to be set. Without a duration there is no indicator to run and then cancel, so the message simply sends.
The input-field animation does not play. showTyping applies to outgoing messages only. On an incoming message it has nothing to animate, because you never see the other person's input field.
The clip runs far longer than expected. Add up every typingDuration and delayBefore in the conversation. Three two-second bubbles and four one-second gaps is ten seconds before a single word is read.
Two characters feel like the same person. Give them different typingSpeed values, and vary whether their messages get a typing bubble at all. Uniform timing flattens characterisation faster than uniform vocabulary.
The short version
The typing indicator is not filler. Used carelessly it is dead air that costs you viewers. Used deliberately — a 2.5-second hold that cancels, a slow outgoing message that assembles itself in the input field, a rhythm break in the middle of an argument — it is the cheapest tension you can buy in a chat video, because it requires no dialogue at all. The viewer writes the missing message themselves, and whatever they imagine is better than anything you could have typed.
Frequently Asked Questions
Can MockClip show a typing indicator that never sends a message?
Yes. The iMessage template has a cancelTyping option on incoming messages. Set typingDuration to how long the dots should hold, tick cancelTyping, and the indicator appears, runs for that duration, then disappears without the message ever arriving. It is the only way to render the 'they were typing, then stopped' beat.
Which MockClip templates support the typing indicator?
The typing bubble driven by typingDuration is available on the iMessage, WhatsApp, and Instagram DM templates. The cancelled-typing option is currently specific to the iMessage template. The ChatGPT template has an input-field typing animation but no incoming typing bubble, because ChatGPT does not display one.
How long should the typing indicator run?
Between 1.5 and 3 seconds for a normal beat. Under a second reads as a glitch rather than a pause. Past four seconds a short-form viewer will scroll. For a cancelled-typing beat, longer holds work better because the whole point is the discomfort of waiting, so 2.5 to 3.5 seconds is a reasonable range.
What is the difference between typingDuration and showTyping?
They animate opposite sides of the conversation. typingDuration renders the three-dot bubble on an incoming message from the other person. showTyping animates your own text appearing character by character in the input field before it sends as an outgoing message. Incoming uses the bubble; outgoing uses the input field.
How fast does the outgoing typing animation run?
It is controlled by typingSpeed, measured in characters per second, and defaults to 15. Lowering it to around 10 or 11 reads as hesitant or careful; raising it above 20 reads as urgent. The value only affects messages you have marked as outgoing with showTyping.
Does the typing indicator export to MP4?
Yes. Everything visible in the preview renders into the exported MP4, including the dot animation, the hold, and the cancellation. Export settings and watermarking depend on your plan — see the pricing page for what each tier includes.
Related Articles
How to Make a Fake iMessage Conversation Video (2026 Guide)
Complete 2026 guide to creating realistic fake iMessage conversation videos for TikTok, Reels, and Shorts — typing bubbles, tapbacks, MP4 export, no install.
How to Animate iMessage Tapback Reactions in a Video
Create fake iMessage videos with heart, thumbs up, haha, and exclamation tapback reactions — animated with realistic timing and direction.
Which Chat Video Format Should You Use? Creator Guide
iMessage, WhatsApp, Instagram DM, Reddit or ChatGPT? Compare every MockClip template by what it actually renders, and pick the right one for your video.
WhatsApp Blue Tick Video: How to Animate Read Receipts
Animate WhatsApp read receipts as an MP4. Chain the sent, delivered, and blue read ticks with per-step timing and export the clip for Shorts and Reels.
Instagram DM Video: Animate Reactions, Typing, and Seen
Animate Instagram DM reactions, typing bubbles, and the Seen indicator as an MP4. Time each beat, land a heart with no reply, and export vertical.