Theme fixes: wiki index shift (#30), Inter/Poppins fonts (sow-nodebb#13), unread badge (#33) #32

Merged
archvillainette merged 2 commits from fix/wiki-index-shift-and-inter-font into main 2026-07-18 12:33:57 +00:00
Owner

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: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.

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

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)
archvillainette added 1 commit 2026-07-18 07:43:39 +00:00
#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>
archvillainette added 1 commit 2026-07-18 08:44:15 +00:00
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
archvillainette scheduled this pull request to auto merge when all checks succeed 2026-07-18 12:04:12 +00:00
xtul approved these changes 2026-07-18 12:33:55 +00:00
archvillainette merged commit 80e811e3b0 into main 2026-07-18 12:33:57 +00:00
archvillainette deleted branch fix/wiki-index-shift-and-inter-font 2026-07-18 12:33:58 +00:00
Sign in to join this conversation.