Custom emoji are the smallest images most people ever make, and small images follow different rules: what works is silhouette and colour, not detail.
The Limits
Slack
- Recommended: 128 × 128 px square.
- Maximum file size: 128 KB.
- Formats: PNG, JPG, GIF (animated allowed).
- Displayed at roughly 22 px inline, larger in the picker and in emoji-only messages.
Discord
- Recommended: 128 × 128 px.
- Maximum file size: 256 KB for emoji, larger for stickers.
- Formats: PNG, JPG, GIF; stickers also accept APNG and Lottie.
- Displayed around 32–48 px inline.
Both platforms downscale automatically, so uploading exactly 128 × 128 avoids letting their scaler make the decisions for you.
Designing for 22 Pixels
- One idea per emoji. A face, an object, a single word — never a scene.
- Silhouette first. If the shape isn't recognizable in solid black, it won't be recognizable in colour at 22 px.
- High contrast, few colours. Three or four flat colours read far better than a photograph or a gradient.
- Thick lines. Any stroke thinner than ~4 px at 128 × 128 disappears entirely when scaled down.
- Avoid text, or use at most 2–4 very bold characters. Words become an unreadable smudge.
- Fill the canvas. Small margins waste precious pixels; leave only a couple of pixels of padding.
Transparency and Themes
Use a transparent PNG background. Chat clients run in light and dark themes, and a white-background emoji shows as a glaring white square in dark mode. Also check that your artwork itself works on both: a black icon on transparent disappears in dark mode. Adding a subtle light outline, or using mid-tone colours, keeps it visible in both themes.
Animated Emoji
- Keep GIFs short (under ~2 seconds) and looping smoothly.
- Few frames, low colour count — the file size limit is strict and animation multiplies weight fast.
- Avoid fast flashing, which is both unpleasant and an accessibility problem.
- Animation should convey the idea in the first frame too; many surfaces show only a static preview.
Practical Export Workflow
Design at a larger size (512 px) for comfort, then downscale to 128 px and inspect at actual size before uploading — a design that looks great at 512 px very often turns to mush at 22 px. If it does, simplify rather than sharpen: remove elements, thicken strokes and increase contrast. Then compress until it fits the limit, using PNG for flat art and GIF only when animation is needed.