Best Figma Dithering Plugins Compared: Which Preserves Detail

COMPARISONDESIGNER

Five Figma dithering options — the native shader plus four plugins — compared on algorithms, palette control, export, and maintenance status. Floyd-Steinberg…

01/ ARTICLE

What's the fastest way to dither an image in Figma?

Use Figma's own native Dither shader first. No install, no plugin approval queue, four algorithms already built in. Only reach for a plugin once you need something the native shader doesn't do — custom palette mapping, per-channel color separation, bulk export, or a stacked look like glitch or riso-style color. Most "which plugin" questions are really "do I need a plugin at all" questions, and for a designer trying to reproduce a look fast, an extra install is friction you don't always have to pay.

Here's what the native shader ships, which algorithm actually preserves the most detail and why, a fair table across four community plugins plus the native shader, and a verdict sorted by what you're trying to do.

Should you even install a plugin? Figma's native Dither shader

Figma's generated-shaders library now includes a first-party Dither effect, currently in open beta. Four selectable styles ship with it — Atkinson, Floyd-Steinberg, Bayer, and Blue Noise — plus Size (dot dimensions, from photo-fine to chunky-retro), Levels (shade reduction; higher retains more tonal detail), Brightness/Contrast, and a Mono toggle. That's the same core algorithm set every plugin on this list is built around. For free, as a native layer effect.

It's enough for a standard static pass: pick an algorithm, tune Levels and Size, done. It stops being enough once you need a custom color palette instead of the built-in mono/duotone handling, per-channel RGB processing for color-separation effects, bulk export across dozens of frames, or a stacked look — glitch, CRT scanlines, riso-style color — layered on top of the base dither. That's the actual line between "use what's built in" and "install one of the four below." Figma's own docs note generated shaders are still in beta with acknowledged performance issues, so if you're shipping production assets today, test it against your real file size before you commit to it.

The algorithms that actually preserve detail

Every plugin in this comparison runs one of three underlying approaches, and the approach matters more than the plugin wrapping it.

Floyd-Steinberg dithering is an error-diffusion algorithm that pushes each pixel's rounding error onto its unprocessed neighbors, which is why it holds fine detail better than fixed-pattern methods like Bayer. The error only propagates locally, so the output tracks the source image closely — it's the baseline you want when the whole point is preserving detail.

Atkinson, built for classic Macintosh graphics, diffuses only three-quarters of the quantization error instead of the full amount. Runs faster, keeps midtones clean. But you'll see blown-out highlights or crushed shadows at the extremes — the error that doesn't get diffused has to go somewhere, and it shows up at the tonal edges first.

Bayer (ordered) dithering skips error diffusion between pixels entirely. It thresholds each pixel against a fixed matrix pattern instead, which produces that distinctive cross-hatch look. Because neighboring pixels don't influence each other, it holds up better frame-to-frame in animation — no dithering "crawl" — though it doesn't adapt to arbitrary custom palettes as gracefully as an error-diffusion method does. Pick Floyd-Steinberg when fidelity to the source is the goal. Pick Bayer when you need predictable, print-stable patterning instead.

Plugin-by-plugin comparison

Four community plugins came up consistently here, on top of the native shader already covered. Some publish a clear algorithm list. Two don't, and we're not going to invent numbers to fill that gap.

DitherFX has the widest confirmed range: 34 algorithms total, 5 available free — Floyd-Steinberg, Bayer 2x2, Halftone, Random, and ASCII — alongside Black & White and Duotone color modes and PNG export straight to the canvas. The rest of the library sits behind a paid tier.

Dither it! processes everything client-side. Nothing uploads; images never leave the browser. It confirms Floyd-Steinberg, Bayer, Atkinson, and noise dithering, with adjustable pixel scale and multiple Bayer matrix sizes. It's also the only one of the four with a confirmed bulk-download feature for exporting several dithered images at once — useful if you're batch-processing a shoot rather than tweaking one hero image.

Dither (the open-source plugin behind the GitHub repo FigmaDither) implements Floyd-Steinberg with genuinely unusual control: it processes the red, green, and blue channels separately, producing color-separation effects none of the other plugins here offer, plus non-destructive toggling between the original and dithered image. The catch — the repository was archived in March 2025 and is now read-only. It still runs, but it isn't getting bug fixes or future Figma-API compatibility updates. Treat it as a feature-rich tool you're borrowing on borrowed time, not one to build a workflow around.

DitherLab and Officina Ditheris both position themselves as stylistic toolkits rather than pure fidelity tools — glitch, CRT looks, scanlines, film grain, and riso-style custom palettes layered on top of base dithering, with real-time preview. Worth a look if you're chasing a specific aesthetic rather than the most accurate possible dither. But neither plugin listing publishes an independently verifiable algorithm count, so we're comparing them on positioning here, not a numbers table we can't back up.

