Paste your HTML markup into the HTML textarea on the left. You can type, paste, drag-and-drop a file, or load one of the built-in examples using the Examples button next to the selector bar.
Type a CSS selector in the selector input bar below the HTML panel. The selector is validated in real-time — an error banner appears immediately if the syntax is invalid.
Matched elements are highlighted automatically with a 300 ms debounce. Click 'Test' (or press ⌘↵) to run immediately.
Switch to the Matches tab (right panel) to browse all matched elements. Each card shows the tag name, id, class list, text content, element path, and full attributes. Click any card to expand it and copy the outerHTML.
Switch to the Highlight tab to see the original HTML source with each matched element visually highlighted in color, making it easy to spot exactly what your selector targets.
Switch to the Specificity tab to see a visual breakdown of the selector's (IDs, Classes, Elements) specificity tuple with color-coded bars and a numeric score.
Open the Selector Reference panel (BookOpen icon or ⌘⇧H) for a categorized quick-insert library of common selectors — click any entry to load it into the selector bar.
Copy all matched outerHTML strings at once using the copy icon in the Matches tab header (⌘⇧C). Individual element HTML can be copied from each expanded card.
Use ⌘⇧K to clear both the HTML and selector fields and start fresh.
Real-time selector testing: runs querySelectorAll against your HTML on every keystroke with a 300 ms debounce for instant feedback.
Browser-native matching: uses the browser's built-in DOMParser and querySelectorAll — supports every selector your browser supports, including modern CSS4 selectors.
Three-panel results: Matches list (collapsible cards), HTML Highlight (source with color marks), and Specificity breakdown.
Specificity calculator: computes the (IDs, Classes, Elements) tuple and numeric score for any selector — handles :is(), :not(), :has() (takes highest argument specificity) and :where() (zero specificity) per the CSS spec.
Element path display: each matched element shows its full ancestor path (e.g. div.container > ul > li:nth-child(2)) for precise identification.
Attribute inspector: every matched element card expands to show all attribute key-value pairs and the full outerHTML.
HTML Highlight view: annotates the original HTML source with color-coded marks on matched elements using up to four distinct highlight colors.
Selector Reference panel: categorized library of 26 common selectors (Basic, Combinators, Attribute, Pseudo-class, Pseudo-element, Modern CSS) with descriptions and one-click insert.
Examples dropdown: five built-in examples (class selector, child combinator, attribute selector, nth-child, :has()) load both the HTML and selector at once.
Copy individual or all matches: copy a single element's outerHTML from its card, or copy all matched elements at once.
localStorage persistence: HTML and selector are saved automatically and restored on the next visit — no data loss on page refresh.
Fully client-side: all parsing and matching runs in your browser — no HTML or selector data is ever sent to a server.
Invalid selector error banner: shows the exact browser error message when querySelectorAll rejects a malformed selector.
Execution time and element count stats: see how many elements are in the document and how long the query took in milliseconds.
Keyboard shortcuts: ⌘↵ Test, ⌘⇧C Copy matches, ⌘⇧K Clear, ⌘⇧H Toggle reference.