npm colorthief 2.7.0
v.2.7.0

15 hours ago

New features:

  • Configurable pixel filtering — New options: ignoreWhite, whiteThreshold, alphaThreshold, and minSaturation let callers control which pixels are
    included in color extraction
  • Options object API — getColor and getPalette now accept an options object (e.g., { colorCount: 5, quality: 10, ignoreWhite: false }) in addition to the
    existing positional arguments
  • New browser input types — getPalette/getColor now accept HTMLCanvasElement, ImageData, and ImageBitmap in addition to HTMLImageElement
  • TypeScript type definitions — Added .d.ts files for both browser (color-thief.d.ts) and Node (color-thief-node.d.ts)

Bug fixes & robustness:

  • Fallback color for edge cases — New computeFallbackColor() averages all pixels when the quantizer can't produce a palette (e.g., solid-color or
    all-white images), preventing null returns
  • Progressive filter relaxation — If filtering removes all pixels, filters are progressively relaxed (first allowing white, then transparent) before
    falling back
  • Fixed variable scope leak — i in getImageData changed from implicit global to let
  • Input validation — Browser version now throws descriptive errors for unloaded images, missing sources, and CORS-tainted canvases
  • Null-safe palette access — All call sites now check palette for null before accessing palette[0]

Chores & tooling:

  • Removed file-type dependency from Node version (unused)
  • Removed dist/ from git tracking (kept in npm package via .npmignore)
  • Added GitHub Actions CI workflow
  • Replaced CanvasImage class with a simpler getPixelData() function
  • Updated README to reflect current project setup
  • Version bump to 2.7.0 across package.json and source files

Don't miss a new colorthief release

NewReleases is sending notifications on new releases.