Skip to content

The Tour's first card no longer opens under the clock - #558

Merged
maximsan merged 2 commits into
mainfrom
fix/guide-layer-parity
Sep 9, 2026
Merged

The Tour's first card no longer opens under the clock#558
maximsan merged 2 commits into
mainfrom
fix/guide-layer-parity

Conversation

@maximsan

@maximsan maximsan commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Reviewed the guide layer against guide.jsx for #336, then drove all four Tour stops on a wiped iPhone 16.

The layer is faithful. Copy, geometry, the frame's radius, ring and 320ms move, the card's padding, leading and controls, the seven micro-tips and the seven App Guide sections all match the design. One divergence is deliberate and already recorded (the Streak section's first sentence, under #338's ruling).

One defect, only visible on a real phone. The Tour's first card opened behind the status bar, with the clock struck through "One lesson a day." The design's side rule sends the card above a target with less than 330 below it; the Today card is tall and starts near the top, so "above" is only the status bar's strip. The mock the rule is drawn against has no status bar, so nothing in the rule — and no assertion in the suite — could see it.

The card now takes the design's side when it fits there and the other side when it does not. At stop 1 it drops below the Today card: nothing hidden, nothing under the clock. Stops 2–4 are unchanged, because the design's side already fits at each. Clamping instead was tried first and rejected — it kept the card on screen but left it covering the CONTINUE LEARNING heading of the card it introduces. Owner ruled the side swap over the clamp.

Placement needs the card's own height to know which sides fit, so it moved out of Positioned into tourCardTop — pure, and unit-tested for both sides, both safe edges, the resting state, and a target too tall for either side.

Not touched: #536 (the stops' copy) and #537 (whether the Tour asks before it runs) remain yours to rule on.

dart format, flutter analyze, metrics, the comment cap and 2809 tests pass. All four stops driven end to end on the simulator.

The Tour's card takes the side of its target the design names when it fits there, and the other side when it does not. The design is drawn against a mock with no status bar, so its side rule could not see that above a tall Today card there is only the status bar's strip left — on a phone the first stop drew behind it, with the time struck through the title. Placement moves into tourCardTop, which needs the card's own height, so the slot is laid out rather than Positioned.
Both sides added a Fixed bullet; both stand.
@maximsan
maximsan merged commit 9bc5af9 into main Sep 9, 2026
7 checks passed
@maximsan
maximsan deleted the fix/guide-layer-parity branch September 9, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant