Go to file
dependabot[bot] b096a60feb
Bump qs from 6.5.2 to 6.5.3
Bumps [qs](https://github.com/ljharb/qs) from 6.5.2 to 6.5.3.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.5.2...v6.5.3)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-11 08:08:51 +00:00
.github/workflows Require node 10 2020-05-20 07:07:57 +02:00
src Bump dependencies 2020-05-23 00:36:56 +02:00
test Try fixing query string stylesheets 2020-08-22 22:09:30 +02:00
.editorconfig Change indentation to 2 spaces 2018-12-18 12:51:08 +01:00
.gitattributes Enforce LF. 2019-08-08 15:05:25 +03:00
.gitignore Added some badges 2017-02-10 17:09:46 +01:00
cli.js Bump dependencies 2020-05-23 00:36:56 +02:00
History.md Changelog 2019-06-13 23:44:51 +02:00
index.js Try fixing query string stylesheets 2020-08-22 22:09:30 +02:00
LICENSE Initial commit 2014-08-04 00:01:39 +02:00
package-lock.json Bump qs from 6.5.2 to 6.5.3 2023-05-11 08:08:51 +00:00
package.json 6.0.0 2020-05-24 01:07:29 +02:00
README.md Changed readme 2020-05-24 01:04:28 +02:00

inline-critical

Inline critical-path css and load the existing stylesheets asynchronously. Existing link tags will also be wrapped in <noscript> so the users with javascript disabled will see the site rendered normally.

NPM version Build Status Dependency Status Download Coverage Status

Installation

This module is installed via npm:

$ npm install inline-critical

Example Usage

const inline = require('inline-critical');
const html = fs.readFileSync('test/fixtures/index.html', 'utf8');
const critical = fs.readFileSync('test/fixtures/critical.css', 'utf8');
const inlined = inline(html, critical);

Example Usage ignoring stylesheet per regex

const inline = require('inline-critical');
const html = fs.readFileSync('test/fixtures/index.html', 'utf8');
const critical = fs.readFileSync('test/fixtures/critical.css', 'utf8');

const inlined = inline(html, critical, {
  ignore: [/bootstrap/],
});

CLI

inline-critical works well with standard input. You can either pass in the html

cat index.html | inline-critical critical.css

or just flip things around

cat critical.css | inline-critical index.html

or pass in the file as an option

inline-critical critical.css index.html

without having to worry about the correct order

inline-critical index.html critical.css

Run inline-critical --help to see the list of options.

inline(html, styles, options?)

  • html is the HTML you want to use to inline your critical styles, or any other styles
  • styles are the styles you're looking to inline
  • options is an optional configuration object
    • polyfill will use loadCSS polyfill instead of preferred media=print strategy (https://www.filamentgroup.com/lab/load-css-simpler/)
    • preload will add preload tags
    • minify will minify the styles before inlining (default: true)
    • extract will remove the inlined styles from any stylesheets referenced in the HTML
    • basePath will be used when extracting styles to find the files references by href attributes
    • ignore ignore matching stylesheets when inlining.
    • selector defines the element used by loadCSS as a reference for inlining.
    • noscript specifies position of noscript fallback ('body' - end of body, 'head' - end of head, false - no noscript)

License

MIT