CSS Coverage Cleanup Planner
Review what your coverage runs actually observed. Keep the rules your site needs, and stage deliberate removals with a source preview.
Rules to review
Select a rule
Not observed means absent from the imported runs. It does not prove a selector is unnecessary on other routes or interaction states.
Proposed stylesheet
Evidence first, smaller CSS second
- Collect. Export CSS coverage from multiple page visits and interactions. Use the exact stylesheet revision.
- Review. Inspect source and run evidence. Structural at-rules and nested rules stay intact. Stage individual ordinary rules only after checking their purpose.
- Verify. Download a separate proposed stylesheet and review plan. Test the result in your project before replacing the original.
Coverage imports use the Playwright / Puppeteer-style CSS coverage format. The tool never runs imported CSS or visits its URLs. Source offsets count characters, while file-size metrics count UTF-8 bytes. Coverage without embedded source is marked unverified against the original capture.
Using CSS Coverage Cleanup Planner
Combine CSS coverage runs, inspect unobserved rules and stage individual removals with exact source previews.
- Try the storefront example, then import CSS coverage JSON from multiple routes and interactions. Entries use url, optional exact source text, and start/end character ranges.
- Choose a stylesheet and rule. The desk shows source, line number, which runs observed it and whether it is eligible for review.
- Stage removal of individually reviewed ordinary rules. Used rules, structural at-rules and nested blocks stay protected. Add decision notes and inspect the proposed CSS.
- Save a review project to preserve sources and decisions. Export a ZIP with original CSS, proposed CSS and a complete review plan, then test the changes in your project.
Example
A storefront has three runs: desktop browsing, mobile browsing, and a checkout payment error. The checkout error selector is kept because one run used it; an old campaign banner is a review candidate.
Questions & answers
Does not observed mean safe to delete?
No. It only means the imported runs did not observe that rule. Other pages, breakpoints, hover/focus, loading and error states may still need it.
Which format can I import?
Playwright/Puppeteer-style CSS coverage JSON arrays with url, optional text and ranges of inclusive start and exclusive end offsets. You can attach CSS when source text is missing. JavaScript coverage is not supported.
How are multiple runs combined?
A rule is kept as used if any imported run overlaps it. Adding evidence resets staged decisions for the affected stylesheet. Removing a run also resets its decisions.
What cannot be removed here?
Structural at-rules, nested blocks, rules observed in any run and rules with unknown coverage are protected. The planner only omits ordinary top-level rules you explicitly stage.
Can coverage be matched to the wrong source?
Embedded text is checked against attached CSS and existing source revisions. Without embedded text, only offsets and local source can be checked; the capture revision remains unverified.
Does importing CSS execute it?
No. Source is parsed and shown as text; its imports and URLs are not fetched. Projects keep original source text and decisions.
Help improve this tool
Report a problem or suggest an improvement
Describe the issue without pasting private tool input. Feedback goes to our admin inbox.
