Honest CSS verdicts: Lens names the rule that’s actually winning
What this is
This release fixed the cases where Lens named the wrong rule as the winner. On Tailwind v4 and shadcn sites, a padding or margin diagnosis used to point at a 0px base reset instead of the utility class actually setting the value. Logical properties like padding-inline and margin-block now map to their physical longhands at capture, so the winner you see is the rule the browser is really applying.
The verdict copy got more honest across the board. A visibility:hidden ancestor stopped reporting the display:none “your changes have no effect” message and started getting its own finding with an overridable fix. The “only applies at this screen size” verdict now fires only when the rule actually doesn’t match your current viewport, and the engine stopped presenting any winner the browser’s computed value contradicts.
What it answers
– why does lens show a 0px padding winner on a tailwind site
– how do i find which css rule is actually winning on my page
– why does my element say my changes have no effect when it’s just hidden
– how to fix padding-inline and margin-block not matching the real value
– why does the css override work in one place but not the other
Why we built it
A diagnosis tool is worthless the moment it names the wrong rule. These fixes close the cases where the answer was confidently wrong.
- The diagnosis now reads in real human terms inside the popup fight view, not just on the triage page, so the explanation sits next to the cards
- Rules inside @supports and @container blocks are now captured, with a parse-coverage signal recording how many stylesheets could and couldn't be read
- Rule sources now carry friendly names like "Xstore theme" across the popup, fight view, and triage, instead of generic origin labels, and the inline-style and systemic-spacing notes no longer hardcode Elementor
- CSS logical properties (padding-inline, margin-block, inset, and logical border and sizing) now map to their physical longhands at capture time
- On Tailwind v4 and shadcn sites, padding and margin winners now show the real utility value instead of a 0px base reset (closes LIM-005)
- A visibility:hidden ancestor now gets its own finding and an honest, overridable verdict instead of the display:none "your changes have no effect" message
- The engine no longer names a winner the browser contradicts, and the "only applies at this screen size" verdict fires only when the rule doesn't match the current viewport
- The override box now produces an actionable fix for inline-style winners and picks a selector that beats the winning rule by construction, not by load order
- The override now shows the same result in the popup and on the triage page, with the rule engine as the single source of truth