PostCSS plugin to rebase or inline on url().
Latest commit 5e528eb May 1, 2016 @MoOx MoOx 5.1.2
Closes #68


Travis Build Status AppVeyor Build Status

PostCSS plugin to rebase, inline or copy on url().


$ npm install postcss-url


// dependencies
var fs = require("fs")
var postcss = require("postcss")
var url = require("postcss-url")

// css to be processed
var css = fs.readFileSync("input.css", "utf8")

// process css
var output = postcss()
    url: "rebase" // or "inline" or "copy"
  .process(css, {
    // "rebase" mode need at least one of those options
    // "inline" mode might need `from` option only
    // "copy" mode need `from` and `to` option to work
    from: "src/stylesheet/index.css",
    to: "dist/index.css"

Checkout tests for examples.



(default: "rebase")

url: "rebase"

Allow you to fix url() according to postcss to and/or from options (rebase to to first if available, otherwise from or process.cwd()).

url: "inline"

Allow you to inline assets using base64 encoding. Can use postcss from option to find ressources.

url: "copy"

Allow you to copy and rebase assets according to postcss to, assetsPath and from options (assetsPath is relative to the option to).

url: {Function}

Custom transform function. Takes following arguments:

  • URL – original url
  • decl - related postcss declaration object
  • from - from postcss option
  • dirname – dirname of processing file
  • to – from postcss option
  • options – plugin options
  • result – postcss result object

And should return the transformed url. You can use this option to adjust urls for CDN.


(default: 14)

Specify the maximum file size to inline (in kbytes)


A regular expression e.g. /\.svg$/, a minimatch string e.g. '**/*.svg' or a custom filter function to determine wether a file should be inlined.


The url fallback method to use if max size is exceeded or url contains a hash. Custom transform functions are supported.


Specify the base path where to search images from


(default: false)

If you specify an assetsPath, the assets files will be copied in that destination


(default: false)

If set to true the copy method is going to rename the path of the files by a hash name


Work on a branch, install dev-dependencies, respect coding style & run tests before submitting a bug fix or a feature.

$ git clone
$ git checkout -b patch-1
$ npm install
$ npm test