postcss-html

PostCSS syntax for parsing HTML (and HTML-like)
90,051,440 34
Install
npm install postcss-html
Latest Version:2.0.0
License:MIT
Last Updated:Oct 11, 2026
Links: GitHub  ·  npm
Maintainer: jeddy3

PostCSS HTML Syntax

NPM license NPM version NPM downloads NPM downloads NPM downloads Build Status

PostCSS syntax for parsing HTML (and HTML-like)

Getting Started

First thing's first, install the module:

npm install postcss-html --save-dev

postcss-html is an ES module and requires Node.js ^22.12 || >=24. CommonJS consumers on those Node.js versions can still load it with require("postcss-html").

If you want support SCSS/SASS/LESS/SugarSS syntax, you need to install the corresponding module.

Use Cases

import postcss from 'postcss';
import postcssHtml from 'postcss-html';
import postcssScss from 'postcss-scss';
import postcssLess from 'postcss-less';
import postcssSafeParser from 'postcss-safe-parser';

const syntax = postcssHtml({
    // syntax for parse scss (non-required options)
    scss: postcssScss,
    // syntax for parse less (non-required options)
    less: postcssLess,
    // syntax for parse css blocks (non-required options)
    css: postcssSafeParser,
});
postcss(plugins).process(source, { syntax: syntax }).then(function (result) {
    // An alias for the result.css property. Use it with syntaxes that generate non-CSS output.
    result.content
});

If you want support SCSS/SASS/LESS/SugarSS syntax, you need to install these module:

Advanced Use Cases

Options

import postcssHtml from 'postcss-html';
import postcssSass from 'postcss-sass';
import sugarss from 'sugarss';
import postcssCustomSyntax from 'postcss-custom-syntax';

const options = {
    rules: [
        {
            // custom language
            test: /^postcss$/i,
            lang: 'scss'
        },
        {
            // custom language
            test: /^customcss$/i,
            lang: 'custom'
        },
    ],

    // custom parser for CSS (using `postcss-safe-parser`)
    css: 'postcss-safe-parser',
    // custom parser for SASS (PostCSS-compatible syntax.)
    sass: postcssSass,
    // custom parser for SCSS (by module name)
    scss: 'postcss-scss',
    // custom parser for LESS (by module path)
    less: './node_modules/postcss-less',
    // custom parser for SugarSS
    sugarss: sugarss,
    // custom parser for custom language
    custom: postcssCustomSyntax,
}
const syntax = postcssHtml(options);

Turning PostCSS off from within your HTML

PostCSS can be temporarily turned off by using special comments in your HTML. For example:

<html>
<body>
<!-- postcss-ignore -->
<a style="color: red;" description="style is not parsed."></a>

<a style="color: red;" description="style is parsed."></a>
<html>
<body>
<!-- postcss-disable -->
<a style="color: red;" description="style is not parsed."></a>
<a style="color: red;" description="style is not parsed."></a>
<!-- postcss-enable -->

<a style="color: red;" description="style is parsed."></a>

Linting with Stylelint

The main use case of this plugin is to apply linting with Stylelint to <style> tags and <div style="*"> property in HTML (and HTML-like).

You can use it by configuring your stylelint config as follows:

{
    "overrides": [
        {
            "files": ["*.html", "**/*.html"],
            "customSyntax": "postcss-html"
        }
    ]
}

You can use it more easily if you use an already configured sharable config.

{
+    "extends": [
+        "stylelint-config-html",
         // If you are using Vue.
+        "stylelint-config-recommended-vue"
+    ],
-    "overrides": [
-        {
-            "files": ["*.html", "**/*.html"],
-            "customSyntax": "postcss-html"
-        }
-    ]
}

Related Packages

vue-css-modules

Seamless mapping of class names to CSS modules inside of Vue components.

3,724 37
vuetify-scss

All of the Vuetify styles converted into Sass. No more Stylus!

12,466 61
gulp-html-postcss

Process inline CSS in HTML using PostCSS gulp plugin

229,532 5
bonescss

SCSS/CSS starting-point for every project. Mixes smacss namespaced h5bp things w...

1,073 15
@x-app/easy-css

A lightweight, customizable SCSS utility library with responsive classes.

368

Version History

Version Released License
2.0.0 MIT
1.8.1 MIT
1.8.0 MIT
1.7.0 MIT
1.6.0 MIT
Pre-releases (3)
Version Released License
1.0.0-alpha.4 MIT
1.0.0-alpha.3 MIT
1.0.0-alpha.2 MIT