fix: UX Core consolidation regressions (navbar / fonts / bias-modal backdrop / context provider)#113
Merged
MaryWylde merged 5 commits intoMay 15, 2026
Conversation
Post-consolidation regression: every page was wrapped in @layouts/Layout (keepsimple parent Header), including /uxcore /uxcg /uxcat /uxcp /uxcore-api. UX Core has its own @uxcore/layouts/Layout (ToolHeader + UX Core nav) that was never reached. Switch on router.pathname inside _app.tsx: UX Core routes mount UX Core's Layout, everything else continues to mount keepsimple's Layout. No deeper context bridge yet; the safe-default Proxy on the UX Core GlobalContext keeps ToolHeader rendering even without a real Provider. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
UXCoreOSS shipped its own globals.scss that declared the UX Core-specific
fonts (Lato, IBM Plex Mono, Oswald, RedHatDisplay, DelaGothicOne,
Manrope, IBMPlexSans, NotoSansArmenian, Cormorant-Garamond-Medium) and
set Lato as the global default via `* { font-family: 'Lato' }`. After the
consolidation, _app.tsx only imports the keepsimple globals.scss — so UX
Core fonts never load on /uxcore /uxcg /uxcat /uxcp /uxcore-api and the
default cascades to keepsimple's Source-Serif. Result: visible font
breakage vs production.
Extract the missing @font-face rules into uxcore-fonts.scss and gate the
Lato default behind `body.uxcorePage` (toggled in _app.tsx based on
route) so keepsimple pages keep their Source-Serif default.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bias-detail pages render UXCoreLayout (hexagon backdrop, sidebar) only when biases[locale] is truthy. Before this change they read biases from useContext(GlobalContext); but the consolidated _app.tsx never wraps the UX Core tree in a real Provider — the context defaults to the safe-Proxy that returns null for everything. So uxCoreData stayed null, biases stayed [], and the layout never rendered. Visible effect on DEV/Staging: the bias modal opens over a grey backdrop with no hexagon, sidebar, or footer (PROD still has them because it served UXCoreOSS as a standalone app with its own Provider). Mirror the pattern already used by /uxcore/index.tsx: fetch strapiBiases in getStaticProps and pass them as a `biases` prop. Drop the useContext-derived biases state. /uxcg/[slug] had the same dependency on uxCoreData; fixed the same way. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
….tsx UX Core code reads accountData, uxcatUserInfo, ourProjectsModalData and several setters from useContext(GlobalContext). Post-consolidation those reads hit the safe-default Proxy and returned null/noop — visible fallout: OUR PROJECTS rendered as Disabled (`!ourProjectsModalData`), ToolHeader showed no avatar, UXCAT user state was unreachable, and a few UXCAT/profile pages stayed half-rendered. Wrap the UX Core branch of _app.tsx in UXCoreGlobalContext.Provider with: - accountData / setAccountData / setToken bridged from the existing keepsimple state (single source of auth truth) - uxcatUserInfo, selectedTitle, updatedUsername state + setters - ourProjectsModalData fetched once from getOurProjects(locale) on entry to a UX Core route, refetched when locale changes - uxCoreData / uxcgLocalizedData / uxcgData kept null here; pages that need the heavy Strapi payloads (already fetched in getStaticProps) continue to take them as props (mirrors /uxcore/[slug] fix) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
MaryWylde
requested changes
May 15, 2026
| @@ -0,0 +1,90 @@ | |||
| // UX Core @font-face declarations + scoped default. | |||
Contributor
There was a problem hiding this comment.
This is an unnecessary duplication of keeping fonts in different files. All font families are stored in globals.scss.
Per review on #113: the UX Core font declarations + the scoped body.uxcorePage default no longer live in a sibling stylesheet. The @font-face block and the body.uxcorePage Lato fallback move into src/styles/globals.scss, the separate src/uxcore/styles/uxcore-fonts.scss is deleted, and the extra import in _app.tsx is dropped. The body.uxcorePage rule stays placed AFTER the global `*` selector so specificity still wins over the Source-Serif default. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
MaryWylde
approved these changes
May 15, 2026
3b8c394
into
archive/pre-uxc-consolidation-fixes
2 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four commits stacking on top of the UX Core consolidation, restoring parity with prod on /uxcore, /uxcg, /uxcat, /uxcp, /uxcore-api.
Commits
Visible regressions fixed
Test plan