Bluescape: Table of Contents

Navigation

By far, the most common interaction in an infinite canvas application is navigation: panning and zooming. Established workspaces that are referenced much more often than they are edited may be thought of as effectively read-only. In this case, navigation events are the only events. This realization was an important first step in establishing the correct navigation tooling. It was vital to allow panning, zooming, and basic object selection without requiring any tool change, regardless of input device (mouse, trackpad, touch-screen).

Viewing the gesture-to-action map as a matrix to identify holes.
The gesture-to-action matrix distilled to the most basic functions. We wanted to de-emphasise the Pan tool which meant proving that there were other options already available.

Infinite canvas applications also need to support automatic navigation that occurs as a side-effect of other activity. Examples include:

Touch-friendly select, scale, marquee, and pan.
Fig 1: Exploring tools, icons, and options for selection. Particular emphasis in this variant was given to touch interfaces where a keyboard is unavailable, and common patterns like [shift]-click multi-select are unavailable.
Fig 2: Explainer graphic for touch navigation. How to properly handle additional touch points properly.

Selection

In many applications, object selection is synonymous with a click. Touch-screen devices map “tap” events to “click” handlers making this initial simplification very straightforward. However, once an application needs to support multi-selection (multiple, simultaneously selected objects), the interaction model grows more complex. There are widely established patterns across the ecosystem: [shift]-click to multi-select, drag to marquee, etc. Despite the shift towards touch-screens, interaction patterns to replace common keyboard modifiers are inconsistent at best and nonexistent at worst.

For mouse and trackpad, we designed hover and/or custom cursors to aid feature discoverability. I eventually redesigned the core hitzone definitions.

Fig 3: Continuing exploration of touch-friendly selection tooling.
Fig 4: The selection UI in most tools incorporates an outline and resize handles at the corners and/or edges of the bounding box. Are there other possibilities? Should resize, scale, crop, etc all have the same visual treatment?

Undo

The undo stack typically does not include navigation or selection changes as undo-able actions. However, it’s important to adjust the viewport when undoing a change that would otherwise be off-screen and to restore the relevant selection state as part of undo actions.