mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-08-24 23:32:19 +10:00
fix(fonts): restore legacy local font names via metric-compatible ali… (#3057)
* fix(fonts): restore legacy local font names via metric-compatible aliases Closes #2989. In v5.0.x the Puppeteer renderer resolved fonts like 'Times New Roman' or 'Arial' through the browser's font stack. The v5.1 migration to @react-pdf/renderer requires every font to be Font.register()-ed; the legacy local-font names were not carried over, so resumes upgraded from v5.0.x had their typography silently replaced with IBM Plex Serif, changing line breaks, page counts and overall layout. This adds a render-time alias layer mapping the old names to metric-compatible web fonts already shipped in the webfont list: Times New Roman → Tinos Cambria → Tinos Arial → Arimo Garamond → EB Garamond Calibri → Source Sans 3 - packages/fonts: - new `legacyFontAliases` map and `resolveLegacyFontAlias` helper. - `getFont` falls back to the alias map when the direct lookup misses, so any caller that asked 'is this a known family?' now answers truthfully for the legacy names. - `getFontDisplayName` is intentionally unchanged: the typography sidebar keeps showing the user's original choice ('Times New Roman'), while the renderer transparently swaps in the alias target. - packages/pdf/use-register-fonts: - `resolvePdfFontFamily` returns the alias target when one applies, so `Font.register` runs against the right web font and templates receive a family name they can actually render. Backwards compatible: families that were never aliased (Roboto, IBM Plex Serif, the standard PDF fonts, ...) take exactly the same code path as before. The CJK glyph fallback added in #2986 / PR #3013 continues to apply on top of the resolved primary family. * fix(fonts): use Carlito (not Source Sans 3) as Calibri alias Per maintainer review feedback: Carlito is metric-compatible with Calibri, while Source Sans 3 only matches visually. Switching gives upgraded resumes the same line widths, line breaks and page counts they had under v5.0.x. - packages/fonts/webfontlist.json: add Carlito (Google Fonts, weights 400/700 + italics) so it's a registerable target. - packages/scripts/fonts/generate.ts: add a getMetricCompatibleFonts helper and merge it into the output, mirroring how Computer Modern fonts are appended. This way regenerating the list (`pnpm generate`) re-emits Carlito automatically and dedupes if it ever enters the Google Fonts popularity slice. - packages/fonts/src/index.ts: alias `Calibri → Carlito`. - packages/fonts/src/index.test.ts: update alias test cases.
This commit is contained in:
@@ -7509,5 +7509,18 @@
|
||||
"weights": ["400"],
|
||||
"preview": "https://fonts.gstatic.com/s/secularone/v14/8QINdiTajsj_87rMuMdKyqDkOO0.ttf",
|
||||
"files": { "400": "https://fonts.gstatic.com/s/secularone/v14/8QINdiTajsj_87rMuMdKypDlMul7LJpK.ttf" }
|
||||
},
|
||||
{
|
||||
"type": "web",
|
||||
"category": "sans-serif",
|
||||
"family": "Carlito",
|
||||
"weights": ["400", "700"],
|
||||
"preview": "https://fonts.gstatic.com/s/carlito/v4/3Jn9SDPw3m-pk039DDeBSQ.ttf",
|
||||
"files": {
|
||||
"400": "https://fonts.gstatic.com/s/carlito/v4/3Jn9SDPw3m-pk039DDeBSQ.ttf",
|
||||
"700": "https://fonts.gstatic.com/s/carlito/v4/3Jn4SDPw3m-pk039BIykWXolVg.ttf",
|
||||
"400italic": "https://fonts.gstatic.com/s/carlito/v4/3Jn_SDPw3m-pk039DDKxTl0F.ttf",
|
||||
"700italic": "https://fonts.gstatic.com/s/carlito/v4/3Jn6SDPw3m-pk039DDK59XgVUcBD.ttf"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user