Esri / calcite-design-system

A monorepo containing the packages for Esri's Calcite Design System
https://developers.arcgis.com/calcite-design-system/
Other
285 stars 76 forks source link

Rotary knob (input element) #7735

Closed esride-nik closed 2 months ago

esride-nik commented 1 year ago

Check existing issues

Description

I'd like a rotary knob input element that acts pretty much like a slider.

Why? They're less space-consuming in the layout. They'd come in handy in case you have to bring in a lot of values that can be changed by the user.

Inspiration:

Acceptance Criteria

Mandatory:

Optional:

Optional but super fancy and standing out from the slider:

Give the rotary knob an outer ring to display the current value within the range. Then give the knob a factor, that defines how many time it has to be fully turned to cover the full number range. For example, look at the image below: The black knob in the center would have to be turned like 3 times to bring the value from min to max, while the left end of the cyan outer ring is always min and the right end is always max. This gives the user the ability to enter super fine-grained values by turning the knob. image

Relevant Info

No response

Which Component

New rotary knob component

Example Use Case

Priority impact

p3 - want for upcoming milestone

Calcite package

Esri team

Professional Services - Services Delivery

github-actions[bot] commented 3 months ago

cc @ashetland, @SkyeSeitz, @brittneytewks

DitwanP commented 2 months ago

Knobs as sliders have been reported as confusing to use. The interaction isn't intuitive, especially with mouse or touch input. Questions arise such as which axis affects the value and whether a circular motion is required. NNGroup has a good writeup on this topic, highlighting the ambiguity of traditional knobs. In most cases, vertical or horizontal sliders can achieve the same results in a simpler and more understandable way.

Additionally, we haven't seen significant demand for a component like this, so for that reason, we won't be adding this component at this time.