A position is one person's complete operating workspace in Buttons. Use positions to coordinate the surfaces at each physical operating position while keeping that person's controls, navigation, actions, and state separate from other positions.
A position represents where one person works, not a room, device, or user account. Examples include a sound position, graphics position, shading position, or production desk.
Each position provides an independent workspace. This allows several people to use the same Buttons system without their navigation or position state interfering with one another.
A surface is one interface to a position, such as a hardware panel, browser session, or iPad. A position can combine several surfaces and arrange them as one workspace.
For example, a sound position might use:
A hardware panel beside the mixer for frequently used controls.
A browser on the workstation for a larger overview.
An iPad for controls needed elsewhere in the room.
These are three interfaces to the same sound position, not three separate positions.
Arrange the surfaces on the position canvas to reflect how they are arranged in the real world. Where surface areas overlap on the canvas, they can expose the same controls. This lets two interfaces provide access to a shared control without maintaining separate copies.
Position variable definitions are available across positions, but each position maintains its own current and initial values. A shared section can therefore use the value belonging to the position where it appears.
Use a shared section when controls should be maintained centrally and reused across positions. Use separate position controls when their behavior or state belongs only to one person's workspace.
The position editor provides a separate workspace for designing and testing a position without moving the live surfaces through the editor's navigation and local state. Layout and configuration changes remain in the editor until you select Apply.
The editor also maintains its own runtime state while you test controls. Opening a popover, changing a page, advancing an action step, or changing a local value in the editor does not automatically move the live position to the same state.
When the tested state should become the live state, open the editor's actions menu and select Push State to Live. This sends the editor's current runtime state to the live position and its surfaces. It does not replace Apply, which saves layout and configuration changes.
Warning
Editor isolation does not make actions harmless. Holding Shift and pressing a control enters Execute Mode and performs that control's actions against connected equipment or software. Treat an editor test like a press on a live surface: check the selected control and its operational consequences first.