Fake Text Message Generator

Type a conversation, pick a look (dark, light or black background), and download a screenshot. Multi-turn threads, timestamps and read receipts included.

  • Safe top62 pt
  • Logical frame402 × 874 pt
  • Body type17 / 22 pt
  • Safe bottom34 pt
  • Canvas1206 × 2622 px
  • Bubble radius18 pt

Measured on iPhone 17 Pro simulator, iOS 26.4 (2026-10-22)Grade A

Theme
iOS 17–18 draw the Dynamic Island; iOS 14–16 use the shorter notch-era status bar.
Messages

One message per line. Prefix a line with me: to send it from your side. Up to 50 lines, 2,000 characters each.

Free download, watermarked

The free tier gives you a downloadable PNG with a small “Scenemock” watermark in the corner. No signup, no upload, no queue. When you need the watermark gone, a 2× export or a batch of images, see pricing.

Fake Text Message Generator mockups render entirely in your browser: the text you type is never sent to a server, never stored and never attached to an account.

Light
Dark
Black background

How to make one in three steps

  1. Write the thread

    One message per line. Start a line with “me:” to send it from your side, leave it off to have the other person speak. Up to 50 lines and 2,000 characters per message.

  2. Pick the look

    Choose light, dark or black background and the OS version. Dark is the default: bubble colours, status-bar ink and wallpaper dim all shift together instead of just inverting.

  3. Download

    Press “Download PNG (free)”. The file is generated in the tab you are looking at — nothing is uploaded, queued or emailed.

Appearance system: light, dark and black background

Most chat mockup tools treat “dark mode” as a CSS filter. A phone does not: the status bar flips its ink, the outgoing bubble keeps its accent colour but loses a little opacity, the incoming bubble switches to a warm graphite, and the wallpaper is multiplied down instead of being covered with white. Those four things happen together, and they are what makes a screenshot look like it came off a device rather than out of a web page.

Three appearances, not two

Light is the daytime look: near-white page, pale grey incoming bubbles, saturated blue outgoing bubbles, black status-bar ink. Dark keeps the blue but moves everything else toward black; the page background becomes #000000, incoming bubbles become #26252A and text becomes#FFFFFF. Black background is a third, separate look — it is the one people choose for meme images and story posts — where the wallpaper is dimmed further still and the interface sits on pure black. It is not an alias for dark mode: the bubble groups are the same colours, but the page behind them is #000000 with a dim value of 0.6 versus dark's0.35.

Wallpaper dimming

When a wallpaper is present, modern chat apps do not simply lower its brightness; they multiply a dark layer over it so highlights stay distinct. Our renderer stores this as a singlewallpaperDim value per theme. Light uses 0, dark uses0.35 and black uses 0.6. Because the multiplication is applied before bubbles are drawn, text and bubbles keep their own contrast while the backdrop recedes — which is exactly why screenshots taken in dark mode look flat but readable.

Bubble opacity in the dark

Dark-mode bubbles are slightly translucent. On a device this lets the wallpaper texture show through at a low level and stops large bubble groups from looking like stickers. We follow the same rule: bubble alpha is 1 in light, 0.95 in dark and0.9 on black, so a long thread of outgoing messages still reads as one column.

Status-bar ink

The status bar is the fastest tell. If the time and battery icons stay black on a dark background, the image is obviously fake. Our themes flip the ink from #000000 to#FFFFFF the moment the background goes dark, and the header uses its own background (rgba(255,255,255,0.92) in light, rgba(28,28,30,0.92) in dark) with a hairline border so the conversation below still separates.

Timestamps and receipts

In the platform this layout reproduces, timestamps sit below the bubble and read receipts are written out as a word rather than drawn as ticks. Both are drawn with the theme's muted ink, so they never compete with message text. The generic generator uses the same geometry for all three appearances; only the colours change.

What the generator does not change

Switching themes never changes the conversation. Line breaks, bubble widths, avatar size and the position of the header stay put, which is what lets you export the same thread three times and place the images side by side.

Full token reference

The table below is generated from the same data the renderer reads, so the numbers you see here are the numbers used to draw your image.

All four surfaces, side by side
ParameteriMessage (iOS 18)WhatsApp-styleMessenger-styleGoogle Messages (Android)
Canvas (device px @3×)1206 × 26221080 × 24001080 × 24001080 × 2400
Logical size (pt)402 × 874360 × 800360 × 800360 × 800
Safe top (pt)62323224
Status bar height (pt)62242424
Status barios-island · signal, wifi, batteryandroid · signal, wifi, batteryramless · signal, wifi, batteryandroid · dual-sim, signal, wifi, battery
Island / cutout (pt)125.3 × 36.7 @ top 14———
CalibrationA — iPhone 17 Pro simulator, iOS 26.4 (2026-10-22)B — document values, pending device passB — document values, pending device passB — document values, pending device pass
Header height (pt)44565664
Bubble max width72%75%70%75%
Bubble padding x / y (pt)16 / 1018 / 1218 / 1220 / 12
Bubble radius (pt)187.51820
Bubble tailroundpointroundround
Text size / line height (pt)17 / 2214.2 / 1915 / 2016 / 21
Receiptsword: Sent / Delivered / Readdouble ticknoneword: Sending / Sent / Delivered / Read
Composer placeholderiMessageMessageAaText message
Timestamp positionbelowinsideinsideinside
Outgoing / incoming bubbles (light)#0B93F6 / #E9E9EB#DCF8C6 / #FFFFFF#0084FF / #F0F0F0#D3E3FD / #F1F3F4
Outgoing / incoming bubbles (dark)#0B93F6 / #26252A#005C4B / #202C33#0084FF / #3A3B3C#3D4F6B / #2D2F31
Wallpaper dim (light / dark / black)0 / 0.35 / 0.60 / 0.35 / 0.60 / 0.35 / 0.60 / 0.35 / 0.6
Bubble alpha (light / dark / black)1 / 0.95 / 0.91 / 0.95 / 0.91 / 0.95 / 0.91 / 0.95 / 0.9

Canvas sizes are device pixels at 3×; the iMessage canvas is 1206 × 2622, i.e. 402 × 874 points on the calibrated iPhone 17 Pro (iOS 26.4). All other measurements are device-independent points. The 390 × 844 / 47 pt layout from the first spec draft is kept as an uncalibrated variant and is not the default.

Starting values, pending device calibration: TODO(calibrate).

Appearance update log

Changes to the appearance system and the data behind the spec table.

  • Starting values for the four phone canvases published.
  • Light, dark and black appearances defined for the iMessage layout.
  • Wallpaper dim and bubble alpha are stored per theme instead of as a filter.

Frequently asked questions

Does it support dark mode?

Yes. Dark is the default appearance, and dark mode changes the bubble colours, bubble opacity, status-bar ink and wallpaper dimming separately for each platform rather than simply inverting the light palette.

Do you store my conversation?

No. The thread is rendered locally on a canvas in your browser; the text never leaves the tab, and we have no account system that could hold it.

Is it free?

Yes. Watermarked PNG downloads are free and unlimited. Removing the watermark, 2× exports and batch exports are part of the paid plans.

Can I change bubble colours?

Not yet. The generator reproduces each platform's own palette so the result matches a device screenshot; an accent-colour option for Android's Material theme is planned.

What file do I get?

A PNG at the device's logical resolution (402 × 874 for the calibrated iPhone 17 Pro layout), with a small Scenemock watermark in the corner.