Inspector non-destructive editing

Overview

Every edit the Inspector makes lands on the selected element's own element.style, for one property. That is the safest target there is — it wins the cascade on that element and is fully reversible — but the panel used to say only “this row changed”, which answers neither what else did that disturb? nor how do I get back?. This feature makes both explicit: a scope summary before you commit, and a receipt afterwards with per-row and global undo.

The scope summary in the edit sheet at 360 px

The receipt strip in the Styles panel, listing the session's edits with per-row undo

Usage

Before committing: the scope summary

Open the edit sheet (tap a declared row or a quick-add chip). Above the actions, Only one thing changes reports what the upcoming write does:

Properties changed1 — the one in the sheet
Declarations keptevery other declaration the element has
Rules edited0 — no stylesheet rule is touched
Other elements0 — the write addresses this element's own style object

When the property is new to the element, the block says so: “Adds font-size to this element — it had no declaration of its own before.” That is the difference between overriding a value and introducing one, and it is worth knowing before you tap Apply.

After committing: the receipt

Each applied change appears in a strip at the top of the Styles panel:

2 changes                                   ↺ Undo all
font-size           —  → 20px   ↺
background-color    —  → rgb(18, 26, 38)   ↺

Combined with the value-type switch

A type switch (16px → 1rem) is only a rewrite of the field until Apply, so it produces at most one receipt line for the property — and the receipt shows the value from before the switch, not the intermediate one.

Combined with the fan-out and the rail

A fan-out drag (padding: 10px 14px 18px 14px → 24px 14px 18px) and a rail drag each rewrite one property, so each is one receipt entry — including the fan-out, which is one shorthand declaration even though the browser expands it into four longhands. recordChange merges repeat edits on the same property and keeps the original from, so Undo all after a fan-out restores an element that had no padding of its own to exactly that state: no inline style at all, with the origin sentence back to naming the stylesheet rule. A fan-out whose sides cannot legally be collapsed (a var() side) is not rewritten from the view at all, and says why, rather than writing four longhands the user did not ask for.

Behaviour