Skip to content

fix(public): stop the homepage intake form squeezing its inputs at tablet width - #59

Closed
nish3451 wants to merge 15 commits into
mainfrom
fix/lead-form-tablet-squeeze
Closed

fix(public): stop the homepage intake form squeezing its inputs at tablet width#59
nish3451 wants to merge 15 commits into
mainfrom
fix/lead-form-tablet-squeeze

Conversation

@nish3451

@nish3451 nish3451 commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

The finding

The homepage intake form (form.lead.two) squeezed the domain and email inputs to ~100px at tablet width.

Root cause: the form shares the .lead class with the checks-section header. The header's gap:70px / justify-content:space-between / align-items:flex-end treatment (an unscoped .lead selector) leaked onto the form. Combined with the nowrap submit button ("Show me where our site undersells us", 294px), the inputs starved:

Viewport unfixed inputs fixed inputs
761px 99 / 98px 623 / 623px (stacked)
768px 103 / 102px 630 / 630px (stacked)
900px 139 / 138px 762 / 762px (stacked)
1024px 139 / 138px 209 / 208px (one line)
1280px 139 / 138px 209 / 208px (one line)

The "yourwebsite.com" placeholder (needs ~140px of text area) was clipped at every width ≥761px before the fix, including desktop.

The fix

  1. public/index.css — scope the checks-header rules to .checks .lead (desktop + mobile), so the shared class can't leak onto the form. The two-field form's stacked breakpoint moves from 760px to its own max-width:900px with an explicit gap:18px (previously inherited from the leak). Tablet widths now stack full-width; ≥901px keeps the one-line pill with 208px inputs — matching the identical /audit form, which never had the leak.
  2. scripts/check-site.mjs — static source guards pinning the scoping, the 900px breakpoint, the explicit gap, and refusal of a 760px stacking breakpoint.
  3. docs/evidence/lead-form-tablet-squeeze-2026-08-10.md — measured unfixed/fixed receipt (real Chromium, fonts loaded), including the mobile-neutrality (390px pixel-identical), checks-header neutrality, and no-overflow checks.

Verification

  • npm run check — passed (new guards included)
  • npm test — 82 tests across all 4 suites, 0 failures
  • npm run check:render-blocking — all six pages PASS
  • npx wrangler deploy --dry-run — OK

…blet width

The two-field lead form shares the .lead class with the checks-section
header, whose gap:70px / space-between / flex-end treatment leaked onto
the form and, together with the nowrap submit button, squeezed the
domain and email inputs to ~100px at tablet width (measured 99/98px at
761px, 103/102px at 768px — and never above 139px, with the
"yourwebsite.com" placeholder clipped, at any width). The checks-header
rules are now scoped to .checks .lead and the two-field form stacks
below its own 900px breakpoint with an explicit gap, so inputs are
full-width on tablets (761-900px) and >=208px in the one-line layout at
901px+, matching the /audit form. Mobile (<=390px) is pixel-identical.
Static source guards added to scripts/check-site.mjs and the measured
unfixed/fixed evidence recorded in
docs/evidence/lead-form-tablet-squeeze-2026-08-10.md.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai

coderabbitai Bot commented Aug 9, 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: 48 minutes

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?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4dd7266c-b64a-48e6-ad41-e460400637da

📥 Commits

Reviewing files that changed from the base of the PR and between 81fc379 and 4fb1d69.

📒 Files selected for processing (3)
  • docs/evidence/lead-form-tablet-squeeze-2026-08-10.md
  • public/index.css
  • scripts/check-site.mjs

Comment @coderabbitai help to get the list of available commands.

@nish3451 nish3451 closed this Aug 10, 2026
@nish3451 nish3451 reopened this Aug 10, 2026

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 46f96e6238

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


## Exact verification method (reproduce)

1. Copy `public/` to `fixed-site/` and serve it on 127.0.0.1:8131 (`python3 -m http.server 8131 --directory fixed-site`). Copy it again to `unfixed-site/` and overwrite `index.css` (and `index.html`, `index.js`, `fonts.js` for a clean tree) with their `origin/main` versions (`git show origin/main:public/index.css > unfixed-site/index.css`), then serve it on 127.0.0.1:8132.

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 Badge Pin the unfixed fixture to the parent commit

Once this change lands and origin/main advances, this command copies the fixed stylesheet into unfixed-site, so both servers render the same version and the documented before/after measurements can no longer be reproduced. Reference the reviewed commit's first parent (preferably its immutable hash) rather than the moving origin/main ref.

Useful? React with 👍 / 👎.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@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.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@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.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@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.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@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.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@nish3451

Copy link
Copy Markdown
Collaborator Author

Closing as the stale duplicate in the duplicate open-PR reconciliation (docs/evidence/duplicate-open-pr-clusters-2026-08-11): the identical fix already landed on main via the reprise PR #96 (merged 2026-08-11T02:30Z, commit 6f85c61), so this branch carries zero changes main lacks. This PR is conflict-locked against current main. #96 is the superior delivery path (fresh base, evidence receipt extended with the 2026-08-11 re-verification).

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