Demo and test area
This demo section shows how ColorPicker's and Colors' APIs work and how they communicate to the outer world. The initial setup: ColorPicker UI (user interface) to the left as a standalone instance and test patches to the right (also interactive) connected to a separate instance of Colors. Use the drop down menu to connect the patches with its own Colors instance or to sync with the instance of ColorPicker.
Some hints: resize colorPicker to see 4 different possible sizes; use keybord, arrow/page keys our mouse in input fields to manipulate values; try all buttons on right side of colorPicker to explore functionalities. (Better description will follow...)
Change drop down to connect test patches to Colors instance or to ColorPicker:
Calling the colorPicker on all inputs with the className 'color':
ColorPicker is very convenient and intuitive to use due to
its 4 different UI sizes (advanced, smaller, simple and tiny. From expert use to simple color picking),
its big variety of visualized color spaces (rgb, hsv and hsl),
its convenient multiple usage of input fields (typing, arrow/page keys or dragging for value changes),
its practical color value memory slots,
its fast, responsive and supportive cursor rendering,
its feasible color comparison tools,
its big variety of options and API for out of the box configuration for individual needs,
its compact design that tries to fit all possible situations while giving best overview over relevant data,
etc... play around with the demo to find out what ColorPicker provides...
ColorPicker runs within all browsers including IE7+ (theoretically also IE5.5+ and mobile devices with some modifications) can be called within 1 single file (color.all.min.js 45.4KB, 19.5KB gZip including HTML, CSS and some images),
although it's separated into 4 components for flexible customization, developing and handling:
colors.js the brain that calculates all colors and color dependent components. Can be used separately to build your own color tool. colors.js can convert 182 different combinations of color spaces (rgb2HSV, RGB2hsl, cmyk2hsl, rgb2RGB, HEX2Lab, ...)
colorPicker.js the UI (user interface) that renders in your browser and handles user interactions
colorPicker.data.js the HTML, CSS (functional and visual UI) and 5 images including transparent cursor. All those can be customized. There are tools for customizations available, or it can be dropped for development or if there is custom components available
The demos and the implementations show how easy it is to build your own color picker with colors.js (8.46KB) that could be used as a mobile device color chooser or an advanced color calculation tool. Be creative and use colors' or ColorPicker's clean, intuitive and convenient API to create your own great tools.
Some technical facts:
ColorPicker is faster and more efficient than most other tools of its kind due to a smart combination of some technics like:
intensive usage of fast cache, cache queries and buffering of elements, styles and color calculations
simple and effective DOM manipulation (fastest old school technics for broadest browser coverage)
strict separation of UI interactions, calculations and rendering
usage of requestAnimationFrame for optimized rendering speed
heaviest (pre-)calculations in non-critical situations
a smart layer rendering technic makes ColorPicker also small and compact (fast download of a single small file)
shared and pre-calculated resources (almost all functions, HTML, CSS, etc.) between instances makes processing way faster and needs less memory. A newly developed OOP design pattern makes privacy and reuse possible and results in a clean and non distracting API and data model.