8 min read · updated 2026-11-05

Why emotes live or die at 28 pixels

Downscaling to 28px is an averaging process, not a shrink. Four properties survive it — silhouette, contrast against both chat themes, hard edges and framing — and everything else is decoration.

An emote is not really an image. It is a 28-pixel-wide piece of typography that has to read inside a sentence, repeatedly, at speed.

This guide is about the specific properties that survive the downscale, and the ones that always fail — so you can stop guessing which details matter.

What downscaling actually does

Reducing a 1024px image to 28px averages roughly 1300 source pixels into each output pixel. Anything smaller than that averaging window does not shrink — it blends into its neighbours.

A 2px line inside a 1024px artwork becomes a fraction of one output pixel. A soft gradient over 40 pixels becomes a single flat value. Fine hatching becomes a uniform mid-tone. None of these are "preserved at lower quality"; they are arithmetically destroyed.

The four things that survive

  • Silhouette — one contiguous shape. If the emote breaks into disconnected pieces, each piece gets a fraction of the already-tiny pixel budget and the whole thing turns to noise.
  • Contrast against the chat background. Twitch chat is #18181B in dark mode and near-white in light mode. An emote must separate from both; a mid-luminance subject with a rim in a different value is the standard solution.
  • Hard edges. Flat fills and heavy outlines downsample to clean stair-steps. Soft shading and anti-aliased gradients become semi-transparent mush, because almost every edge pixel ends up partially transparent.
  • Framing. A subject that fills a healthy share of the square has more pixels to spend. One that floats small in the middle reads as a speck.

The four things that never survive

  • Text. Five letters across 28 pixels is about five pixels per glyph. Two large characters is the practical maximum — "GG", not "nice one".
  • Thin linework. Hair strands, whiskers, hatching, fine outlines: all of it averages away.
  • Gradients and soft shading. They become flat mid-tones, which often reduce contrast rather than adding depth.
  • Small emotional detail. Individual teeth, eyelashes, tiny tears. The expression has to live in the eyes and mouth at a scale that is far larger than looks correct at full resolution.

Why the eyes and mouth decide everything

Chibi proportions are not a fashion. A large head with oversized eyes allocates the most pixels to the parts that carry meaning. On a 28px canvas a face might get 20 pixels across, and the eyes have to be a meaningful share of that to register as an expression at all.

This is also why so much good emote art oversizes features relative to "correct" anatomy: at 112px it looks exaggerated, and at 28px it looks right.

Checking yours

The reliable test is not a squint, it is the actual downscale. Our checker resamples to 28×28 with a premultiplied area filter, then measures silhouette coherence, contrast against both chat themes, edge softness, canvas fill and border bleed — and returns a score with specific fixes.

Questions

Is 28px really what viewers see?

In normal chat, yes. The 112px file shows in the emote picker and on hover, and 56px appears in some contexts, but by far the most impressions are at 28px.

Should I design at 28px directly?

Design the concept for 28px, but draw at 512 or 1024 and export down. Drawing at 28px gives you no control over the resample and no usable master.

Does a thick outline always help?

It helps when it contrasts with both chat backgrounds. A black outline on a dark subject vanishes in dark chat; a pale outline on a pale subject vanishes in light chat. A mid-tone rim that differs from the fill works in both.

Make a set that reads at 28px

One character, every reaction, each scored before you download.

Build a set →