At desktop width, the event navigation disappeared. The controls were still in the page. They were just not where we thought the breakpoint logic would put them.

We were reworking the event module after feedback. The request looked ordinary: restore the missing filters, make every view tab and search tool available by default, add location search, remove the Display Type toggle, and rename the module. It had to hold together on a live test event site, not just in a component preview.

Before writing any code, we opened the current page in a browser. That check changed the job.

What the live page showed

We went in expecting a missing-element bug. A filter or tab that is absent on a desktop screen usually points to conditional rendering, incomplete data, or a component that never mounted. That would have sent us straight into the template and its data path.

The live page showed something narrower. The navigation element existed, and a viewport rule was hiding it at the desktop size we were testing. The old behavior assumed the element would be hidden at a different viewport, and it wasn’t. Nothing was wrong with the event data, the search state, or the filter configuration. The fault sat between one element and its breakpoint.

That mattered because every plausible first fix would have made the page harder to reason about.

The fixes we did not ship

We could have added a second navigation control for the desktop layout. That would have left two elements with overlapping responsibilities and another place for active-state behavior to drift.

We could have special-cased the missing controls in the module code. That would have treated a CSS visibility failure as an application-state problem, and the desktop screenshot might have looked right while the wrong breakpoint stayed in place.

We could have kept the Display Type toggle and hidden the restored tools behind it. The feedback had already made the direction clear: view tabs and search tools present by default, Display Type gone. Folding the controls behind another switch would have kept the old confusion with better styling.

Instead we fixed the visibility behavior at the point where it was wrong, restored the missing filters, added location search, and made the intended controls visible by default. Then we verified the complete flow on the live test site and committed the feature branch.

Why the browser came first

The browser didn’t just find a CSS bug. It ruled out a whole category of code changes before they existed.

Local component state can tell you an element should render. It can’t prove the rendered element survives the viewport rules around it. A code review can confirm a condition is logically sound. It can’t tell you the wrong media query owns the final display value.

Finding this took minutes because we looked at the live interface first. Without that, we could have spent the session repairing data flow, duplicating navigation, or polishing a toggle that should have been deleted.

The bug was only visible on desktop, and treating an assumption about the desktop as evidence was the failure. When an element seems to be missing, open the live page and confirm what is happening before approving any change. Here the navigation was present, a viewport rule was hiding it, and the fix belonged in exactly one place.