[Page] Update: Expand editor stage with widget state and new component replacements#3187
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the editor-stage.pen UI definition file, renaming several frames (Sound, Backdrop, Code, Widget) and adjusting their coordinates, dimensions, and component references. The reviewer identified several opportunities for improvement: rounding sub-pixel coordinate noise to zero for better alignment, ensuring consistent width and height for the panel-right frame across all sections, and standardizing the naming and structural layout of the Widget frame to maintain consistency with other editor stages.
| "type": "ref", | ||
| "ref": "G:Hjqqt", | ||
| "x": 0, | ||
| "x": 0.011189733001048491, |
| "width": 496, | ||
| "height": 830, |
| "id": "NNjP4", | ||
| "name": "content", | ||
| "id": "Q9DuS", | ||
| "name": "Frame 1010106326", |
| "y": -63, | ||
| "name": "Widget", | ||
| "width": 1440, | ||
| "height": 910, | ||
| "height": 900, | ||
| "fill": "$G:grey300", | ||
| "stroke": { | ||
| "align": "inside", | ||
| "thickness": 1 | ||
| }, | ||
| "layout": "vertical", | ||
| "gap": 20, | ||
| "alignItems": "center", | ||
| "children": [ | ||
| { | ||
| "id": "G5OF7", | ||
| "id": "jMcF6", | ||
| "type": "ref", | ||
| "ref": "G:WiWwa", | ||
| "x": 0.00018589109107464483, | ||
| "x": 0.00037173899785242556, | ||
| "y": 0, | ||
| "children": [ | ||
| { | ||
| "id": "ueQ3D", | ||
| "id": "gch0V", | ||
| "type": "ref", | ||
| "ref": "G:So19f" | ||
| } | ||
| ] | ||
| }, | ||
| { | ||
| "type": "frame", | ||
| "id": "NNjP4", | ||
| "name": "content", | ||
| "id": "Q9DuS", | ||
| "name": "Frame 1010106326", | ||
| "height": "fill_container", | ||
| "stroke": { | ||
| "align": "inside", | ||
| "thickness": 1 | ||
| }, | ||
| "gap": "$G:space-4", | ||
| "padding": [ | ||
| "$G:space-2", | ||
| "$G:space-4", | ||
| "$G:space-4", | ||
| "$G:space-4" | ||
| ], | ||
| "children": [ | ||
| { | ||
| "id": "VKpQ2", | ||
| "id": "qLf9A", | ||
| "type": "ref", | ||
| "ref": "G:qEHhD", | ||
| "x": 0, | ||
| "y": 0, | ||
| "children": [ | ||
| { | ||
| "id": "Wbb0B", | ||
| "type": "ref", | ||
| "ref": "G:wuVTo" | ||
| } | ||
| ] | ||
| "ref": "G:ygUhS", |
There was a problem hiding this comment.
The Widget frame introduces several structural and layout inconsistencies compared to the Sound, Backdrop, and Code frames:
- Missing Wrapper: It directly references
G:ygUhS(line 361) without theG:qEHhDwrapper used by the other frames. - Dimensions & Position: Its
heightis900(vs910) and itsycoordinate is-63(vs-66or-68). - Layout Properties: It uses
paddingandheight: fill_containeron its content frame, and thealignItems: centerproperty was removed from the top-level frame (line 325 in the previous version).
Please verify if these changes are intentional parts of the new design or if the Widget frame should be aligned with the existing structure.
| "x": 2952, | ||
| "y": -66, | ||
| "name": "code", | ||
| "name": "Sound", |
There was a problem hiding this comment.
Undocumented naming convention change. Top-level frame names changed from lowercase (code, widget, backdrop, sound) to Title Case (Code, Backdrop, Sound, Widget) across all four frames. If any tooling or tests match frames by the name field (e.g. findNodesByName in the conformance test), this is a breaking change. The PR description does not mention it — worth calling out explicitly.
| "id": "jIDGe", | ||
| "name": "panel-right", | ||
| "width": 496, | ||
| "height": 830, |
There was a problem hiding this comment.
Inconsistent panel-right dimensions. The Sound frame's panel-right has explicit "width": 496, "height": 830 added here (and Widget's does too), but the equivalent panel-right frames in Backdrop and Code have no size constraints at all. If these pages are meant to depict the same layout shell, the constraints should be applied uniformly or omitted uniformly.
| "type": "ref", | ||
| "ref": "G:Hjqqt", | ||
| "x": 0, | ||
| "x": 0.011189733001048491, |
There was a problem hiding this comment.
Floating-point x-coordinate artifact. "x": 0.011189733001048491 is an export rounding artifact — the intended value is 0. This same value appears on the equivalent ref inside panel-right across all four pages (lines ~82, ~184, ~286, ~392). The sibling editor-sprite.pen uses a clean 0 for the equivalent nodes. Consider normalizing to 0 to keep diffs clean and avoid sub-pixel drift accumulating across future exports.
| "name": "Widget", | ||
| "width": 1440, | ||
| "height": 910, | ||
| "height": 900, |
There was a problem hiding this comment.
Widget frame height differs from peers. This frame uses "height": 900 while Sound, Backdrop, and Code all use "height": 910. The 10 px discrepancy is undocumented — intentional design difference or copy-paste omission?
| "align": "inside", | ||
| "thickness": 1 | ||
| }, | ||
| "layout": "vertical", |
There was a problem hiding this comment.
Widget frame is missing gap and alignItems. The other three top-level frames (Sound, Backdrop, Code) all declare "gap": 20 and "alignItems": "center" on their root layout frame. Widget omits both. Without gap: 20, the header ref and the content frame stack without spacing; without alignItems: center, content will be left-aligned in the 1440 px viewport — a visual regression versus the other states.
| "id": "NNjP4", | ||
| "name": "content", | ||
| "id": "Q9DuS", | ||
| "name": "Frame 1010106326", |
There was a problem hiding this comment.
Auto-generated placeholder name not cleaned up. "name": "Frame 1010106326" is a default tool-generated name. Every equivalent content container in the other three pages uses "name": "content". This should be renamed to "content" for consistency and to avoid silent mismatches in any tooling that locates nodes by name.
Issue
Background
This update expands the
editor-stagepage by adding a new widget state page and aligning several existing subpages with the latest component designs.Changes
editor-stage.penunderui/pageswidgetstatecodepage with the new design componentsbackdroppage with the new design componentssoundpage with the new design componentsScope
Design System Impact