# PR 13 phone sizing revision ## Existing task and PR metadata The HQ approval notices in this task session identify: * Repository: rizkallaco/electroX-shopify-theme * PR: 13 * URL: https://github.com/rizkallaco/electroX-shopify-theme/pull/13 * Title supplied for this task: Increase yellow promo strip message and button text * Published session branch: craig/increase-yellow-promo-strip-text-siz-83ge * Target: master * Saved implementation commit before revision: 4d68ce2 * Local worktree branch: craig/pop-convert-text-size * Revision commit: 33e9b0b The original implementation was recovered from the existing local commit and earlier session history. The local HEAD had not changed since the HQ push confirmation. HQ runner source confirms that shipping pushes HEAD to the session branch, explaining the different local branch name. No new branch or replacement PR was created. No push, merge, deployment or client message was performed. An attempted authenticated fetch of refs/pull/13/head could not run because GitHub credentials are not exposed to shell git. The first attempt encountered the Git metadata filesystem restriction; the permitted retry returned `could not read Username for 'https://github.com': terminal prompts disabled`. Remote head metadata has not been independently refreshed. The session supplied metadata above is the source of the PR identity and routing. ## Exact files Only `assets/installment-bar-sizing.js` changes in this revision. Two declarations inside the existing max-width:700px media query change: * Message: 18px to 16px * Button: 16px to 15px No spacing change was needed. Every other byte of the saved script is preserved. The existing 30px phone right inset, desktop rules, observers, spacer handling, wording, navigation and event handling remain unchanged. The complete pending PR still contains exactly the two original files: * assets/installment-bar-sizing.js * layout/theme.liquid The layout file is unchanged by this revision. announcement-bar.liquid, header internals, settings and all other files are untouched. ## Current live baseline and actual app results The live page at https://riz.shop/en/ was measured before editing the script. Requests other than GET, HEAD and OPTIONS were blocked during browser checks. No submit was clicked and no form was sent. | Viewport | Current live message/button | Current live strip | Previous proposal message/button | Previous strip | Revised message/button | Revised strip | | --- | --- | --- | --- | --- | --- | --- | | 1440x900 | 19.2px / 16px | 68px | 24px / 20px | 80px | 24px / 20px | 80px | | 390x844 | 14.4px / 12px | 56px | 18px / 16px | 102px | 16px / 15px | 65px | | 320x844 | 14.4px / 12px | 56px | 18px / 16px | 102px | 16px / 15px | 96px | | 700x844 | not remeasured | not remeasured | 18px / 16px | 68px | 16px / 15px | 65px | | 701x844 | not remeasured | not remeasured | 24px / 20px | 80px | 24px / 20px | 80px | | 844x390 | not remeasured | not remeasured | 24px / 20px | 80px | 24px / 20px | 80px | Phone message text remains 11.1 percent larger than the live baseline. Button text remains 25 percent larger. At 390px the native flex wrapping now fits both on one row. At 320px the button still wraps below. Native wrapping rules were preserved. Revised actual app bounds, in CSS pixels as x,y,width,height: | Viewport | Message | Button | Close | | --- | --- | --- | --- | | 1440 | 498.92,26,318.55,28 | 825.47,10,123.59,60 | 1410,6,24,24 | | 390 | 27.47,23,212.36,19 | 245.83,10,92.70,45 | 360,6,24,24 | | 320 | 38.81,16,212.36,19 | 98.64,41,92.70,45 | 290,6,24,24 | No revised text clipping or message/button/close intersection was detected. The close control remains 24x24 at top 6px and right 6px. Spacer height equals actual strip height, including after viewport resizing. Actual app dismissal clears the spacer. Every visible header descendant retains its width, height, x coordinate and relative y position. The header moves upward only by the reduced spacer: 37px at 390px and 6px at 320px compared with the previous proposal. Desktop measurements are identical at 1440, 701 and 844px. ## Wording, colours and destination Live strings compare exactly, including the existing Arabic spelling: * بدون مقدم وبأقل فائدة في مصر * قسط الاَن Colours compare unchanged: yellow rgb(255,212,0), dark message rgb(8,47,73), red button rgb(215,25,25), white button text. Font weights remain 600 and 700. Complete button outerHTML compares equal between previous and revised actual app runs. No listener or URL code was modified. A fresh read only GET of the public Pop Convert configuration independently confirmed campaign 121190, active traffic_url: https://riz.shop/pages/individual-installment-form?utm_source=Smart%20Bar&utm_medium=Smart%20Bar&utm_campaign=Smart%20Bar traffic_open_new_tab remains false. The control is a button without an href; the app continues to own navigation. Navigation itself was deliberately not exercised. See campaign-current.json. ## Arabic font and screenshot evidence The review harness explicitly loads Noto Sans Arabic 600 and 700 from local copies of the actual Google Fonts webfont files before taking screenshots. FontFace.load and document.fonts.ready are awaited. Chrome CSS.getPlatformFontsForNode verifies that custom Noto Sans Arabic glyphs are actually used for both message and button. Visual inspection confirms shaped Arabic letters and diacritics, with no missing glyph boxes. The harness font applies equally to original sizing, previous proposal and revised sizing. It is only in the external evidence directory. No font family, font asset or font loading code was added to the production theme. Noto font metrics differ from the live app platform fallback. Therefore screenshot harness heights differ from the actual app table above: | Viewport | Original sizing with Noto | Previous with Noto | Revised with Noto | | --- | --- | --- | --- | | 1440 | 76px | 87px | 87px | | 390 | 63px | 118px | 66px | | 320 | 63px | 118px | 111px | The 1440px previous and revised screenshot files are pixel identical under this shared loaded font. Header HTML and button HTML also compare byte identical in the inert snapshot. At 320px the original sizing fixture has a button/close rectangle intersection when rendered with the Noto review font. This is recorded as baseline comparison evidence, not a revised implementation failure. Previous and revised fixtures must pass the no overlap checks, and do. No unrelated baseline layout code was changed. Primary artifacts: * comparison-390.png and comparison-320.png show original, previous and revised phone sizing side by side. * previous-1440.png and revised-1440.png demonstrate identical desktop pixels. * original-*.png, previous-*.png and revised-*.png are individual captures. * live-baseline.json contains the current unmodified live measurements. * actual-measurements.json contains previous/revised measurements with actual live app fonts and header child bounds. * webfont-measurements.json contains all three snapshot measurements and verified custom glyph fonts. * revision.diff contains exactly the two changed font declarations. ## Checks and commands Passed: ``` node --check assets/installment-bar-sizing.js git diff --check git diff --cached --check /opt/alpha-workshop/venv/bin/python /tmp/riz-banner-mobile-revision/baseline.py /opt/alpha-workshop/venv/bin/python /tmp/riz-banner-mobile-revision/actual_live.py /opt/alpha-workshop/venv/bin/python /tmp/riz-banner-mobile-revision/regression.py /opt/alpha-workshop/venv/bin/python /tmp/riz-banner-mobile-revision/visual_check.py ``` actual_live.py locally routes the previous or revised asset into the unchanged live page before the delayed app mounts. It checks 1440,390,320,700,701 and 844px, portrait/landscape and resizing back to portrait, font sizes, text, colours, close clearance, clipping, spacer height, actual close control and header geometry. regression.py reuses captured actual app shadow markup/CSS. It checks absent app, late host, late shadow root, delayed bar and spacer, rerenders, campaign mismatch isolation, hidden/removed bar, removed host, no observer feedback loop and unchanged attachShadow. The desktop portion of the saved production asset is also compared exactly by asserting the entire new file equals the previous file with only the two intended replacements. visual_check.py checks loaded custom Arabic glyph fonts, screenshot geometry, unchanged text/colours/weights/button/header HTML, and exact desktop pixel equality. The initial harness incorrectly applied new layout acceptance to the original sizing fixture under the added Noto font; this exposed the baseline comparison intersection described above. The final harness records original state and checks acceptance on previous/revised states. No package manifest, documented build, test runner or lint tooling exists in this theme. Shopify CLI remains unavailable. No packages were installed and the full application was not run. ## Preview availability and workshop handoff The existing public gallery URL supplied in the request returned HTTP 403 from this runner. Its content was not replaced or published. HQ preview was retried with a temporary .hq-preview launcher serving only the new inert evidence directory. It returned `Previews are not available right now (the link could not be opened). Try again in a minute.` The launcher was removed. The previously diagnosed Cloudflare tunnel stage remains unavailable. No new hosted URL or artifact registration is claimed. No generic upload tool is exposed here. Screenshot upload requires a working HQ preview URL. No publish_demo operation or deployment was requested. Workshop paths on this HQ runner: * Directory: /tmp/riz-banner-mobile-revision/ * Static root: /tmp/riz-banner-mobile-revision/preview/ * Gallery: preview/index.html * Inert pages: preview/original.html, preview/previous.html, preview/revised.html * Full report and measurements: preview/evidence/ * Archive: /tmp/riz-banner-mobile-revision/reviewer-evidence.tar.gz The static root includes the locally served Arabic webfonts and relative links. The report and comparison images can be attached by a workshop or served through the existing evidence hosting mechanism. Original app scripts are removed, and the header and banner remain inert. Only public stylesheet/image GETs and the review scripts are active. No private or patient data is present. Requested next action: update existing PR 13 with commit 33e9b0b through HQ. Keep the existing branch routing and master target. Do not create another PR.