Tested tool guide
Tested browser tools
Checked August 16, 2026
What Unused CSS Finder does, with a checked example
Paste your HTML in one box, your CSS in the other, and this tool checks every selector in the stylesheet against the markup, listing the ones no element matches. Selector lists are split on commas and each part is tested independently, and matching obeys the same rules a browser applies: class tokens and ids must match exactly, letter for letter, and compound selectors only match real element nesting. The usual surprise: the tool sees only the markup you paste. Classes your scripts add at runtime, or selectors used on other pages, come back as unused even when the page needs them.
Worked example
A concrete input and expected output from the current implementation.
Input
HTML box: <div id="app" class="card"><p class="note">Hello</p></div>
CSS box:
.card { padding: 16px; }
.note { color: #555; }
#app { max-width: 640px; }
p { line-height: 1.5; }
.hero { display: grid; }
.alert, .warning { color: red; } ->
Expected output
Used: 4 of 7 (.card, .note, #app, p). Unused: 3 (.hero, .alert, .warning). The rule .alert, .warning is reported as two separate unused selectors, since each selector in a comma list is judged on its own.
.card, .note, #app, and p each have a matching element in the pasted markup, while no element carries the class hero. The comma group is split, so .alert and .warning are checked independently: a matching .alert element would not keep .warning off the unused list.