Skip to content

fix(public): keep /pricing lead-form bare inputs at a 44px tap target - #251

Merged
nish3451 merged 3 commits into
mainfrom
docs/tap-target-rereverify-2026-08-20
Aug 20, 2026
Merged

nish3451 merged 3 commits into
mainfrom
docs/tap-target-rereverify-2026-08-20

Conversation

@nish3451

@nish3451 nish3451 commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Closes the mobile-tap-target review item.

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 padding 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.

This PR:

  • Adds a form.lead.two > input rule to public/shared.css (whole-file + mobile-block), mirroring the label padding with min-height:44px and box-sizing:border-box so the hit area is exactly 44px regardless of font rendering.
  • Extends scripts/check-site.mjs tapTargetCss to pin both needles (whole-file + mobile-block) so the regression cannot re-ship silently. Removing the new shared.css needle from the guard causes npm run check to fail with the expected message.
  • Appends a 2026-08-20 entry to docs/evidence/tap-targets-2026-08-09.md recording the re-verification.
  • Adds .lane/reports/docs-tap-target-rereverify-2026-08-20.md with the full per-page measurement tables.

Verified on 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. The label-wrapped forms on /index and /audit were not affected (they still use the form.lead.two label rule). Only the WCAG-exempt inline text links (.xa1, .xi19, .xp1) remain under 44px, as recorded in the 2026-08-12 receipt. Full npm test suite: 126 tests, 0 failures.

Greptile Summary

The PR raises bare pricing-form inputs to a 44px tap target and records the corresponding verification evidence.

  • Adds desktop and mobile direct-child input sizing rules in shared.css.
  • Extends the site checker with source needles for the new declarations.
  • Documents viewport measurements and regression verification.

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

Filename Overview
public/shared.css Correctly scopes 44px sizing to bare direct-child inputs while preserving label-wrapped forms.
scripts/check-site.mjs Adds the intended needles, but the existing greedy media-block extraction does not reliably enforce their responsive placement.
docs/evidence/tap-targets-2026-08-09.md Records the tap-target regression, fix, measurements, and verification results.
.lane/reports/docs-tap-target-rereverify-2026-08-20.md Provides detailed implementation rationale and per-page verification evidence.

Fix all with Greploop Fix All in Claude Code Fix All in Codex Fix All in Cursor

Prompt To Fix All With AI
### Issue 1
scripts/check-site.mjs:586
**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.

Reviews (1): Last reviewed commit: "fix(public): keep /pricing lead-form bar..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

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
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@nish3451, you've reached your PR review limit, so we couldn't start this review.

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.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Free

Run ID: cea79dc7-b8a5-4e8b-9977-9d431b54830c

📥 Commits

Reviewing files that changed from the base of the PR and between 0540cf9 and f961c28.

📒 Files selected for processing (4)
  • .lane/reports/docs-tap-target-rereverify-2026-08-20.md
  • docs/evidence/tap-targets-2026-08-09.md
  • public/shared.css
  • scripts/check-site.mjs

Note

🎁 Summarized by CodeRabbit Free

Your 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 @coderabbitai help to get the list of available commands.

Comment thread scripts/check-site.mjs
["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)}"],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 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.

Fix in Claude Code Fix in Codex Fix in Cursor

@nish3451
nish3451 merged commit 75cfef2 into main Aug 20, 2026
3 checks passed
nish3451 added a commit that referenced this pull request Aug 21, 2026
…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>
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