Repository navigation
Rebuild Ridgeline on the mobile surface (Phase 30 slice G) - #240
Merged
Merged
Conversation
On a 390 phone artboard every size >= 24px rendered at 60% of authored, measured against a fixed 1440, so titles and headings drew under the body. Chart tick labels were SVG text inside a plot that stretches to its box, so a 100%-wide chart squashed or widened them.
Verify round 1: unsquashed month labels overlapped on a phone-width chart, and a sync at a viewport narrower than the canvas scaled type against different widths on each side.
Verify round 2: half-step end slots truncated Jan and Dec on a fully labelled phone line chart, and a 100% root synced above 1440 got a 1440 imported document.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 30 slice G, the last slice. The phase began with a phone screen, "Ridgeline — Today", that had been hand-built in 93 nodes and scored 100/100 without a single mobile check running. This PR rebuilds that screen on the finished phase, through the real tools, and keeps the rebuild as a test. The re-run also surfaced two render defects that the gate could not see, and this PR fixes them.
The re-run
test-ridgeline.tsdrives the MCP server over stdio and follows the spec's path:canvas_create({ type: "mobile" }).generate_design_system, with seed#277350and thesoftpersonality.apply_structure("dashboard"), which stampsdashboard-mobile.canvas_set_genre("data"). The honest-content tell's own suggestion names this genre for a fitness screen's own figures.batch_designbatch.The batch has no autofix, builds no device chrome by hand, and changes no rules.
canvas_evaluate, fast modecanvas_evaluate, detailed modecanvas_stress, all five default perturbationsmobile-handbuilt-targetsurface.rulesOnmobile-artboardEvery tap target is a primitive: the bell is a nav-bar action, the four quick actions and "See all" are buttons, the runs are list rows, and the tabs and the start-run action are tab-bar items. The status bar, nav bar, tab bar and home indicator are the primitives.
The test also fails if the design system's fonts fall back, because a fallback face changes the glyph widths that every verdict above is measured on. It runs in the full tier.
The screen differs from the hand-built one in three places:
Two render fixes the re-run needed (approved before building)
Large type on a phone rendered at 60%.
$title(33px) rendered at 20px, smaller than the 21px card title, and$heading(27px) rendered at 16px, smaller than the 17px body. The rebuilt screen's headline figure read smaller than a card heading.Chart tick labels stretched with the plot.
width: "100%"chart in a phone card the labels came out squashed to about half their width.A fix that followed from the font change
canvas_sync_from_urlwith a viewport override renders the imported page in a document as wide as the canvas root. Without this, the two sides scaled large type against different widths, and an in-sync page reported drift.Docs
screenshot_responsiveparagraph and GUIDELINES' font-size and chart bullets describe the new behaviour.batch_designdocstring's chart line covers label slots.Testing
test-ridgeline.ts(full tier) andtest-fluid-type.ts(no browser).test-chart.tsandtest-sync-drift.ts.test-text-props.ts, which hung in Chrome past the runner's timeout; it passes on its own in 3.5s. The same one-off hang happened in slice E.100%root synced above 1440 drifted. Both are fixed.test-sync-drift.tsmirrors that handler rather than calling it, so the sync fix is verified by reading only.