Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
inline-css
Advanced tools
The inline-css npm package is used to convert CSS styles into inline styles within HTML documents. This is particularly useful for email templates where inline styles are often required for proper rendering across different email clients.
Basic Inline CSS Conversion
This feature allows you to convert CSS styles defined in the <style> tag into inline styles within the HTML elements. The example demonstrates converting a simple HTML document with a <style> tag into one with inline styles.
const inlineCss = require('inline-css');
const html = '<html><head><style>h1 { color: red; }</style></head><body><h1>Hello, world!</h1></body></html>';
inlineCss(html, { url: ' ' }).then((result) => {
console.log(result);
});
Handling External CSS
This feature allows you to handle external CSS files by specifying the base URL. The example demonstrates converting an HTML document that links to an external CSS file into one with inline styles.
const inlineCss = require('inline-css');
const html = '<html><head><link rel="stylesheet" href="styles.css"></head><body><h1>Hello, world!</h1></body></html>';
inlineCss(html, { url: 'http://example.com/' }).then((result) => {
console.log(result);
});
Preserving Media Queries
This feature allows you to preserve media queries in the final HTML output. The example demonstrates converting an HTML document with media queries into one with inline styles while keeping the media queries intact.
const inlineCss = require('inline-css');
const html = '<html><head><style>@media (max-width: 600px) { h1 { color: blue; } }</style></head><body><h1>Hello, world!</h1></body></html>';
inlineCss(html, { url: ' ', preserveMediaQueries: true }).then((result) => {
console.log(result);
});
Juice is another popular npm package for inlining CSS into HTML. It offers similar functionality to inline-css, including support for external stylesheets and media queries. Juice is known for its ease of use and comprehensive documentation.
Premailer is a tool that can be used to inline CSS styles in HTML documents. It is available as both a Ruby gem and an npm package. Premailer offers additional features like CSS selector support and HTML minification, making it a versatile choice for email template preparation.
Email-comb is a package designed to clean and inline CSS for email templates. It focuses on removing unused CSS and inlining the necessary styles, ensuring that the final HTML is optimized for email clients. It is a good alternative to inline-css for those looking to optimize their email templates further.
Inline your CSS properties into the
style
attribute in an html file. Useful for emails.
Inspired by the juice library.
This module takes html and inlines the CSS properties into the style attribute.
/path/to/file.html
:
<html>
<head>
<style>
p { color: red; }
</style>
<link rel="stylesheet" href="style.css">
</head>
<body>
<p>Test</p>
</body>
</html>
style.css
p {
text-decoration: underline;
}
Output:
<html>
<head>
</head>
<body>
<p style="color: red; text-decoration: underline;">Test</p>
</body>
</html>
Install with npm
npm install --save inline-css
var inlineCss = require('inline-css');
var html = "<style>div{color:red;}</style><div/>";
inlineCss(html, options)
.then(function(html) { console.log(html); });
Type: String
Default: ""
Extra css to apply to the file.
Type: Boolean
Default: true
Whether to inline styles in <style></style>
.
Type: Boolean
Default: true
Whether to resolve <link rel="stylesheet">
tags and inline the resulting styles.
Type: Boolean
Default: true
Whether to remove the original <style></style>
tags after (possibly) inlining the css from them.
Type: Boolean
Default: true
Whether to remove the original <link rel="stylesheet">
tags after (possibly) inlining the css from them.
Type: String
Default: filePath
How to resolve hrefs. Required.
Type: Boolean
Default: false
Preserves all media queries (and contained styles) within <style></style>
tags as a refinement when removeStyleTags
is true
. Other styles are removed.
Type: Boolean
Default: false
Whether to use any CSS pixel widths to create width
attributes on elements.
Type: Boolean
Default: false
Whether to apply the border
, cellpadding
and cellspacing
attributes to table
elements.
Type: Boolean
Default: false
Whether to remove the class
and id
attributes from the markup.
Type: Object
Default: { EJS: { start: '<%', end: '%>' }, HBS: { start: '{{', end: '}}' } }
An object where each value has a start
and end
to specify fenced code blocks that should be ignored during parsing and inlining. For example, Handlebars (hbs) templates are HBS: {start: '{{', end: '}}'}
. codeBlocks
can fix problems where otherwise inline-css might interpret code like <=
as HTML, when it is meant to be template language code. Note that codeBlocks
is a dictionary which can contain many different code blocks, so don't do codeBlocks: {...}
do codeBlocks.myBlock = {...}
.
When a data-embed attribute is present on a tag, inline-css will not inline the styles and will not remove the tags.
This can be used to embed email client support hacks that rely on css selectors into your email templates.
Options to passed to cheerio.
See the CONTRIBUTING Guidelines
MIT © Jonathan Kemp
FAQs
Inline css into an html file.
The npm package inline-css receives a total of 0 weekly downloads. As such, inline-css popularity was classified as not popular.
We found that inline-css demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
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.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.