postcss-preload-hovers

3.0.0 • Public • Published

PostCSS Preload Hovers Build Status

PostCSS plugin

In our application we have found that it is necessary to preload images in CSS elements with the :hover pseudo-class, as the loading delay is very obvious the first time a user rolls over one of these elements.

Installation

npm install --save-dev postcss postcss-preload-hovers

Input example

.my-button:hover {
    background-image: url(rollover.svg);
}

Output example

With outputType: "html" (or omitted as this is the default):

<link rel="prefetch" href="rollover.svg" as="image">

With outputType: "js":

["rollover.svg"].forEach(function(url) { var link = document.createElement("link"); link.rel = "prefetch"; link.href = url; link.as = "image"; document.head.appendChild(link); });

Usage

Transform directly

This requires writing a custom stringifier (just copy the code below).

postcss([ require('postcss-preload-hovers')() ]).process(input, { stringifier: (root, builder) => root.walkComments(comment => builder(comment.text + "\n")) });

Write to a file

To write to a file provide a filename property.

postcss([ require('postcss-preload-hovers')({ outputType: "js", filename: "output.js" }) ]).process(input)

Mutate a shared object

This is ugly, but useful.

const resultObj = {};
postcss([ require('postcss-preload-hovers')({ resultObj }) ]).process(input).then(_ => { /* The result will be available as a string at resultObj.data */ });

See PostCSS docs for examples for your environment.

Package Sidebar

Install

npm i postcss-preload-hovers

Weekly Downloads

26

Version

3.0.0

License

MIT

Unpacked Size

7.17 kB

Total Files

6

Last publish

Collaborators

  • devdave