Skip to content

Grab the color palette from an image using just Javascript. Works in the browser and in Node.

License

Notifications You must be signed in to change notification settings

lokesh/color-thief

Folders and files

NameName
Last commit message
Last commit date

Latest commit

292d5c1 · Oct 9, 2024
Aug 4, 2019
Feb 28, 2023
Oct 9, 2024
Jul 22, 2019
Oct 9, 2024
Mar 1, 2023
Apr 28, 2019
May 27, 2019
Jun 26, 2020
Oct 9, 2024
Jun 30, 2015
Oct 9, 2024
Aug 4, 2019
Feb 28, 2023
Jul 6, 2020
Oct 9, 2024
Oct 9, 2024

Repository files navigation

Color Thief

Grab the color palette from an image using just Javascript.Works in the browser and in Node.

View the demo page for examples, API docs, and more.


Contributing

Project structure

  • build/ - Simple script that copies and renames files into the /dist folder.
  • cypress/ - Browsers tests.
  • dist/ - Generated distribution files created by microbundle package and a couple of files copied via build script.
  • examples/ - CSS, JS, and Images for the index.html example page.
  • src/color-thief-node.js - Source for the Node (commonjs) compatible version of the script.
  • src/color-thief.js - Source for the browser (ES6, AMD, Global var) compatible version of the script.
  • src/core.js - Functions shared between the node and browser versions of the script.
  • test/ - Node integration tests. Uses Chai.
  • index.html - Example page.

Running tests

There are two sets of tests:

  1. Browser tests run with Cypress
  2. Node tests run with Karma and Mocha

To run both the browser and Node tests:

  • npm run dev to start local server.
  • npm run test then run tests in a separate process

To run just the browser tests with the Cypress UI:

  • npm run dev to start local server
  • npm run test:browser or
  • npm run cypress to view the Cypress UI

To run just the Node tests:

  • npm run test:node

Adding tests

  • Update cypress/test-pages/index.html as needed or create a new test page if you need new examples.
  • Add new tests in cypress/integration/apis_spec.js

Making a new release

  • Merge dev into master
  • Pull down master
  • Update version number in src/color-thief.js and package.json
  • Delete package-lock.json and then install deps
  • Run npm run build
  • Confirm tests pass npm run dev and npm run test
  • Commit and push built files back up to master
  • Create a new Github release along with tag. Naming convention for both v2.8.1
  • npm publish