Skip to main content
100% client-side — your CSS never leaves the browser

CSS Linter Online

Paste your CSS to check syntax errors, warnings and best-practice violations with exact line numbers. 18 heuristic checks, quality score, safe auto-fix — no build step, no signup.

1. Paste your CSS

Toggle individual rules (18)

2. Review findings

3. Apply safe auto-fix

Fixes 0px → 0, #aabbcc → #abc, uppercase hex → lowercase. Selectors are never touched.

Worked examples (10)

Each example demonstrates a real-world CSS smell. Load one to see the linter in action.

Rule reference

Frequently asked questions

No. This is a heuristic, browser-based quick check for everyday CSS mistakes. Stylelint is a full build-pipeline linter with hundreds of configurable rules and autofix plugins. Use this tool for a fast sanity check before committing, and Stylelint for enforced team standards in CI.
18 checks: unclosed or unexpected braces, missing semicolons, malformed declarations, unknown properties (checked against 376 standard properties), duplicate properties, empty rules, !important usage, zero values with units (0px should be 0), obsolete vendor prefixes, universal selectors, IE star/underscore hacks, duplicate selectors, @import/@charset ordering, ID selectors, overqualified selectors, and hex color style (#aabbcc to #abc, uppercase to lowercase).
Occasionally, because the analysis is heuristic rather than a full CSS parser. The missing-semicolon check can misfire on exotic multi-line values, and a brand-new CSS property may be reported as unknown until the property list is updated. CSS custom properties (--brand), modern color syntax, @media, @supports, @keyframes and @font-face are handled correctly.
No. All linting runs 100% client-side in your browser with zero network requests. Even the file-upload button only reads the file locally with the FileReader API. Nothing you paste ever leaves your device.
Safe mechanical fixes, yes: 0px becomes 0, #aabbcc shortens to #abc, and uppercase hex becomes lowercase. Structural problems such as missing semicolons, duplicate properties or obsolete prefixes are reported with the exact line number so you can fix them deliberately.
Only plain CSS is fully supported. For SCSS or Less, paste the compiled CSS output. Nested rules are tolerated by the parser, but preprocessor-only syntax such as variables ($color) or mixins will be reported as unknown properties.
Every stylesheet starts at 100. Each error subtracts 10, each warning 4, and each info-level suggestion 1, floored at 0. A score of 100 means no findings; anything above 85 is generally production-ready.
Both create specificity problems. !important breaks the natural cascade and leads to specificity wars where only more !important can win — more than 3 uses triggers a summary warning. ID selectors (#header) cannot be reused and are painful to override; classes are almost always the better choice.

Free tool by NRTechStudio