/postcss-partial-import

Inline sugary @import statements in CSS

Primary LanguageCSSOtherNOASSERTION

Partial Import

PostCSS Logo

NPM Version Build Status

Partial Import is a PostCSS plugin that inlines @import statements in CSS. It supports partial imports like Sass, automatically looks for stylesheets within npm and Bower packages, and can generate files if they don’t already exist.

/* before: file.css */

@import "foo/bar";

/* before: foo/_bar.css */

html {
    background-color: #fafafa;
}

/* after */

html {
    background-color: #fafafa;
}

Usage

Follow these steps to use Partial Import.

Add Partial Import to your build tool:

npm install postcss-partial-import --save-dev

Node

require('postcss-partial-import')({ /* options */ }).process(YOUR_CSS);

PostCSS

Add PostCSS to your build tool:

npm install postcss --save-dev

Load Partial Import as a PostCSS plugin:

postcss([
    require('postcss-partial-import')({ /* options */ })
]);

Gulp

Add Gulp PostCSS to your build tool:

npm install gulp-postcss --save-dev

Enable Partial Import within your Gulpfile:

var postcss = require('gulp-postcss');

gulp.task('css', function () {
    return gulp.src('./css/src/*.css').pipe(
        postcss([
            require('postcss-partial-import')({ /* options */ })
        ])
    ).pipe(
        gulp.dest('./css')
    );
});

Grunt

Add Grunt PostCSS to your build tool:

npm install grunt-postcss --save-dev

Enable Partial Import within your Gruntfile:

grunt.loadNpmTasks('grunt-postcss');

grunt.initConfig({
    postcss: {
        options: {
            processors: [
                require('postcss-partial-import')({ /* options */ })
            ]
        },
        dist: {
            src: 'css/*.css'
        }
    }
});

Options

encoding

Type: String
Default: utf8

The character encoding of files being imported.

extension

Type: String
Default: .css

The file extension appended to partials being imported.

prefix

Type: String
Default: _

The leading characters prepended to partials being imported.

generate

Type: Boolean
Default: false

Whether partials should be generated if they do not already exist.

dirs

Type: Array
Default: []

A list of alternate directories to find partials in.

plugins

Type: Array
Default: []

A list of PostCSS plugins to run over individual partials.

addDependencyTo

Type: function
Default: null

To pass CSS @import files to a compiler (such as webpack), which would otherwise not know which CSS files to watch for browser reloading.

Example

// webpack.config.js
postcss: function(webpack) {
    return [
        require('postcss-partial-import')({
        	addDependencyTo: webpack
        })
    ];
}