Package Exports
- control-panel
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (control-panel) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
control-panel
Embeddable panel of inputs for adding parameter selection to your app or visualization. Modern and minimalist design. Fully encapsulated module including JS and CSS. Can easily be added to any app or page. Heavily inspired by dat-gui
, but streamlined, simplified, and written as a npm module for use with browserify.
Supports the following input types
range
•checkbox
•text
•color
Includes the following themes
dark
•light
Want to contribute a new theme or input type? Submit a PR!
install
Add to your project with
npm install control-panel
example
Create a panel with four elements and add to your page in the top right.
var control = require('control-panel')
var panel = control([
{type: 'range', label: 'my range', min: 0, max: 100, initial: 20},
{type: 'text', label: 'my text', initial: 'my cool setting'},
{type: 'checkbox', label: 'my checkbox', initial: true},
{type: 'color', label: 'my color', format: 'rgb', initial: 'rgb(10,200,0)'}
],
{theme: 'light', position: 'top-right'}
)
usage
panel = control([input1, input2, ...], [opts])
The first argument is a list of inputs. Each one must have a type
and label
property, and can have an initial
property with an initial value. For example,
{type: 'checkbox', label: 'my checkbox', initial: true}
Each type
must be one of range
• input
• checkbox
• color
. Each label
must be unique.
Some types have additional properties:
- Inputs of type
range
can specify amin
,max
, andstep
- Inputs of type
color
can specify aformat
as eitherrgb
•hex
•array
The following optional parameters can also be passed as opts
root
root element to which to append the paneltheme
can specifylight
•dark
or provide an object (seethemes.js
for format)title
a title to add to the top of the panelposition
where to place the panel astop-left
•top-right
•bottom-left
•bottom-right
width
width of panel in pixels
panel.on('input', cb(data))
This event is emitted every time any one of the inputs change. The callback argument data
will contain the state of all inputs keyed by label such as:
{'my checkbox': false, 'my range': 75}