Skip to main content

Redoing the footer: from two footers to a three-column one

· 2 min read

"The footer looks off — asymmetric on desktop, left-hugging and a bit plain on mobile." Before changing anything I took screenshots and measured, and "doesn't look good" turned out to be five concrete problems.

Five measured problems​

ProblemEvidence
Two footersthe homepage's home-made "About / Quick links / Stack / copyright" block plus the real footer
Width not alignedfooter container 1320px, content container 1140px centered
Two columns of 660px eachthree lines of text per column, lots of empty space to the right
Left-aligned on mobilecopyright centered, links left-aligned — two alignments mixed
Copyright coveredat 375px the "back to top" button sat on top of it

There was also a hidden bug: the global .row .col:hover transform applied to footer columns, making whole columns jump on hover.

The plan: three columns​

  • Left: brand (name, one-line tagline, three pill buttons for Subscribe / Surprise me / GitHub);
  • Middle: site navigation;
  • Right: more (tools, changelog, terms);
  • Bottom: a divider and a single copyright line.

The home-made block was deleted and its information merged into the footer, leaving exactly one footer.

How it was implemented​

The theme's Footer component can be swizzled, but that means maintaining a copy across theme upgrades. I chose another path: build the brand area from the footer.links config using its html field, and rearrange with CSS, leaving theme source untouched.

Breakpoints follow where the content actually wraps: three columns get cramped below 840px, so at 996px it becomes "brand on one row, two nav columns below", and below 420px everything stacks.

Result​

At 1440px the footer container is left=143 width=1140, matching the content; at 900px the brand takes its own row with two nav columns side by side; at 375px it is a centered single column with 4.5rem of bottom padding to clear the back-to-top button.

Lesson​

"It doesn't look good" is the hardest requirement because it has no acceptance criteria. Break it into alignments, widths, whitespace, breakpoints, and overlaps — then there is a direction to change and a way to verify.

Loading comments…