4.2 KiB
Typography & Proportion Fix Pass — refer_landing_page
Task: t_612a91e3
Date: 2026-06-16
Scope: issues #6, #7, #10, #11, #13, #17 from docs/LAYOUT_AUDIT.md.
(Items #1, #2, #3, #5, #8, #9 are handled by the sibling pass.)
Files changed (5)
| File | Change |
|---|---|
tailwind.config.ts |
display cap 9rem → 7rem; display-sm cap 4.5rem → 3.75rem. |
components/PageHeader.tsx |
h1: text-4xl sm:text-5xl lg:text-6xl → text-3xl sm:text-4xl lg:text-5xl + break-keep + text-balance; display paragraph switches between display and display-sm based on whether the optional display prop is set. |
app/globals.css |
.corner-label: text-sm → text-base. |
components/Counter.tsx |
Added optional static prop (skips IntersectionObserver; renders value as plain text). |
app/intro/page.tsx |
figures entries now carry size + static; the 2026 year is static: true, size: "display-sm"; Counter invocation wires both through. |
Catalogue issues resolved
- #6 (Korean h1 no
break-keep) — fixed:break-keep+text-balanceadded to<h1>in PageHeader. Korean titles now break only at spaces, and multi-line wrap is balanced. - #7 (intro "Standards" overflows col-span-7 at 1280+) — fixed:
displaycap reduced from 9rem to 7rem. "Standards" at 7rem Fraunces ≈ 595px wide; col-span-7 ≈ 720px → fits with margin. Also bumps the intro cover scale down a step to match the rest of the page. - #10 (PageHeader
displayfallback uses longenat 9rem) — fixed: whendisplayprop is absent, the fallback now usesdisplay-sm(3.75rem cap) so "Standardization" (14 chars) and "Publications" (12 chars) never overflow the col-span-8 column. - #11 (Counter year
2026ticks 0→2026) — fixed:Countergained astaticprop;app/intro/page.tsxsetsstatic: truefor the year entry, so it renders as static text on first paint with no observer / animation. - #13 (Counter cards different magnitudes) — fixed: the year is now
display-sm(3.75rem) while2and4stay at fulldisplay(7rem). The 4-digit "2026" no longer pushes cell padding; visual weight is now balanced. - #17 (SectionLabel
text-smtoo small) — fixed:.corner-labelbumped fromtext-sm(14px) totext-base(16px) so the "01 / 05" spread number reads as page furniture, not body copy.
Catalogue items deliberately not addressed in this pass
- #12 (publications list rail) — audit marked it "Verified fine; no fix".
- #16 (Header
h-[4.25rem]arbitrary) — header height is not a typography concern; sibling pass may review.
Verification
npx tsc --noEmit— passes (zero errors).npx next build— passes (all 5 routes static; 8/8 static pages generated; sizes match previous build).- Dev server (port 4510) —
/intro,/members,/publicationsall return 200 with current edits in place. - Production CSS verified to contain new
clamp(2.75rem, 9vw, 7rem)for.text-display(wasclamp(3rem, 10vw, 9rem)).
Rationale for the font-size scale (kept consistent)
The editorial system has two display scales — display (cover, magazine-spread) and display-sm (headline, secondary). Previously:
displayclamp(3rem, 10vw, 9rem) line-height 0.92display-smclamp(2.25rem, 6vw, 4.5rem) line-height 0.98
The 9rem cap and 0.92 line-height were tuned for a much larger column / longer headlines than the col-span-7/8 grids actually deliver. After the audit's 1280+ overflow math, the upper cap needed to come down. The new pair:
displayclamp(2.75rem, 9vw, 7rem) line-height 0.95display-smclamp(2rem, 5.5vw, 3.75rem) line-height 1.02
The 2:1 ratio between display and display-sm (was 2:1, still 2:1) and the reduced 0.95 / 1.02 line-heights give a slightly airier feel that matches the rest of the editorial type stack. The h1 in PageHeader also stepped down one notch (5xl → 4xl lg) for the same reason — a 6xl Korean h1 was a stretched-out 60px serif dominating the col-span-8 unnecessarily.
Regressions introduced
None verified at the source level. The static prop on Counter is opt-in (default false), so other pages' Counters (members figures, publications figures, standardization figures) are unchanged in behavior.