SPEC SHEET

Slack emoji size

128×128 pixels, under 128KB — a tighter cap than Discord's 256KB emoji limit. What happens if your image isn't square, what it looks like in a real Slack message, and a free resizer already set to fit.

Updated July 20265 min read
The short version

A Slack custom emoji is 128×128 pixels, square, under 128KB— a tighter file cap than Discord's 256KB limit for the exact same kind of small square file. Upload it as a PNG, JPG or GIF; WebP isn't accepted here.

Slack also stretches a non-square image to fill that square rather than cropping it — a real distortion, and the single most common thing that makes a Slack emoji look wrong.

A Slack custom emoji at 128×128 pixels

128px

square, the whole spec

128KB

max file size

tighter than Discord's 256KB

Skip straight to it

Get the 128px file, already under 128KB.

Free resizer, already set to fit Slack's cap. No account, nothing uploaded to a server. The same tool also covers Discord and Twitch sizes — Slack is one preset among a few, not a separate product.

open the resizer →
The specs

128×128, under 128KB

One size, one file cap — and the cap is the part that catches people who've made a Discord emoji before and expect the same amount of room.

128px
square
Slack's own recommended upload size
128KB
max file size
Tighter than Discord's 256KB emoji cap
No WebP
or SVG
JPG, PNG and GIF only
Emoji file spec
RuleValueNotes
Shape128 × 128 px, squareSlack's own recommended upload size
Max file size128KBTighter than Discord's 256KB cap for the same kind of file
Static formatsPNG, JPGPNG keeps a transparent background — JPG doesn't
Animated formatGIFUp to 50 frames, same 128KB cap
Not acceptedWebP, SVG, AVIF, APNGEasy to assume WebP works — Slack doesn't take it here
Tighter than the Discord cap
An emoji this size on Discord gets up to 256KB. Slack's limit is half that — 128KB — and it's enforced the same blunt way: the upload is rejected outright, not compressed down for you. A design that just cleared Discord's cap can still be too heavy for Slack's.
The part most pages skip

Square only — Slack doesn't crop for you

Discord and Twitch both force a square crop before they'll take your upload. Slack doesn't crop a rectangular image at all — it stretches it to fit, which is a real distortion, not a resize.

The emoji uploaded as a perfect square, shown exactly as drawn

uploaded square

shows exactly as drawn

The same file forced into a wide rectangle, visibly stretched

uploaded wide

same file — Slack stretches it to fit, not crops it

  • Crop to a perfect square before you upload, even if that means cropping tighter than you'd like
  • Preview the file at actual size before uploading — 128px is smaller than most editors show by default
  • Keep a transparent background if the emoji isn't meant to be a solid-colour square
  • Upload a rectangular screenshot or logo assuming Slack will crop it for you — it stretches instead
  • Assume a slightly-off square 'rounds' cleanly — a 130×110px file gets visibly squashed
  • Save it as WebP to save space — Slack doesn't accept that format for a custom emoji at all
Show, don't just spec

What it actually looks like inside Slack

The number that matters is what a coworker actually sees — small, inline in a message, and even smaller sitting on a reaction. Here's the same generated file doing both.

#general18 members
P
priya.d9:41 AM
brand kit's live, check #design:shipped: emoji, inline in a message
M
marcus_ops9:44 AM
deploy's broken again, looking now
:this-is-fine:6+
J
jordan.h9:52 AM
fixed, redeployed:lgtm: emoji, inline in a message
:done:3+

Unlike Discord, which blows an emoji-only message up to a bigger "jumbo" size, Slack keeps a custom emoji the same small size everywhere it shows up — inline in a sentence, sitting alone, or riding on a reaction. There's no bigger stage to design for; whatever reads clearly at that one small size is the whole job.

Moving emoji

Animated Slack emoji: still 128×128, still a GIF

Same square, same 128KB ceiling — the one limit that's actually unique to an animated emoji is how many frames it's allowed.

Animated emoji spec
RuleValue
Size128 × 128 px — identical to a static emoji
FormatGIF
Max frames50
Max file size128KB, same hard cap as a static emoji
Requirement to addNone beyond normal upload permission — works on the free plan too

That last row is the opposite of how Discord handles some of its own animated assets. An animated Discord avatar needs Nitro. An animated Slack emoji doesn't sit behind any paid plan — the same free workspace that has custom emoji at all can have animated ones.

Before you upload

What actually goes wrong

The pixel count is rarely the problem. The crop, the file cap, and the format account for almost everything else.

  • Export at exactly 128×128, even if the source art started much bigger
  • Check the actual file size before uploading, not just the pixel dimensions
  • Use PNG when the design needs a transparent background — JPG can't keep one
  • Ask whoever manages your workspace first if you're not sure you have permission to add one
  • Assume an animated GIF gets a looser file cap — it's the same 128KB either way
  • Upload a rectangle and expect a crop — Slack stretches it instead
  • Save it as WebP — Slack doesn't take that format for a custom emoji at all
  • Judge it only at full size in an image editor, never at the size it'll actually show
Already have the art

Resize it free, right now

Crop to a perfect 128×128 square — no stretching — and download a file that already clears Slack's 128KB cap.

Drop in an image, download a 128px file already under Slack's cap.

The same free tool covers Discord and Twitch sizes too — pick Slack, get the correct square back, no stretching.

open the free resizer →
Straight answers

Questions people actually ask

128×128 pixels, square, saved under 128KB. That's Slack's own recommended size — there isn't a separate minimum and a separate 'looks better' number the way Discord's avatar has one. One size covers the whole spec.

Keep going

One emoji sized.
Want more from the same picture?

On Air Kit turns one photo or description into a matching set of reaction images. Slack, Discord and Twitch all read the same 128px square, so one set covers all three without redoing the work per platform.