feat(apollo-core,apollo-wind): bundle Inter and wire it into the Future themes - #1108
Conversation
|
Apollo Coded App preview deployments are ready.
|
There was a problem hiding this comment.
🟢 Approval recommended
Pull request overview
Bundles the Inter variable font into apollo-core and wires the Future design language typography in apollo-wind to use it (with noto-sans retained as the CJK fallback), while removing the conflicting Google Fonts Inter import from Storybook so local fonts win.
Changes:
- apollo-core: Adds Inter (latin + latin-ext, upright + italic variable WOFF2) to the shipped font assets and generates corresponding
@font-facerules plus a.tk-interhelper. - apollo-wind: Updates Future theme CSS to set
--font-sansand route the Future sans typography tokens to it, plus setsfont-familyon the Future theme block to ensure the override applies when the theme class is not on:root. - Storybook: Stops loading Inter from Google Fonts (keeps JetBrains Mono via CDN).
File summaries
| File | Description |
|---|---|
| packages/apollo-wind/src/styles/tailwind.consumer.test.ts | Adds assertions that Future theme typography tokens are declared and monospace tokens are not touched. |
| packages/apollo-wind/src/styles/tailwind.consumer.css | Declares Future typography variables (--font-sans + related sans tokens) and sets font-family for Future theme blocks. |
| packages/apollo-wind/src/foundation/Future/typography.ts | Updates Future typography token font stacks to Inter, noto-sans, system-ui, sans-serif. |
| packages/apollo-core/src/fonts/font.css | Regenerates the checked-in minified font CSS artifact to include Inter faces and .tk-inter. |
| packages/apollo-core/src/fonts/font.base-css | Adds Inter variable @font-face declarations (latin + latin-ext, upright + italic) and .tk-inter. |
| apps/storybook/.storybook/main.ts | Removes Google Fonts Inter import so Storybook uses the locally shipped Inter from apollo-core. |
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 5/10 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Dependency License Review
License distribution
Excluded packages
|
Storybook visual diffBaseline is the deployed main Storybook, so changes merged to main after this branch was last updated can also appear here. Logs Updated (PT): Sep 02, 2026, 04:52:30 PM |
📊 Coverage + size by packagePer-package coverage and bundle size on this PR. New-line coverage = of the source lines this PR adds or changes, the % hit by tests.
"Coverage" is each package's own |
📦 Dev Packages🧹 Dev packages cleaned up after PR close. Last updated: 2026-09-02 17:53:15 PT |
287990b to
5f95df0
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The functional changes are straightforward and covered by targeted tests; only a minor in-code specificity comment needs correction.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 5/10 changed files
- Comments generated: 1
- Review effort level: Lite
Adds Inter as a variable woff2 (wght 100-900) in upright and italic for the latin and latin-ext subsets, with matching @font-face entries and a .tk-inter helper. Inter is the base family of the Future design language but had no font behind it. The stack must keep chaining to noto-sans for CJK coverage. Refs MST-14539 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
5f95df0 to
3c713a2
Compare
There was a problem hiding this comment.
🟡 Changes recommended
A newly added unit test depends on a hard-coded per-package node_modules path for apollo-core tokens, which is brittle and may fail under different pnpm/node-linker layouts.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 7/12 changed files
- Comments generated: 1
- Review effort level: Lite
3c713a2 to
778bfaf
Compare
778bfaf to
7326ada
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
It introduces new font binaries and changes a theme-wide font stack with broad visual impact, which warrants final human verification (screenshots/visual regression and licensing review).
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 7/12 changed files
- Comments generated: 2
- Review effort level: Lite
7326ada to
2475daa
Compare
3af4b0e to
864119c
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The new Future typography tests can throw type errors when the CSS block isn’t found (instead of failing cleanly), which should be made robust before merging.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 12/17 changed files
- Comments generated: 1
- Review effort level: Lite
864119c to
f313f4c
Compare
There was a problem hiding this comment.
🟡 Changes recommended
A newly added monospace stack comment in packages/apollo-wind/src/foundation/Future/typography.ts is contradictory/misleading about whether a bundled monospace webfont exists and should be reworded for accuracy.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 12/17 changed files
- Comments generated: 1
- Review effort level: Lite
f313f4c to
651c9ec
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The changes consistently wire Inter into the Future themes with appropriate fallbacks and add targeted tests/documentation to prevent regressions.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 12/17 changed files
- Comments generated: 0 new
- Review effort level: Lite
651c9ec to
11ac59a
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The changes are consistent across CSS tokens, TS typography constants, and Storybook consumption, and are backed by targeted regression tests for the Future theme typography contract.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 12/17 changed files
- Comments generated: 0 new
- Review effort level: Lite
11ac59a to
7ca117f
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The changes are cohesive and well-tested; only minor maintainability concerns were identified around referencing a non-bundled font family name in the stack.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 13/18 changed files
- Comments generated: 2
- Review effort level: Lite
The .future-dark / .future-light blocks defined colours only, so the Future
design language rendered whatever Tailwind's default --font-sans resolved to.
Point --font-sans, --font-normal, --font-title and the 22 sans --font-*-family
tokens at Inter (shipped by apollo-core). Inter has no CJK and noto-sans is
Latin-only, so the four bundled Noto CJK families are chained explicitly to
keep ja/ko/zh resolving.
Also set font-family on the theme root, in a rule with the theme class
repeated. Preflight resolves --default-font-family at :root, so overriding
--font-sans alone would miss a theme class placed lower in the tree. The
repetition raises specificity past (0,1,1): apollo's legacy Angular Material
bundle injects `body.apollo-design, .apollo-design { font-family: noto-sans,
... }` at runtime, which ties on specificity and wins on source order.
Future/typography.ts carries the same chain, asserted against the CSS by
tailwind.consumer.test.ts so the two cannot drift. The sans-token test now
derives the token list from apollo-core, so a new token there fails here
instead of silently keeping the old stack.
Storybook no longer pulls Inter from the Google CDN, and the apollo-wind
README states that consumers must import apollo-core's font stylesheet.
Mono tokens are untouched.
Refs MST-14539
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
7ca117f to
2a6a55a
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The font bundling + Future theme stack changes are internally consistent, covered by targeted tests, and Storybook consumption is updated to avoid CDN Inter usage.
Review details
Files not reviewed (1)
- packages/apollo-core/src/fonts/font.css: Generated file
- Files reviewed: 13/18 changed files
- Comments generated: 0 new
- Review effort level: Lite
Ships Inter locally and points the Future design language at it.
Demo
Look at the sbdiff report for more details: https://engdogfood.staging.uipath.host/apollo-design-diff-pr-1108/
Screen.Recording.2026-09-02.at.2.56.22.PM.mov
Example of
Interconsumption in Flow: https://github.com/UiPath/flow-workbench/pull/3578Font stack
Inter has no CJK coverage. Chaining rather than replacing keeps per-glyph fallback resolving
ja,ko,zh-CNandzh-TWfrom the Noto faces apollo-core already ships. Replacing Noto outright would silently drop those locales to OS fonts.Verification
Storybook, driven through Playwright:
future-dark, computed font family isInter, noto-sans, system-ui, sans-serifand the only Inter requests are toapollo-core/dist/fonts/inter/*.woff2. No gstatic Inter.document.fonts.check('italic 16px Inter')after an explicit load.light, nothing changed: Tailwind's default stack onbody,--font-normalstill Noto.Four assertions added to
tailwind.consumer.test.tscover the token declarations, the mono exclusion, and thefont-familyline. 16 of 16 pass, tsc clean.