Skip to content

Commit cbec613

Browse files
authored
fix(webapp): fix promo page heading typography (#4311)
## What The `/promo` page heading rendered with overlapping lines — the two lines of "Promo codes are for new accounts" collided. ## Why The page used `Header2` stretched to display sizes (`sm:text-2xl md:text-3xl lg:text-4xl`), but `Header2` bakes in a fixed `leading-6` (24px). A 36px font in a 24px line box makes wrapped lines overlap. It only showed at `sm`+ widths and only on headings that wrap to 2+ lines, which is why it slipped through — the short single-line headings on the same page looked fine. ## Fix Switch both headings to `Header1` — the page-title primitive the sibling login pages (`login._index`, `login.magic`) already use for exactly this size. Add `leading-tight` (relative line-height, scales with font size, and this heading uniquely wraps to two lines) and `pb-4` to match the login pages' spacing convention. ## Testing Manually verified the signed-in view (`/promo` while logged in) renders as two clean, non-overlapping lines across breakpoints. Pure CSS/layout change — no automated test.
1 parent 325b906 commit cbec613

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

apps/webapp/app/routes/promo.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { LoginPageLayout } from "~/components/LoginPageLayout";
88
import { Button, LinkButton } from "~/components/primitives/Buttons";
99
import { Callout } from "~/components/primitives/Callout";
1010
import { Fieldset } from "~/components/primitives/Fieldset";
11-
import { Header2 } from "~/components/primitives/Headers";
11+
import { Header1 } from "~/components/primitives/Headers";
1212
import { Paragraph } from "~/components/primitives/Paragraph";
1313
import { TextLink } from "~/components/primitives/TextLink";
1414
import { isGithubAuthSupported, isGoogleAuthSupported } from "~/services/auth.server";
@@ -139,9 +139,9 @@ export default function PromoPage() {
139139
<div className="flex w-full flex-col">
140140
{data.view === "signed_in" ? (
141141
<>
142-
<Header2 className="sm:text-2xl md:text-3xl lg:text-4xl" spacing>
142+
<Header1 className="pb-4 leading-tight sm:text-2xl md:text-3xl md:leading-tight lg:text-4xl lg:leading-tight">
143143
Promo codes are for new accounts
144-
</Header2>
144+
</Header1>
145145
<Paragraph variant="base" spacing>
146146
You're already signed in. Promo credits can only be added to a brand-new account.
147147
</Paragraph>
@@ -151,11 +151,11 @@ export default function PromoPage() {
151151
</>
152152
) : (
153153
<>
154-
<Header2 className="sm:text-2xl md:text-3xl lg:text-4xl" spacing>
154+
<Header1 className="pb-4 leading-tight sm:text-2xl md:text-3xl md:leading-tight lg:text-4xl lg:leading-tight">
155155
{data.view === "valid"
156156
? `Claim ${formatDollars(data.amountInCents)} credits`
157157
: "Create your account"}
158-
</Header2>
158+
</Header1>
159159
{data.view === "valid" ? (
160160
<Paragraph variant="base" spacing>
161161
These are only available for new accounts on the Free plan.

0 commit comments

Comments
 (0)