A highly customizable, accessible set of framework-agnostic input components for precision controls (knobs, dials, sliders, etc).

Downloads in past


46221.0.02 years ago6 years agoMinified + gzip package size for precision-inputs in KB


Precision Inputs
These components can be styled to fit in perfectly in any app, and allow users to set precise values through many input modalities. Users can touch-and-drag, click-and-drag, scroll their mouse wheel, double click, or use keyboard input. After instantiation you can use the components just like you would any normal input.
Please report any issues you discover on Github.


See for a demo using the FLStandardKnob component.
See for the same demo in a webpack setup.


See the documentation table-of-contents for instructions on how to use/customize each type of component.

Planned Features

  • Components
- Base
- ✔ `KnobInput` - fully customizable, bare-bones base component
- FL Controls
- ✔ `FLStandardKnob` - easy-to-use base knob component
- ✔ `FLReactiveGripDial` - detailed dial with "grip" bumps, good for larger controls
- ❌ numerical range input (e.g. channel selector)
- ❌ customizable-range knob (e.g. flexible fine-tune knob)
- ❌ slider input
- ❌ X-Y controller
- ❌ other components composed and styled like FL Studio controls
- ❓ possibly other sets of styled, ready-to-use components
  • Performance
- ❓ alter or replace rendering method to avoid the performance limitations of SVG
  • Features
- ❓ maybe add built-in logarithmic scaling to inputs - ❓ maybe add built-in input labels - ❓ direct support for React or other frameworks

Package Contents

For now, the components are distributed as a single UMD module with all relevant classes accessible via the default export object.
└── dist
    ├── precision-inputs.css
    ├── precision-inputs.js