Socket
Socket
Sign inDemoInstall

extract-css-core

Package Overview
Dependencies
66
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    extract-css-core

Extract all CSS from a given url, both server side and client side rendered.


Version published
Weekly downloads
5.5K
decreased by-7.98%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

extract-css-core

Extract all CSS from a given url, both server side and client side rendered.

NPM Version Node.js CI

Usage

const extractCss = require('extract-css-core')

const css = await extractCss('https://www.projectwallace.com')
//=> html{font-size:100%} etc.

Or, if you want more details:

const entries = await extractCss('https://www.projectwallace.com', {
	origins: 'include'
})

// entries will look something like this
[
	{
		href: 'https://www.projectwallace.com',
		type: 'link',
		css: '@font-face{font-display:swap;font-family:Teko;...'
	},
	{
		href: 'https://www.projectwallace.com/client/Seo.0f4fe72f.css',
		type: 'style',
		css: '.hero__text.svelte-qhblau a{color:var(--teal-400)}...'
	},
	{
		href: 'https://www.projectwallace.com/client/some-css-file.css',
		type: 'import',
		css: '.some-css {}'
	},
	{
		href: 'https://www.projectwallace.com',
		type: 'inline',
		css: '[x-extract-css-inline-style] { position: absolute; }'
	}
]

Installation

npm install extract-css-core
# or
yarn add extract-css-core

Motivation, solution and shortcomings

Motivation

Existing packages like get-css look at a server-generated piece of HTML and get all the <link> and <style> tags from it. This works fine for 100% server rendered pages 👍, but not for pages with CSS-in-JS styling and inline styles 👎.

Solution

This module uses an instance of Chromium to render a page. This has the benefit that most of the styles can be rendered, even when generated by JavaScript. The document.styleSheets API is used to get all styles, including CSS-in-JS. Lastly, a plain old document.querySelectorAll('[style]') finds all inline styling.

API

extractCss(url, [options])

Extract CSS from a page. Returns a Promise that contains the CSS as a single String, or an Array of all entries found when the option origins: 'include' is passed.

Options

Type: Object

Default: {}

origins

Type: String

Default: exclude

Possible values: exclude, include

inlineStyles

Type: String

Default: include

Possible values: exclude, include

waitUntil

Type: String

Default: networkidle0

Can be any value as provided by the Puppeteer docs.

Keywords

FAQs

Last updated on 03 May 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc