Dithering effects for every layer of the web.
A small toolkit of packages — pick the one that fits where you want the work to happen: browser, server, or algorithm.
pnpm add @ditherkit/react@ditherkit/next · @ditherkit/coreThree packages, one toolkit.
Pure functions for Floyd-Steinberg, Atkinson, and threshold dithering, plus color and image utilities. No DOM, no framework. Use it anywhere JavaScript runs.
A <DitheredImage /> component that processes images in a Web Worker so the UI stays responsive. Built for real-time parameter tweaking.
A <DitheredImageSSR /> component plus a one-line route handler. Renders dithered images server-side with Sharp, caches with ISR, ships through next/image.
Why a toolkit?
Each package has a narrow, opinionated job. Client-side dependencies (Web Workers) and server-side dependencies (Sharp) shouldn't be forced on each other, and @ditherkit/core stays portable enough to run in a build script, a Vue app, or a CLI. How it fits together →