CSS Custom Properties Collector - Online List All :root Vars
Paste your CSS and get a sorted list of all custom properties defined under :root with their values. Quick audit.
UD5 Toolkit
Paste your CSS on the left and click Analyze Specificity to see selector weights,
sort by specificity, and find override conflicts.
| # | Selector | Specificity (b,c,d) | Score | Declarations | Status | Actions |
|---|
#id selectors, c = number of .class, [attr], and :pseudo-class selectors, d = number of element names and ::pseudo-elements. The numeric score is b Ă— 10,000 + c Ă— 100 + d. The :where() pseudo-class contributes zero specificity, while :is() and :not() take the specificity of their most specific argument.
!important elevates a declaration above normal specificity comparisons. When two rules both use !important on the same property, the one with higher specificity wins. If specificity is equal, source order breaks the tie (last one wins). This tool highlights !important declarations with an orange badge so you can quickly spot them. Overusing !important is considered a bad practice as it makes CSS harder to maintain.
#header and .footer) won't truly override each other even if they share properties. Use the results as a guide to investigate potential conflicts, then verify in your browser's DevTools.
:is() and :not() take the specificity of their most specific argument. For example, :is(#hero, .card, p) has the specificity of an ID selector (b=1). :where() always contributes zero specificity, making it ideal for establishing base styles that are easy to override. :has() behaves like :is() — its specificity equals its most specific argument.
:where() for base/reset styles to keep them easily overridable. 4. Avoid !important unless absolutely necessary. 5. Follow a naming convention like BEM to reduce the need for deeply nested selectors. 6. Regularly audit your CSS with tools like this one to catch specificity inflation early.
Paste your CSS and get a sorted list of all custom properties defined under :root with their values. Quick audit.
Apply user‑select: none, text, all and see how it affects selection. Copy the CSS snippet for your UI elements.
Manipulate CSS values as typed objects using attributeStyleMap. Convert between CSSUnitValue, CSSMathSum, etc. Futuristic CSS‑in‑JS.
Load images or use colors and apply all 15 CSS blend modes. Visual tester for creative effects.
Reset native styling on form elements with appearance: none. See before and after. Essential for custom forms.
Register a custom CSS property with syntax, initial value, and inherits. Animate colors and numbers that couldn’t before.
Test the new style() function inside @container to query custom property values. Revolutionary component‑based responsive design.
Paste your stylesheet and get a clean list of all custom properties defined under :root. Copy the whole block. Local analysis.
Set up multiple @layers and use revert‑layer to fall back. See the computed style and cascade resolution live.
Implement a dark/light theme toggle that respects prefers‑color‑scheme. Copy the complete JavaScript and CSS.
Write CSS with native nesting (like SCSS) and see the browser’s native parsing. Validator and live output.
Paste a raw server log snippet and see a structured table with IP, method, URL, and status. Quick audit.
Apply will‑change to any element and see its effect on compositing. Learn best practices for smooth animations.
List all resources loaded by the current page and their detailed timing breakdown. In‑browser waterfall.
Access the Paint Timing API and display First Paint, First Contentful Paint, and Largest Contentful Paint times. Quick perf check.
A completely black page to save battery on OLED devices. Click to go fullscreen. Simple utility.
Upload any picture and instantly get a 5‑color palette. Useful for UI design themes. Canvas‑based extraction.
Swap between physical and logical properties (margin‑inline vs margin‑left). Live preview with writing‑mode. Internationalize your CSS.
See the current Service Worker registration, its state, and scope. Send 'skipWaiting' and update. PWA debug.
Build a renovate.json file to automate dependency updates. Choose schedule, automerge, and package rules. Local.
Choose where page breaks should occur for printing. Get the break‑before, break‑after, and break‑inside CSS.
See every HTML input type in one page. Check browser support and styling. Copy sample markup. Quick frontend reference.
See your device's battery level, charging status, and discharge time using the Battery Status API. Fun utility.
See the current state of a Service Worker for your page: installing, waiting, active. Unregister or skip waiting. Developer utility.
Set an alarm relative to today's sunset (e.g., 30 minutes before). Perfect for evening routines. Uses geolocation (optional).
Connect to a BLE device and read its Battery Service characteristic. See the charge level in a gauge.
Generate a random 5‑color palette where every adjacent pair passes WCAG AA contrast. Safe for inclusive designs.
Build a Vite configuration file by selecting plugins (Vue, React, etc.), aliases, and build options. Copy the final code.
Create promises that resolve or reject after a delay. See state changes and chain .then/.catch. Debug async code.
Enter network name and password to generate a stylish printable card for visitors. Local, no data leak.