Rotary fits linear lists and continuous values
Aliases: 1D crown · continuous adjustment · bezel scrolling
What it is
Rotation is one-dimensional: a turn is more or less along a single axis. It matches two kinds of object—items already in a line, and continuous quantities such as volume, countdown minutes, or map scale. Two-dimensional choice (a point on a map, a complication on a face) has no natural path “along the turn.” A yes/no, or a jump between two unrelated options, is not something you turn into. This entry is about whether the object’s dimensionality is isomorphic to rotation. It is not about whether turning covers the type, and not about whether clockwise should mean “next” or “previous.”
Why it happens
A rotary encoder emits displacement along one axis. The expectation is: more turn, farther along a sequence already in view, or larger/smaller on a number already changing. A linear list externalizes order as a path; a continuous value externalizes magnitude as an axis you can add to or subtract from. Both give the turn somewhere to go. Grids, maps, and trees fold the choice space into two dimensions or levels. Rotation can be arbitrarily assigned to one of those dimensions; the other still needs a second input, and people lose track of which dimension this turn is editing. Binary switches are worse: turning through and back does not feel like a press, and the in-between states mean nothing. When the isomorphism holds, people can even approach a target by rate without reading every item. When it fails, every tick has to be re-interpreted.
Where it stops holding
A very long 1D list is still expensive in time; rotary solves dimensional match, not “should this job finish on the wrist.” Hierarchical menus can use rotary if each level is a short list, but enter/back must be a separate action—do not reuse rotation as “turn past the end to go deeper.” A marked bezel on a dive or timing task is a continuous quantity made physical, with no on-screen list, and still matches this claim. Discrete but ordered steps (workout type, repeat count) can be short lists; an unordered bag of labels (five arbitrary contacts) has no line, so rotary is just jumping at random.
Applying it
- Ask first whether the UI is an ordered sequence or an additive quantity; if not, do not make the crown the primary control.
- Order lists the way people already understand (time, alphabet, distance) so the turn always follows that order, not the developer’s module order.
- While rotating a continuous value, change both the numeral and a visible axis (arc, bar, needle). Do not let the number jump with no axis in play.
- Verify by blocking the crown and leaving only touch, then the reverse. If crown-only leaves people unsure which dimension they are editing, or they must guess at a 2D target, rotary is on a non-isomorphic object.