Input Hardware
The most important role of any user interface is the ability to accomplish tasks in an intuitive manner.
User input is more than half of the battle, with tasks requiring different input styles across a widening range of devices. Scientific hardware might require precise numeric input from a keypad, a roboticist wants high DoF analog movement controls, and a field diagnostics user might be using a ruggedised touchscreen.
Great input schemes can make using your hardware really fun!
Implied Input Methods
With the release versions of Electric UI, the target is desktop user interfaces. As the platforms in use are going to be desktop workstations, laptops, and convertible tablets, we can assume any permutation of
- Physical keyboard
- Onscreen keyboards
- Mouse
- A pen/stylus pretenting to be one
- Touch input
Some components aren't going to be as usable with a touchscreen as others, so some care needs to be made to accomodate your usecase. Additionally, the way the device is being held changes touchscreen interactions. People 'point and poke' with their index fingertips on larger displays, while phones typically see the flat of the finger and thumb.
Recommendations
In general, we recommend keeping the following in mind while performing component selection and layout:
-
Mouse and pen inputs have the same set of requirements, but touchscreens generally need larger hit targets.
-
Consider the density of input components in the context of the expected input methods, smaller hit targets can be quite usable when there aren't other interactive elements nearby.
-
Complement touch compatible inputs with keyboard controls and shortcuts.
-
Onscreen keyboards really don't work that well, avoid them wherever practical.
Electric UI's general goal is to provide a 'batteries included' developer experience, and we've tried to ensure the most common desktop-style input methods are as adaptable as possible. Some examples include:
- The chevron input component can be easily sized for touch, and supports scroll-wheel and keyboard inputs,
- The curve editor's interaction points have massive touch targets and auto-snap,
- Buttons try to be large and huggable where possible,
- Keyboard shortcuts can be added reasonably easily
Touchscreen Only Input
Gesture support is not something we've added, but we welcome feedback and suggestions.
Mobile devices are intended for support by Electric UI soon, and don't have the same precision inputs as traditional platforms, but include a few others which open up novel control schemes like Tilt Controls.
Rich Input Components
Where possible, components have been generalised to support touch and mousing with a comparable feature set. For this reason, we generally don't recommend relying on hover functionality and prefer to support a touch-and-drag interaction scheme for sliders and checkboxes, virtual gamepads and chevron input fields.
The more novel input methods include the xy input pad
, grid-editor
and vector-input
components.
INCLUDE GIF/VIDEO/EMBEDDED HERE
Third Party Input Devices
While most users won't add additional hardware, specific applications can require or optionally support external input devices which allow for more detailed or specific control methods.
Gamepads
Electric UI supports a wide range of gamepads, joysticks and other generic input devices through the $XINPUT-OR-JOY component.
We've used XBox 360 and XBox One controllers extensively, and can't say enough good things about the Steam Controller.
MIDI
Contact us if this will be useful for your application!