feat(theme): the real nav and footer, extracted from the design canvas #118
No reviewers
Labels
No labels
priority
P1
priority
P2
priority
P3
priority
P4
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Toilville/toilville-design!118
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/nav-and-footer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
parts/footer.htmlwas 134 bytes ofwp:spacer— no sitemap, no tagline, no copyright. Template parts sit outside the ForgeBlock pattern pipeline, so when the pre-split canvas was cut into per-page decks the chrome was dropped and every gate stayed green.Extracted, not re-authored. The canvas still had
<header>and<footer>intact. Both now come into the repo asToilvilleSiteChrome.dc.htmlso the extraction has a source that can be gated, and both parts carry 100% of its copy.header
Rituals · Spelwork · News, withContactas a pill.This replaces
wp:navigation {"ref":35}— a hard-coded nav-menu post id that exists on exactly one install and silently renders nothing anywhere else. Explicitnavigation-links need no menu to be created first.footer
The three-column sitemap (Product · Developers · Company), the tagline, the contact address and the copyright rule.
Tokenised, not transcribed
The design's
#4A443F,#A6432Band#C05734are exactlyneutral-warm-body,accent-ritualsandprimary. Its two near-identical muted greys both collapse toneutral-warm-muted; the 8%-ink hairlines become theborderpreset. No raw hex in either part.theme.jsongains adm-monofont family for the mono labels — the stack the blocks already use literally, with nofontFace, because the brand's mono voice degrades to Courier New rather than shipping a webfont for five footer labels.Why
wp:site-logoand not the newproduct-logoblockThe chrome should survive the plugin being deactivated, and the site logo is admin-settable — that's the FSE idiom for site identity. Product lockups inside page content still use
toilville/product-logo(toilville_rituals#376).New gate
test_template_parts.py, verified red on both regressions: dropping a nav item fails, and restoring the spacer footer fails.It reads block attributes as well as text nodes, because a nav label lives in the block comment as
{"label":"Rituals"}and never appears as a text node — the exact mirror ofcopy_coverage.py, which must ignore attributes for the opposite reason.just checkgreen; 285 tests pass.https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
`parts/footer.html` was 134 bytes of `wp:spacer` — no sitemap, no tagline, no copyright. Template parts sit outside the ForgeBlock pattern pipeline, so when the pre-split canvas was cut into per-page decks the chrome was dropped and every gate stayed green. Extracted, not re-authored. The canvas still had <header> and <footer> intact; both now come into the repo as ToilvilleSiteChrome.dc.html so the extraction has a source that can be gated, and both template parts carry 100% of its copy. header — Rituals · Spelwork · News, with Contact as a pill. Replaces `wp:navigation {"ref":35}`: a hard-coded nav-menu post id that exists on exactly one install and silently renders nothing anywhere else. Explicit navigation-links need no menu to be created first. footer — the three-column sitemap (Product · Developers · Company), the tagline, the contact address and the copyright rule. Tokenised rather than transcribed: the design's #4A443F, #A6432B and #C05734 are exactly `neutral-warm-body`, `accent-rituals` and `primary`; its two near-identical muted greys both collapse to `neutral-warm-muted`; the 8%-ink hairlines become the `border` preset. No raw hex in either part. theme.json gains a `dm-mono` font family for the mono labels — the stack the blocks already use literally, with no fontFace, because the brand's mono voice degrades to Courier New rather than shipping a webfont for five footer labels. Site identity uses `wp:site-logo`, not the new toilville/product-logo block: the chrome should survive the plugin being deactivated, and the logo is admin-settable. Product lockups inside page content still use the block. New gate, verified red on both regressions: dropping a nav item and restoring the spacer footer each fail. It reads block ATTRIBUTES as well as text nodes, because a nav label lives in the block comment as {"label":"Rituals"} — the mirror of copy_coverage.py, which must ignore attributes for the opposite reason. Claude-Session: https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78