add the Studio UI layout contract
Studio had a colour contract with a mechanical audit but no layout equivalent,
which is where the recurring visual defects live: window flashing, the label
under the 3D view, the platform-not-moving report, and the 2D/3D sync work all
passed a 3,408-assertion tool suite because that suite asserts widget state, not
the visible result.
apps/studio/docs/ui-layout.md states the contract: ViewLayoutController owns the
top-level arrangement and each panel owns its internal layout; every path that
changes the view must go through apply_preset(); each view's pane priority and
degradation order; and which numeric geometry arguments are legitimate (a 1px
separator is not the same defect as a magic width on a flexible panel).
It also records the one transition that is broken today.
on_cal_panel_toggled(False) sets view_preset = "live" directly instead of
calling apply_preset("live"), so the replay -> calibration -> calibration-off
sequence leaves the rail on the replay source, the run button in playback role,
and the previous view's splitter sizes. The live branch does call apply_preset,
which is what makes the asymmetry easy to miss.
Three claimed enforcement gaps are stated so the contract is not mistaken for
something already enforced: audit_palette reads theme JSON and never scans
source for the hex literals ui-palette.md forbids; the containment test compares
width and height without x/y, so a shifted or overlapping child passes; and the
GL pixel suite skips invisibly without a real context.
Verified: doc_lint default and --all both exit 0; the new document is registered
in the workspace inventory (63 collected, 63 inventoried, 0 missing) and linked
from README.md beside the palette reference. No source file changed.
This commit is contained in:
@@ -98,6 +98,12 @@ ramp monotonicity) that guard the brand tokens; see
|
||||
colour system, its relationship to the UI design spec, and every deliberate
|
||||
deviation from it.
|
||||
|
||||
Layout follows [`apps/studio/docs/ui-layout.md`](apps/studio/docs/ui-layout.md):
|
||||
which controller owns the arrangement, the fixed effect set every view change
|
||||
must apply, each view's pane priority and degradation order, when a numeric
|
||||
geometry argument is legitimate, and which of these rules are not yet
|
||||
mechanically enforced.
|
||||
|
||||
`ui_check.py` includes a `record channel` section as well; see
|
||||
[`apps/studio/docs/record-channel.md`](apps/studio/docs/record-channel.md) for
|
||||
why recording and calibration sampling no longer hang off the UI refresh timer,
|
||||
|
||||
Reference in New Issue
Block a user