Reading and editing
Why reading a surface is separate from changing it, and what each mode does and does not gate.
Most of what people do in SPARK is read: scan a grid, check a number, follow a column down a list of records. Changing the data is the rarer act, and the more consequential one. So the surfaces where both are possible, the record grid and the canvas, keep them apart: reading is the default, and changing requires entering edit mode.
Two kinds of change
The distinction that matters is not "read" versus "write". It is which of two very different things you are changing.
| You are changing | Example | Gated by edit mode |
|---|---|---|
| The data | A record's value, selecting records to act on them in bulk, a widget's presence on a canvas | Yes |
| How you are looking at it | A filter, a sort, column order, which columns show | No |
Filtering, sorting, reordering and hiding columns are how you read. Locking them behind a mode would make the common act harder in order to protect against the rare one. So they stay available all the time, and only changes to the data itself need the mode.
That is why a grid in reading mode is still fully navigable: shape it however you need, and none of it can alter a record.
In a data view
A record grid opens read-only. Every cell is inert, so scanning a column cannot change what you are looking at, however you click.
The pencil (Edit records) at the top right of the grid's header, beside the ⋯ menu and + Record, turns edit mode on and reads as pressed to show it. The ⋯ menu has the same switch, as Edit records. Cells you have permission to edit become editable, checkboxes appear for selecting rows in bulk, and your edits are held in the page until you save them, so there is still a deliberate step between typing and writing. Leaving edit mode with pending changes asks before discarding them, and so does leaving the page or closing the tab.
See Add, edit & import records.
On a canvas
A canvas follows the same idea for its layout. Viewing a canvas, you can interact with widgets: filter or sort a widget for yourself, sort a table by clicking a column header, change a chart's date range, and expand or export a card. None of it changes the saved canvas.
Edit mode is what lets you move, resize, add and configure widgets, and set the canvas's context variables. Choose Edit canvas & context in the canvas's ⋯ menu, or press ⌘E (Ctrl+E on Windows). The edit bar then offers Discard changes, Add widget and Save and close, and Discard changes asks before it drops anything unsaved.
The one exception is deliberate: a table widget with Record editing turned on (Let viewers select and edit records in view mode) lets viewers edit records from the canvas, because sometimes the dashboard is the right place to correct a value. That is a choice the canvas author makes per widget, in the table's Filters, sorting & selection settings.
Why it works this way
An accidental edit is recoverable only if you notice it. A grid that showed a new value the moment you mis-clicked would let you quietly corrupt your own reading of the data, and a save is never far away when the button is already in the toolbar you are reaching for.
Making the mutable state visible, and entering it on purpose, means that anything you change, you meant to change.