Ghost Story10

Debug Ghosts, Part X

January 18, 2026

The case of the uncenterable delete form

I thought this would take five minutes.

Center a title.
Center an image.
Put two buttons underneath.
Done.

Instead, I spent the better part of a day staring at a form that refused to behave.

Every change I made seemed logical.
Every cache was cleared.
LAMPP restarted.
Ubuntu rebooted.

Nothing changed.

The title stayed stuck on the left.
The image floated to the right.
The Cancel button wandered across the page like it had a mind of its own.

Classic ghosts.

At first, I blamed caching. Then Twig. Then Firefox. Then myself.
I added fingerprints. I added !important. I added more !important.

Still nothing.

The breakthrough came when I stopped looking at the elements themselves and looked upstream.

The admin layout wasn’t broken.
It was working exactly as designed.

A two-column grid, quietly inherited from the admin framework, was auto-placing children into columns. The form wasn’t misaligned — it was being obedient. Every attempt to “center” content inside it was fighting a parent layout I hadn’t even noticed.

Once I saw the grid, the ghosts vanished.

The fix wasn’t more CSS — it was one inner wrapper, a deliberate column span, and a controlled layout inside that space. After that, everything snapped into place like it had been waiting all along.

The lesson?

When CSS refuses to listen, stop talking louder.
Look for the invisible structure telling it what to do.

This wasn’t a bug.
It was a ghost of my own assumptions.

And now it’s documented — so it won’t haunt me again. 👻

 

Posted in ghost-stories by TFOL BLOG

Comments