Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/trevorblades/color-loader

🎨 A webpack loader that extracts the color palette of an image
https://github.com/trevorblades/color-loader

color color-palette image webpack webpack-loader

Last synced: 3 months ago
JSON representation

🎨 A webpack loader that extracts the color palette of an image

Awesome Lists containing this project

README

        

# Color Loader

[![Build Status](https://travis-ci.com/trevorblades/color-loader.svg?branch=master)](https://travis-ci.com/trevorblades/color-loader)

A webpack loader that extracts the color palette of an image

## Installation

```shell
$ npm install --save-dev color-loader file-loader
```

This loader depends on [`file-loader`](https://github.com/webpack-contrib/file-loader), so be sure to install that too if you don't have it already.

## Usage

This loader supports JPEG, PNG, GIF, and SVG files and is designed to be a drop-in replacement for `file-loader`, in case you're already using that. The loader will output the path to the provided image file, along with information about the colors in the image.

```js
import image, {color, colors} from 'color-loader!./path/to/image.jpg';
```

- `image` is the image path generated by the file loader
- `color` is the most dominant color in the image
- `colors` is an array of the dominant colors in the image

You can use it in your webpack configuration, too! This means that all images that you `import` or `require` will always return the colors extracted from the image.

```js
{
// ...your awesome webpack config options
module: {
rules: [
{
test: /\.(jpg|png|gif|svg)$/,
use: 'color-loader'
}
]
}
}
```

## Options

You can pass along any options you would normally pass to [`file-loader`](https://github.com/webpack-contrib/file-loader).

## Example

This image:

![example image](https://raw.githubusercontent.com/trevorblades/color-loader/master/example.png)

Will result in these colors:
- ![#3a4f25](https://placehold.it/24/3a4f25/000000?text=+) #3a4f25
- ![#b37a5d](https://placehold.it/24/b37a5d/000000?text=+) #b37a5d
- ![#78993b](https://placehold.it/24/78993b/000000?text=+) #78993b
- ![#839795](https://placehold.it/24/839795/000000?text=+) #839795
- ![#8c472f](https://placehold.it/24/8c472f/000000?text=+) #8c472f

You could use it in a React component like this:

```js
import image, {color} from './example.png';

const Component = () => (


   

They ate the PokΓ©mon...



);
```

And it might look something like this (results may vary):

![example gif](https://raw.githubusercontent.com/trevorblades/color-loader/master/example.gif)