Skip to content

Settle the newsletter signup into the page rhythm - #161

Merged
YurMil merged 1 commit into
mainfrom
fix/newsletter-slim-strip
Aug 5, 2026
Merged

Settle the newsletter signup into the page rhythm#161
YurMil merged 1 commit into
mainfrom
fix/newsletter-slim-strip

Conversation

@YurMil

@YurMil YurMil commented Aug 5, 2026

Copy link
Copy Markdown
Owner

What changed

The newsletter signup on the home page no longer renders as a separate card. It is now a slim horizontal strip that matches the docs and support panels around it.

  • Width. The form was wrapped in an inline-styled <section> capped at 720px inside a 960px column, with an extra 2.5rem of top padding. That is what made it visibly narrower and detached from its neighbours. The wrapper is gone; SubscribeForm is a direct child of main and inherits the same column (all five blocks measure 912px).
  • Layout. One row: copy on the left, field and button on the right, wrapping to two rows below 700px.
  • Theming. Surface, border and the light-theme override are taken from SupportSection, so the computed background, border colour and radius are identical to the adjacent panel in both themes.
  • Height. The consent sentence — most of the old height — now unfolds on first focus of the field and remains available to screen readers through aria-describedby. Resting height went from roughly 200px to 86px.
  • Button. It carried className="button primary"; primary is not an Infima modifier, so it rendered essentially unstyled. Now button button--primary button--sm, matching every other button on the site.
  • i18n. The newsletter.eyebrow string duplicated the heading and is no longer rendered, so the key is removed from all six locales.

Why

Reported visually: the signup stood out from the surrounding sections and was too heavy for an optional action.

Verification

tsc --noEmit clean, npm run build passes. Checked against the production build served locally:

  • Newsletter form and support section report the same computed background-color, border-color and border-radius in dark (rgba(255,255,255,0.02) / rgba(255,255,255,0.1)) and light (rgba(255,255,255,0.9) / rgba(15,23,42,0.16)).
  • Bar height 86px at rest, 128px once consent unfolds.
  • At 375px: no horizontal overflow, field font-size 16px so iOS does not zoom on focus.

No screenshot is attached — the browser pane was not compositing in this environment, so verification was done through computed styles and element geometry rather than pixels.

Note for the reviewer, unrelated to this change

npm start fails in a fresh checkout with TypeError: pathRegexp is not a function from express@4.22.2 inside webpack-dev-server. It predates this branch and does not affect npm run build, but the dev server is currently unusable and probably wants a dependency refresh.

🤖 Generated with Claude Code

The signup was capped at 720px inside a 960px column, so it sat narrower
than the docs and support panels above and below it and read as a
foreign block wedged between them. It was also the tallest thing on that
stretch of the page for an optional action, and its button carried a
"primary" class that Infima does not define, so it rendered unstyled.

Drop the inline width cap and let the form be a direct child of main, so
it inherits the same column as its neighbours. Lay it out as one
horizontal strip -- copy on the left, field and button on the right --
and take the surface, border and light-theme treatment straight from
SupportSection so the three blocks read as one family in both themes.

The consent sentence is the bulk of the old height, and it only matters
to someone about to submit: it now unfolds on the first focus of the
field and stays reachable to screen readers via aria-describedby, which
keeps the resting state a single line.

The eyebrow duplicated the heading in a smaller font, so it goes, along
with its now-dead key in all six locales.

Verified against a production build: identical computed background,
border and radius to the adjacent support panel in dark and light, no
horizontal overflow at 375px, and a 16px field so iOS does not zoom.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@supabase

supabase Bot commented Aug 5, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project bkcimygtsnckzexbfqxh because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cadautoscript-com Ready Ready Preview Aug 5, 2026 11:10am

@YurMil
YurMil merged commit 66e00a6 into main Aug 5, 2026
8 checks passed
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