OptionConfirmed algorithmsPalette controlExportMaintenance status
Figma native Dither shaderAtkinson, Floyd-Steinberg, Bayer, Blue NoiseMono toggle onlyNative layer effectActively developed (beta)
DitherFX34 total incl. Floyd-Steinberg, Atkinson, Bayer, halftone, ASCII (5 free)B&W + Duotone free; more modes paidPNG to canvasActively listed
Dither it!Floyd-Steinberg, Bayer, Atkinson, noiseAdjustable pixel scale, Bayer matrix sizesBulk download, browser-localActively listed
Dither (open-source)Floyd-Steinberg, per-channel R/G/BColor-replacement fine-tuning, grayscaleNon-destructive original/dithered toggleArchived March 2025 — unmaintained
DitherLabNot independently confirmedCustom palettes claimedNot confirmedActively listed
Officina DitherisNot independently confirmedCustom palettes claimedNot confirmedActively listed

Which one should you actually pick?

Need a standard Floyd-Steinberg or Atkinson pass on one image? Start with Figma's native shader — it's already there. Want a free plugin with the broadest algorithm menu and don't mind a paywall past the basics? DitherFX's five free algorithms cover Floyd-Steinberg detail work out of the box. If privacy and batch export matter more than algorithm count, Dither it! is the one that confirms both. Need per-channel color separation specifically, and can live with a plugin that won't be updated again? The open-source Dither plugin does something the others don't — just don't build a production pipeline around a repo that's already archived. And if the job is a stacked aesthetic rather than raw fidelity, DitherLab and Officina Ditheris are aimed at exactly that, though treat their algorithm claims as marketing copy rather than a verified spec sheet.

For pure detail preservation, none of this is close: the algorithm choice does more work than the plugin choice. A Floyd-Steinberg implementation in a free plugin will out-preserve an Atkinson or Bayer pass in a premium one, every time.

Frequently Asked Questions

Which Figma dithering plugin preserves the most detail?

Any tool implementing Floyd-Steinberg error diffusion preserves the most fine detail, because it diffuses quantization error only to immediate neighboring pixels and tracks the source image closely. DitherFX, Dither it!, and the open-source Dither plugin all ship a Floyd-Steinberg mode; DitherLab and Officina Ditheris also list classic algorithms, but neither publishes an independently verifiable algorithm count.

Do I need a plugin, or does Figma already do this?

As of Figma's 2026 generated-shaders beta, Figma ships a native Dither effect with Atkinson, Floyd-Steinberg, Bayer, and Blue Noise styles, plus Size, Levels, Brightness/Contrast, and Mono controls, at no cost and no install. It covers the core algorithm set most designers need. Reach for a plugin when you need custom palette mapping, per-channel processing, bulk export, or stacked looks like glitch and CRT that the native shader doesn't offer.

What's the difference between Floyd-Steinberg, Atkinson, and Bayer dithering?

Floyd-Steinberg diffuses all of a pixel's quantization error to its neighbors, producing the closest match to the source image. Atkinson, from classic Macintosh graphics, diffuses only three-quarters of the error, running faster and holding midtones well but sometimes blowing out very light or dark areas. Bayer (ordered) dithering thresholds each pixel against a fixed matrix instead of diffusing error at all, giving a distinctive cross-hatch pattern that holds up better across animation frames but adapts less gracefully to custom palettes.

Is it safe to use an unmaintained Figma dithering plugin?

It will keep working today, but treat it as a risk for anything you depend on long-term. The open-source Dither plugin on GitHub (FigmaDither) was archived in March 2025 and is now read-only, meaning no bug fixes or Figma-API compatibility updates going forward. It still runs and implements a solid per-channel Floyd-Steinberg mode, but pick an actively maintained plugin if you need guaranteed compatibility with future Figma releases.

Conclusion

For pure detail preservation, the algorithm matters more than the plugin: Floyd-Steinberg beats Atkinson beats Bayer on static-image fidelity, in that order, and several of the plugins above are running the same handful of algorithms under different UIs. Start with what's already in Figma. Add a plugin only once you need palette control, batch export, or a stacked look the native shader doesn't cover.

Want to see Floyd-Steinberg and Atkinson side by side on your own source before installing anything? Try both live in kott — same algorithms, real-time, no file upload required.

02/ OUT

Try it in the studio

Every setting described above is a real control. Open your own image and sweep it.

All journal entries
Best Figma Dithering Plugins Compared (2026)