fix(public): keep /pricing lead-form bare inputs at a 44px tap target - #251
Conversation
PR #194 added a <form class="lead two"> to public/pricing.html with bare <input> elements (no <label> wrapper, relying on aria-label). The existing tap-target rules in public/shared.css apply the padding:10px 18px 11px 24px hit area to form.lead.two label, not to bare inputs, so the two /pricing form inputs rendered at 19px tall — the same regression class PR #70 closed for the home-page footer link in 2026-08-11. Add a form.lead.two > input rule (mirrors the label padding, with min-height:44px and box-sizing:border-box to guarantee the hit area regardless of font rendering), and the same rule in the mobile breakpoint with the border-top separator that the label pattern uses. Extend scripts/check-site.mjs tapTargetCss to pin both needles (whole- file + mobile-block) so the regression cannot re-ship silently. Verified on the new main (d0daea9) with a fresh Playwright 1.62.1 session at 390x844: every standalone interactive element on every served page is now >=44px in both height and width — including the previously 19px /pricing form inputs, now 44px exactly. Only the WCAG-exempt inline text links (.xa1, .xi19, .xp1) remain under 44px, as recorded in the 2026-08-12 receipt. npm run check passes (removing the new shared.css needle from the guard fails it). Full npm test suite: 126 tests, 0 failures. Receipt: docs/evidence/tap-targets-2026-08-09.md (2026-08-20 entry) Report: .lane/reports/docs-tap-target-rereverify-2026-08-20.md
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
Next review available in: 29 minutes Limit details: You’ve used the included review currently available. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (4)
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
| ["shared.css", | ||
| [".logo{padding:11px 0}", ".navlinks a{padding:15px 0}", ".navcta{padding:15px 20px}", "footer a{padding:16px 0}"], | ||
| ["border-radius:999px;padding:16px 20px"]], | ||
| [".logo{padding:11px 0}", ".navlinks a{padding:15px 0}", ".navcta{padding:15px 20px}", "footer a{padding:16px 0}", "form.lead.two > input{padding:12px 14px;min-height:44px;box-sizing:border-box}", "form.lead.two > input + input{border-left:0;border-top:1px solid var(--line)}"], |
There was a problem hiding this comment.
Mobile CSS guard scans too broadly
The mobile-block validator searches a greedy capture extending from the first matching media query through the stylesheet’s final brace. Consequently, these new needles still pass when the declarations are moved later in shared.css but outside the intended breakpoint, allowing npm run check to miss a responsive tap-target regression.
Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/check-site.mjs
Line: 586
Comment:
**Mobile CSS guard scans too broadly**
The mobile-block validator searches a greedy capture extending from the first matching media query through the stylesheet’s final brace. Consequently, these new needles still pass when the declarations are moved later in `shared.css` but outside the intended breakpoint, allowing `npm run check` to miss a responsive tap-target regression.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.…on on current main (2026-08-21) (#272) The review item "Put a real 'Request the appraisal' action inside the pricing page's closing callout" is already fixed on origin/main 92d55c3 by merged PR #194 (76fe17b, 2026-08-19), hardened by #154 (persistent labels) and #251 (44px tap targets). Re-verification-only closeout: the closing .band form, the check-site.mjs guard, and the suite are all green; the live page's missing form is the documented deploy lag to the pre-fix release pin (release-state-tinystudio-io.json b4d80f1, 2026-08-17), not a source regression. Co-authored-by: minimax-vps <minimax-vps@local> Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Closes the mobile-tap-target review item.
PR #194 added a
<form class="lead two">topublic/pricing.htmlwith bare<input>elements (no<label>wrapper, relying onaria-label). The existing tap-target rules inpublic/shared.cssapply padding toform.lead.two label, not to bare inputs, so the two/pricingform inputs rendered at 19px tall -- the same regression class PR #70 closed for the home-page footer link in 2026-08-11.This PR:
form.lead.two > inputrule topublic/shared.css(whole-file + mobile-block), mirroring the label padding withmin-height:44pxandbox-sizing:border-boxso the hit area is exactly 44px regardless of font rendering.scripts/check-site.mjstapTargetCssto pin both needles (whole-file + mobile-block) so the regression cannot re-ship silently. Removing the new shared.css needle from the guard causesnpm run checkto fail with the expected message.docs/evidence/tap-targets-2026-08-09.mdrecording the re-verification..lane/reports/docs-tap-target-rereverify-2026-08-20.mdwith the full per-page measurement tables.Verified on
d0daea9with a fresh Playwright 1.62.1 session at 390x844: every standalone interactive element on every served page is now >=44px in both height and width -- including the previously 19px/pricingform inputs, now 44px exactly. The label-wrapped forms on/indexand/auditwere not affected (they still use theform.lead.two labelrule). Only the WCAG-exempt inline text links (.xa1,.xi19,.xp1) remain under 44px, as recorded in the 2026-08-12 receipt. Fullnpm testsuite: 126 tests, 0 failures.Greptile Summary
The PR raises bare pricing-form inputs to a 44px tap target and records the corresponding verification evidence.
Confidence Score: 4/5
The PR appears safe to merge, with a non-blocking weakness in how the new responsive CSS assertions verify media-block placement.
The CSS change reaches the intended pricing inputs without disrupting wrapped forms, but the added source guard can accept declarations placed outside the intended breakpoint because its media-query capture is overly broad.
Files Needing Attention: scripts/check-site.mjs
Important Files Changed
Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "fix(public): keep /pricing lead-form bar..." | Re-trigger Greptile