Three theme fixes, bundled into one branch since we squash-merge.
#30 — index/section pages bump all text to the right
The namespace-index / section listing card carries the wiki-article-prose class, so the article-body reading measure leaked onto it: the wiki plugin caps prose children at --wiki-prose-measure (54rem) and the theme margin-inline:autos them, pinning the Articles heading, lead, and page list into a narrow centered column with a big left gutter. Fix: opt .wiki-namespace-index descendants out of that measure/centering (full-width, left-aligned). Verified with a before/after render of the real section markup against the compiled CSS.
Inter 404 (sow-nodebb#13), theme side
Harmony generates Inter/Poppins @font-face at our asset path and points its font variables 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). Current theme source already renders everything in Jost (verified in compiled CSS), so the reported production 404 is a stale build — it clears once the nodebb image is rebuilt from current theme main. This PR makes it robust: pins the Harmony rules that read those vars (.ff-sans, .ff-secondary, breadcrumb divider) to our fonts, and removes the two dead staticDirs.
#33 (part 1) — topbar unread badge didn't match its neighbours
The unread count was a static inline pill floating low/right of the inbox icon, unlike the corner-anchored badges on the notification and chat icons. Mirrored Harmony's notification markup (inner position-relative span + top-0/start-100/translate-middle) so the unread bubble tucks into the icon corner at the same size, shape, and height. Verified: unread and notification badges now sit identically (measured top/bottom match to the pixel).
The other half of #33 — the "dropdown doesn't work" report — is not included: I couldn't reproduce it on a current build (the custom unread drawer opens and lists topics on both /categories and /wiki), so it looks like the same stale-deploy story. Left open in #33 pending a repro on a fresh build before deciding whether to swap it for NodeBB's Notifications "Unread" view.
Closes #30. Addresses ShadowsOverWestgate/sow-nodebb#13 (theme-side). Partially addresses #33 (badge).
Three theme fixes, bundled into one branch since we squash-merge.
### #30 — index/section pages bump all text to the right
The namespace-index / section listing card carries the `wiki-article-prose` class, so the article-body **reading measure** leaked onto it: the wiki plugin caps prose children at `--wiki-prose-measure` (54rem) and the theme `margin-inline:auto`s them, pinning the *Articles* heading, lead, and page list into a narrow centered column with a big left gutter. Fix: opt `.wiki-namespace-index` descendants out of that measure/centering (full-width, left-aligned). **Verified** with a before/after render of the real section markup against the compiled CSS.
### Inter 404 (sow-nodebb#13), theme side
Harmony generates Inter/Poppins `@font-face` at our asset path and points its font variables 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). Current theme source already renders everything in Jost (verified in compiled CSS), so the reported production 404 is a **stale build** — it clears once the nodebb image is rebuilt from current theme main. This PR makes it robust: pins the Harmony rules that read those vars (`.ff-sans`, `.ff-secondary`, breadcrumb divider) to our fonts, and removes the two dead staticDirs.
### #33 (part 1) — topbar unread badge didn't match its neighbours
The unread count was a static inline pill floating low/right of the inbox icon, unlike the corner-anchored badges on the notification and chat icons. Mirrored Harmony's notification markup (inner `position-relative` span + `top-0/start-100/translate-middle`) so the unread bubble tucks into the icon corner at the same size, shape, and height. **Verified**: unread and notification badges now sit identically (measured top/bottom match to the pixel).
The other half of #33 — the "dropdown doesn't work" report — is **not** included: I couldn't reproduce it on a current build (the custom unread drawer opens and lists topics on both `/categories` and `/wiki`), so it looks like the same stale-deploy story. Left open in #33 pending a repro on a fresh build before deciding whether to swap it for NodeBB's Notifications "Unread" view.
### Notes
- SCSS + templates + `plugin.json` only; no JS behavior change. `./nodebb build` compiles clean.
- Pre-existing impeccable design-drift findings in touched files are unrelated to this diff and left as-is.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
#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) <noreply@anthropic.com>
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) <noreply@anthropic.com>
archvillainette
changed title from Wiki index right-shift (#30) + harden Harmony Inter/Poppins fonts to Theme fixes: wiki index shift (#30), Inter/Poppins fonts (sow-nodebb#13), unread badge (#33)2026-07-18 08:44:53 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #30. Addresses ShadowsOverWestgate/sow-nodebb#13 (theme-side). Partially addresses #33 (badge).
Three theme fixes, bundled into one branch since we squash-merge.
#30 — index/section pages bump all text to the right
The namespace-index / section listing card carries the
wiki-article-proseclass, so the article-body reading measure leaked onto it: the wiki plugin caps prose children at--wiki-prose-measure(54rem) and the thememargin-inline:autos them, pinning the Articles heading, lead, and page list into a narrow centered column with a big left gutter. Fix: opt.wiki-namespace-indexdescendants out of that measure/centering (full-width, left-aligned). Verified with a before/after render of the real section markup against the compiled CSS.Inter 404 (sow-nodebb#13), theme side
Harmony generates Inter/Poppins
@font-faceat our asset path and points its font variables at them, but we ship Jost + Cinzel and declare no@fontsource/inter|poppinsdep, so those URLs 404 in production (they only resolve in dev via npm hoisting). Current theme source already renders everything in Jost (verified in compiled CSS), so the reported production 404 is a stale build — it clears once the nodebb image is rebuilt from current theme main. This PR makes it robust: pins the Harmony rules that read those vars (.ff-sans,.ff-secondary, breadcrumb divider) to our fonts, and removes the two dead staticDirs.#33 (part 1) — topbar unread badge didn't match its neighbours
The unread count was a static inline pill floating low/right of the inbox icon, unlike the corner-anchored badges on the notification and chat icons. Mirrored Harmony's notification markup (inner
position-relativespan +top-0/start-100/translate-middle) so the unread bubble tucks into the icon corner at the same size, shape, and height. Verified: unread and notification badges now sit identically (measured top/bottom match to the pixel).The other half of #33 — the "dropdown doesn't work" report — is not included: I couldn't reproduce it on a current build (the custom unread drawer opens and lists topics on both
/categoriesand/wiki), so it looks like the same stale-deploy story. Left open in #33 pending a repro on a fresh build before deciding whether to swap it for NodeBB's Notifications "Unread" view.Notes
plugin.jsononly; no JS behavior change../nodebb buildcompiles clean.🤖 Generated with Claude Code
Wiki index right-shift (#30) + harden Harmony Inter/Poppins fontsto Theme fixes: wiki index shift (#30), Inter/Poppins fonts (sow-nodebb#13), unread badge (#33)