Twitch emotes must be square PNG or GIF files at 112×112, 56×56 and 28×28 pixels, each under 1 MB. You can upload all three sizes yourself, or one large square image and let Twitch scale it down. Sub badges use 72, 36 and 18 pixels and must stay under 25 KB.
All Twitch image sizes at a glance
These are the numbers Twitch asks for when you upload each asset in the Creator Dashboard. Everything except the banner, offline screen and panels must be square.
| Asset | Size (px) | Format | Max file size |
|---|---|---|---|
| Emote | 112, 56, 28 (square) | PNG or GIF | 1 MB |
| Animated emote | 112, 56, 28 (square) | GIF | 1 MB |
| Sub / loyalty badge | 72, 36, 18 (square) | PNG | 25 KB |
| Bit badge | 72, 36, 18 (square) | PNG | 25 KB |
| Channel points icon | 112, 56, 28 (square) | PNG | Not listed |
| Profile picture | at least 256×256 | JPG, PNG or GIF | 10 MB |
| Profile banner | 1200×480 recommended | JPG, PNG or GIF | 10 MB |
| Offline screen | 1920×1080 | JPG, PNG or GIF | 10 MB |
| Panel image | 320 wide | JPG, PNG or GIF | Not listed |
Twitch emote size
A Twitch emote is one image in three square sizes: 112×112, 56×56 and 28×28 pixels. Twitch picks the right one for the viewer's screen, so all three should look like the same emote. Use a transparent background so the emote sits cleanly on both dark and light chat themes.
| Size | Where viewers see it |
|---|---|
| 28×28 | Chat on standard screens. This is the size most viewers actually see. |
| 56×56 | Chat on high-density (retina) screens and zoomed-in browsers. |
| 112×112 | Very sharp screens and larger previews. |
Simple upload vs advanced upload
Simple upload takes one square image and Twitch generates the three sizes. It is the fastest route, but the scaling is plain: thin lines and small details tend to go soft at 28 px. Advanced upload lets you supply 112, 56 and 28 px files yourself, which is how you keep the small size crisp.
If your artwork is already finished, the free Twitch emote resizer makes all three sizes in your browser with light sharpening, keeps the transparency and prints the file size under each one, so you can see it is under 1 MB before you upload. Nothing leaves your device.
Animated emotes
Animated emotes use the same three square sizes, 112, 56 and 28 pixels, but must be GIF files, still under 1 MB each. Keep the motion simple and the loop short: a bounce, a shake or a blink reads far better in a busy chat than a detailed scene.
Twitch can also turn a static emote into an animated one with built-in animation templates such as shake and spin. That is the easiest option if you only have a PNG. Keep the 1 MB limit in mind for custom GIFs, since every extra frame adds weight.
Sub badges and bit badges
Subscriber (loyalty) badges are 72×72, 36×36 and 18×18 pixels, PNG only, and each file has to be under 25 KB. That file limit is much tighter than for emotes, so flat colours and simple shapes help.
| Badge | Sizes (px) | Format | Max file size |
|---|---|---|---|
| Subscriber / loyalty badge | 72, 36, 18 | PNG | 25 KB |
| Bit badge | 72, 36, 18 | PNG | 25 KB |
The 18 px badge sits next to the viewer's name in chat, so it needs one bold shape: a crown, a paw, a number. Use the free Twitch badge resizer to cut an image to 72, 36 and 18 px, or design a matching set with the sub badge maker.
Channel points icons
Custom channel points icons and reward icons use the emote sizes: 112×112, 56×56 and 28×28 pixels, PNG with a transparent background. The same design rules apply, because the icon shows up next to the points balance at a very small size.
Profile picture, banner, offline screen and panels
The profile picture needs at least 256×256 px, the banner 1200×480 px, the offline screen 1920×1080 px, and panels 320 px wide. Of these four, only the profile picture is square.
| Asset | Size | Max file size | Tip |
|---|---|---|---|
| Profile picture | at least 256×256 px | 10 MB | Shown as a circle, so keep the face centred. |
| Profile banner | 1200×480 px recommended | 10 MB | Keep text in the middle; the edges get cropped. |
| Offline screen | 1920×1080 px | 10 MB | Shown in the video player when you are offline. |
| Panels | 320 px wide | Not listed | Height is up to you; keep a set the same height. |
Need a banner that matches your emotes? The Twitch banner maker draws one at 1200×480 in the same style.
Why is my emote blurry?
A blurry emote is almost always a design that has too much detail for 28 pixels, or a big image that was scaled down in one step. Twitch's simple upload does exactly that. These fixes help most:
- Thicker outlines. A dark outline of 3–4 px at 112 px keeps the shape readable when it shrinks to a quarter of that.
- Crop to the head or upper body. A full-body character becomes a smudge at 28 px. Faces carry the emotion.
- Cut small text. One short word like "GG" or "HI" can work. Anything longer will not.
- Fill the canvas. Leave only a few pixels of empty space around the character, not a wide margin.
- Resize each size separately. Make the 56 and 28 px versions from the original, with light sharpening, instead of letting Twitch do it.
- Check both chat themes. White or very light characters vanish on light mode without an outline.
Our 28 px readability test
On October 31, 2026 we generated a batch of test emotes with the AI pipeline behind Twitch Emote Maker: six styles from text prompts, plus emotes from selfies and a pet photo. We viewed every one at 112, 56 and 28 px on both a dark and a light chat background.
- Emotes with thick outlines, a big head and a centred subject stayed recognisable at 28 px in every style we tried.
- A full-body character (a pixel knight) and an emote with small text (a bear holding a "GG" sign) did not read at 28 px.
- A white character (a ghost) only stood out on the light background because of its outline.
That is why our generator frames emotes as heads or half-bodies by default and asks for bold outlines. It is also why every result is shown in a dark and a light mock chat at 28 px before you download. Below, a Cute style frog and a Bold Lines style frog are shown at 112, 56 and 28 px, their real sizes.





