Skip to content

Footer tagline renders outside <footer>, unstyled, on every page #6

Description

@willhea

Summary

The business attribution tagline renders as a direct child of <body>, outside the <footer> element, on every page at both desktop and mobile widths. It inherits no footer styling as a result.

Evidence (rendered DOM, live production)

DOM ancestry of the text node is SPAN -> BODY.list. el.closest('footer') returns null.

Computed styles at 1440x900 and 375x812:

Real footer Orphaned tagline
font-size 12px 18px
color rgb(108,108,108) rgb(30,30,30)
text-align center start
left / width 336 / 768px (desktop) 0 / 270px

Confirmed present on /, /about/, /posts/, /portfolio/, /contact/ at both viewports.

Root cause

themes/PaperMod/layouts/partials/footer.html closes </footer> at line 22, then calls {{- partial "extend_footer.html" . }} at line 33. The extend_footer hook is positioned for scripts and end-of-body content, so any visible markup placed in layouts/partials/extend_footer.html lands outside the footer by construction.

This is a hook-contract mismatch rather than an error in the override: the partial's name suggests it extends the footer, while its call site places it after the footer.

Options considered (none applied)

  1. Wrap the span in <div class="footer"> to borrow PaperMod's existing footer styling. Minimal change, confined to our own override file, but leaves the text semantically outside <footer>.
  2. Override layouts/partials/footer.html to move the hook inside the element. Semantically correct, at the cost of owning a theme file across upgrades.

Either fix should be verified against the rendered DOM. Per repo CLAUDE.md, Hugo minifies to unquoted attributes, so a grep over built HTML is not a valid check here.

Verification method

Playwright against production, reading computed styles and DOM ancestry. Detectors were validated against a known-bad fixture first to confirm they can produce positives.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions