ROLE  Concept, Design, Development

DURATION  November – December 2016

[unex_ce_button id="content_zx0gmuzbl,column_content_2259popfn" button_text_color="#ffffff" button_font="semibold" button_font_size="15px" button_width="auto" button_alignment="center" button_text_spacing="2px" button_bg_color="#70bf41" button_padding="15px 60px 15px 60px" button_border_width="1px" button_border_color="#ffffff" button_border_radius="1px" button_text_hover_color="#70bf41" button_text_spacing_hover="2px" button_bg_hover_color="#ffffff" button_border_hover_color="#ffffff" button_link="" button_link_type="url" button_link_target="_blank" has_container="" in_column="1"]LIVE WEBSITE[/ce_button]

A random colour palette generator based on gorgeous imagery.

As a designer, there is always a need to quickly put together inspiration boards, moodboards, styleboards, and the like.

There are many designer toolkits available today, for example persona generators, but it would be useful to have a tool that not only pulls colours from imagery, but offers up relevant colour palettes and project examples based on colour as well.

01 Understanding

Create a useful and visually-rich HTML5 application that combines two or more Web services (XML- or JSON-based), and showcase your creativity in design, the quality of the experience you create, the extent to which you go beyond what we do in class, and the soundness of your programming.

(Adapted from

02 Design

I wanted the tool to be clean and design-forward, since its function is design in characteristics. The neutral green is an understated accent that is not too loud nor vibrant.

The card-based content design complements the large hero image, and the large hero image has a drop shadow to give the application more depth in its aesthetic. Overall, the design is minimalistic and straightforward.

03 Solution

I had to make the choice to abandon Unsplash due to issues with setting up and accessing its API, switching to 500px. I had a Node.js server in place to implement proxies necessary to get data from COLOURlovers and 500px for processing (to get around CORS errors).

Although I had help for the average colour function, I made sure to adapt it for the needs of my project wherever possible.

Keyword Search

Perform a simple keyword search for imagery relevant to your mood.

Local File Upload

In the case that you already have a moodboard, or the keyword search isn't producing the results you want, you can upload your own imagery.


Cycle through search results for more palette and project options.

Colour Palettes & Projects

Explore colour palettes and Behance projects based on the average colour of your image.

04 Fin

If I had more time to work on this project, I would clean up the code and make sure that it’s consistent - currently, it incorporates both regular javascript and jquery (e.g. querySelector as well as $()). I would also change the processing such that the app wouldn’t take the average colour, but rather, the dominant colour - that would make the colour palettes more accurate.


Loading Images into Canvas
Answered by apsillers and Mathieu Rodic

Reading files in Javascript using the File APIs
Article by Eric Bidelman

Average Colour from an Image
From a stackoverflow question, answered by James Padolsey and Bob van Luijt