vanilla-picker-mini

A simple, easy to use color picker with alpha selection.

Usage no npm install needed!

<script type="module">
  import vanillaPickerMini from 'https://cdn.skypack.dev/vanilla-picker-mini';
</script>

README

vanilla-picker-mini

License Size

A simple, easy to use color picker with alpha selection.

This is a smaller version of vanilla-picker 2.5.0, made for submission to the MicroJS.com catalog. The only difference from the full version is the lack of support for color names. This means you need to set the picker's color values in hex/rgba/hsla notation, and not "red", "yellowgreen" or "mediumaquamarine".

Demo

https://codepen.io/Sphinxxxx/pen/xazoQN

Getting Started

Installing

Download vanilla-picker-mini.js from the /dist folder, or use a CDN:

<script src="https://unpkg.com/vanilla-picker-mini@1"></script>

Usage

<div id="parent">Click me</div>

<script>

    /*
        Create a new Picker instance and set the parent element.
        By default, the color picker is a popup which appears when you click the parent.
    */
    var parent = document.querySelector('#parent');
    var picker = new Picker(parent);

    /*
        You can do what you want with the chosen color using two callbacks: onChange and onDone.
    */
    picker.onChange = function(color) {
        parent.style.background = color.rgbaString();
    };

    /* onDone is similar to onChange, but only called when you click 'Ok' */

</script>

Options

var picker = new Picker({

    parent:               /* Which element the picker should be attached to */

    /* If the picker is used as a popup, where to place it relative to the parent */
    popup:     'right'    //Default
               'left'
               'top'
               'bottom'
                false     //No popup, just add the picker as a normal child element of the parent

    template:             /* Custom HTML string from which to build the picker. See /src/picker.pug for required elements and class names */

    layout:    'default'  /* Suffix of a custom "layout_..." CSS class to handle the overall arrangement of the picker elements */

    alpha:      true      /* Whether to enable adjusting the alpha channel */

    editor:     true      /* Whether to show a text field for color value editing */

    color:                /* Initial color for the picker        (or call picker.setColor()) */

    onChange:             /* Callback whenever the color changes (or set  picker.onChange) */

    onDone:               /* Callback when the user clicks "Ok"  (or set  picker.onDone) */

    onOpen:               /* Callback when the popup opens       (or set  picker.onOpen) */

    onClose:              /* Callback when the popup closes      (or set  picker.onClose) */

});

Accessibility

The color picker is built to support basic keyboard navigation and use with screen readers. I would be very interested in feedback on improvements that could be done here!

Credits

License

The ISC license - see the LICENSE.md file for details.