The browser has a complete picture of every visual problem on your site #
When something looks wrong on a website, the browser already knows exactly why. Not approximately. Exactly. The button is the wrong color because a specific rule in a specific stylesheet is setting it to that color, and that rule is winning over the rule you intended to apply because of a specific difference in selector specificity or load order. The section won’t center because a parent element 2 levels up has a fixed width constraint that’s overriding the centering you set. The text is too small on mobile because a media query in your theme hides the rule that applies at that breakpoint.
The browser generated this complete picture the moment the page loaded. It’s sitting there, fully formed, waiting to be read. The reason visual problems take hours to fix isn’t that the information doesn’t exist. It’s that the interface for reading it wasn’t built for you.
What DevTools shows and why it’s not enough #
If you’ve ever right-clicked something on a webpage and selected Inspect, you’ve opened DevTools. The Styles panel in DevTools shows you the CSS rules applying to whatever element you clicked. It shows you which rules are active and which are crossed out because something else overrode them.
For someone who reads CSS fluently, this panel is a brilliant tool. They look at a crossed-out rule and immediately know: this is being overridden by that other rule, which has higher specificity because it uses an ID selector, and if I add a class to the element I can beat it.
For someone who doesn’t read CSS fluently, the same panel is a wall of text. The answer is in there somewhere. There are lines that are crossed out, which seems significant, but there are 40 rules and some of them are from the browser’s own defaults and some are from your theme and some are from your Page Builder and they all use different notation and you don’t know which one to change or what changing it will actually do.
This isn’t a skills gap. It’s a translation gap. The information is complete. Nobody translated it for you.
What Lens translates #
Lens reads the same information DevTools shows, then produces 2 things: a plain-language sentence explaining what’s actually causing the visual problem, and a specific next step.
Not “there is a specificity conflict in your CSS.” The specific conflict: “Your theme’s stylesheet is setting this button color using an ID selector, which has higher specificity than your Page Builder’s class selector. The theme rule wins. To override it, you need a rule that either uses an ID selector or adds an !important declaration, which Lens has generated for you below.”
Or: “This section isn’t centering because its parent container has a fixed width of 960px set by an Inline Style added by your Page Builder. The section is doing exactly what you told it to do. The constraint isn’t on the section. The constraint is on the container above it.”
Those are 2 fundamentally different situations with identical visible symptoms (a thing that isn’t centered). DevTools shows you all the CSS for both. Lens tells you which one you’re in.
Why this matters beyond fixing 1 bug #
Every time you can’t fix a visual problem without a developer, you’re paying for a translation that could have happened in the browser. The fix itself often takes a developer 15 minutes once they have the right context. Getting them the right context is where the hours go: describing the problem, getting a screenshot that doesn’t show the CSS state, back-and-forth to narrow it down.
Lens gives the developer the context before the conversation starts. The capture file contains everything they need: the CSS state at the moment of capture, where every rule came from, what the ancestor chain was doing, what was competing for the same space. The conversation that would have taken 3 messages and an hour takes 0 messages and 15 minutes.
