From 80ad68c6404cd1e7074c8d716630800b2de7a1d0 Mon Sep 17 00:00:00 2001 From: vickydotbat Date: Sat, 18 Jul 2026 09:43:08 +0200 Subject: [PATCH 1/2] fix: wiki index no longer bumps right; harden Harmony Inter/Poppins fonts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #30 — namespace index / section listing pages had their heading, lead, and page list pushed into a narrow centered column with a big left gutter. The listing card reuses the .wiki-article-prose class, so the article-body reading treatment leaked onto it: the wiki plugin caps prose children at --wiki-prose-measure (54rem) and the theme margin-inline:autos them. Opt the .wiki-namespace-index card out of that measure/centering so the listing runs full-width and left-aligned. Verified with a before/after render of the real section markup against the compiled CSS. Inter 404 (sow-nodebb#13) — Harmony emits Inter/Poppins @font-face at our asset path and points its sans/secondary font vars at them, but we ship Jost + Cinzel and declare no @fontsource/inter|poppins dep, so those URLs 404 in production (they only resolve in dev via npm hoisting). Pin the Harmony rules that read those vars directly (.ff-sans, .ff-secondary, breadcrumb divider) to our fonts so nothing can request Inter/Poppins, and drop the two dead staticDirs. The live 404 clears once the nodebb image is rebuilt from current theme main. Co-Authored-By: Claude Opus 4.8 (1M context) --- plugin.json | 2 -- scss/westgate/_tokens.scss | 28 ++++++++++++++++++++++++++++ scss/westgate/_wiki-prose.scss | 15 +++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/plugin.json b/plugin.json index d09231c..807500a 100644 --- a/plugin.json +++ b/plugin.json @@ -20,8 +20,6 @@ "../client/account/theme.js": "../nodebb-theme-harmony/public/settings.js" }, "staticDirs": { - "inter": "node_modules/@fontsource/inter/files", - "poppins": "node_modules/@fontsource/poppins/files", "fonts": "public/fonts", "game-icons": "public/game-icons", "images": "public/images" diff --git a/scss/westgate/_tokens.scss b/scss/westgate/_tokens.scss index 37c10ca..cf1deab 100644 --- a/scss/westgate/_tokens.scss +++ b/scss/westgate/_tokens.scss @@ -125,3 +125,31 @@ background: rgba(194, 163, 90, 0.32); color: #fff4dd; } + +/* Harmony base-theme font correction. + Harmony generates @font-face for Inter/Poppins at our asset path and points + $font-family-sans-serif -> "Inter" and $font-family-secondary -> "Poppins" + in its own overrides.scss. We ship Jost + Cinzel, not those families, and do + not declare @fontsource/inter|poppins as deps -- so any element that resolves + to Inter/Poppins 404s in production on /assets/plugins/nodebb-theme-westgate/ + inter/... (it only happens to resolve in dev via npm hoisting). Our BS-variable + override already keeps the current cascade on Jost, but that hinges on subtle + import order; pin the handful of Harmony rules that read those SCSS variables + directly (.ff-sans, .ff-secondary, the breadcrumb divider) to our own fonts so + nothing can request Inter/Poppins even if a Harmony bump flips the order. The + now-pointless inter/poppins staticDirs are removed from plugin.json alongside. */ +.ff-sans { + font-family: var(--wg-font-ui) !important; +} + +.ff-secondary { + font-family: var(--wg-font-display); +} + +.breadcrumb .breadcrumb-item { + font-family: var(--wg-font-display); +} + +.breadcrumb .breadcrumb-item::before { + font-family: var(--wg-font-ui); +} diff --git a/scss/westgate/_wiki-prose.scss b/scss/westgate/_wiki-prose.scss index f098f02..954f192 100644 --- a/scss/westgate/_wiki-prose.scss +++ b/scss/westgate/_wiki-prose.scss @@ -232,6 +232,21 @@ text-align: justify; } +/* The namespace index / section listing card reuses .wiki-article-prose for + its card chrome, but its body is a directory listing, not reading prose. + Opt it out of the centered reading measure: the wiki plugin caps prose + children at --wiki-prose-measure and the rule above margin-inline:autos + them, which pins the heading, lead, and page list into a narrow centered + column with a big left gutter (#30). Let the listing run full-width, left. */ +.westgate-wiki .wiki-namespace-index :where(p, ul, ol, h1, h2, h3, h4, h5, h6) { + margin-inline: 0; + max-width: none; +} + +.westgate-wiki .wiki-namespace-index :where(p, li, blockquote) { + text-align: start; +} + .westgate-wiki .card.wiki-card:hover, .westgate-wiki .card.wiki-topic-card:hover { background: var(--wg-velvet-panel-hover) !important; -- 2.54.0 From 10493f692b366d3dff8f18525e06931892d39719 Mon Sep 17 00:00:00 2001 From: vickydotbat Date: Sat, 18 Jul 2026 10:44:13 +0200 Subject: [PATCH 2/2] fix: align topbar unread badge with the notification/chat badges (#33) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The unread count sat as a static inline pill that floated low and to the right of the inbox icon, not matching the corner-anchored badges on the notification and chat icons next to it. Mirror Harmony's notification markup — wrap the icon and count in an inline position-relative span and position the badge with top-0/start-100/translate-middle — so the unread bubble tucks into the icon corner at the same height as its neighbours. Verified in the dev forum: the unread and notification badges now share the same size, shape, and vertical position. Co-Authored-By: Claude Opus 4.8 (1M context) --- templates/partials/header/unread-drawer.tpl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/templates/partials/header/unread-drawer.tpl b/templates/partials/header/unread-drawer.tpl index 54b1b7a..dba6501 100644 --- a/templates/partials/header/unread-drawer.tpl +++ b/templates/partials/header/unread-drawer.tpl @@ -1,6 +1,8 @@ -