NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2369 most downloaded on PyPI
High-performance library for inlining CSS into HTML 'style' attributes
Last release 3 days ago
01 Oct 2026
Release timing varies
gaps range from 9 days to 3 months
Most releases are documented
notes for 52 of 58 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
59 releases · first in 2020
One column per quarter.
remove_inlined_selectors removed @ -rules from the <style> blocks it rewrites (it should remove only inlined selectors).
cssparser to 0.38.html5ever to 0.40.selectors to 0.41.remove_inlined_selectors removed @-rules from the <style> blocks it rewrites (it should remove only inlined selectors).class attribute values not HTML-escaped in the output, allowing markup injection via " in a class value. GHSA-jh54-c7gc-mvcccssparser to 0.38.html5ever to 0.40.selectors to 0.41.magnus to 0.9.remove_inlined_selectors removed @-rules from the <style> blocks it rewrites (it should remove only inlined selectors).class attribute values not HTML-escaped in the output, allowing markup injection via " in a class value. GHSA-jh54-c7gc-mvccPyodide 3.14 wheels for the pyemscripten_2026_0 platform. #786
pyemscripten_2026_0 platform. #786x64-mingw-ucrt). Installing no longer requires a Rust toolchain on these platforms.file:// stylesheet URLs not percent-decoded and broken on Windows drive letters.
file:// stylesheet URLs not percent-decoded and broken on Windows drive letters.With keep_at_rules enabled, at-rules without a block (e.g. @import ) lost their prelude and terminator, fusing with the following rule ( @import@media
keep_at_rules enabled, at-rules without a block (e.g. @import) lost their prelude and terminator, fusing with the following rule (@import@media ...) and producing a stylesheet browsers reject entirely.width/height HTML attributes not derived from an element's own inline style attribute. #725
1.85.selectors to 0.38.cssparser to 0.37.width/height HTML attributes not derived from an element's own inline style attribute. #725inline_fragment silently returning only whitespace when the input starts with whitespace or contains structural HTML tags ( , , , ). #692 #693
!important lost when inlining styles onto elements with existing inline style attributes. #682
InlineOptions::apply_width_attributes and InlineOptions::apply_height_attributes options to add dimension HTML attributes from CSS properties on suppo
InlineOptions::apply_width_attributes and InlineOptions::apply_height_attributes options to add dimension HTML attributes from CSS properties on supported elements (table, td, th, img). #652Inline !important styles being overwritten by stylesheet !important styles. #637
html5ever to 0.38.selectors to 0.35.!important styles being overwritten by stylesheet !important styles. #637InlineOptions::remove_inlined_selectors option to remove selectors that were successfully inlined from blocks.
InlineOptions::remove_inlined_selectors option to remove selectors that were successfully inlined from <style> blocks.cssparser to 0.36.html5ever to 0.36.selectors to 0.33.### Added - minify_css option #12 ### Changed - Bump MSRV to 1.80 - Update selectors to 0.32.
keepAtRules option to keep all "at-rules" (ones starting with @) inside a "style" element. #265
keepAtRules option to keep all "at-rules" (ones starting with @) inside a "style" element. #265CLI: --extra-css-file option to load additional CSS from files. #67
--extra-css-file option to load additional CSS from files. #67pico-args1.75.selectors to 0.30.html5ever to 0.35.!important that has insignificant whitespace after it.style element name.!important.Slightly improve the performance of HTML serialization.
1.71.1.cssparser to 0.35.html5ever to 0.31.selectors to 0.28.Nothing published for this version
Slightly improve performance of HTML serialization.
Prioritize !important rules when computing element styles. #398
!important rules when computing element styles. #398Replace double quotes when merging styles. #392
Precedence of element styles over other styles. #364
External stylesheet caching. #314
A way to customize resolving remote stylesheets.
data-css-inline="keep" attribute to enforce keeping the style tag.attohttpc with reqwest to simplify implementing non-blocking stylesheet resolving in the future release.nth-child. #324Display stylesheet location in network-related errors.
std::error::Error::source for InlineError.Avoid iterating over non-Element nodes.
Replace double quotes in all property values.
indexmap to 2.1.cssparser to 0.31.2.selectors to 0.25.1.65.The inline_style_tags option to control whether inlining from "style" tags should be performed. #253
inline_style_tags option to control whether inlining from "style" tags should be performed. #2531.63.Pre-allocate space during serialization.
class attribute handling: up to 25% faster for extensive class-dependent selectors.FxHasher in more cases.memchr.1.62.1.Applying new styles only to the first matching tag during styles merging. #224
Optimized HTML serialization for a performance boost of up to 25%.
Standardized the formatting of CSS declarations: now consistently using : separator between properties and values.
: separator between properties and values.Use a simpler way for HTML tree traversal.
keep_link_tags configuration option.
keep_link_tags configuration option.remove_style_tags with keep_style_tags.inline_style_tags configuration option.Serialize all HTML attributes without escaping. #184
Nothing published for this version
Nothing published for this version
--output-filename-prefix CLI option to control the output files prefix.
--output-filename-prefix CLI option to control the output files prefix.file:// URI scheme in base_url. #1711 exit code if any of the input files were not processed successfully via CLI.data-css-inline="ignore" attribute to ignore CSS inlining. #10
data-css-inline="ignore" attribute to ignore CSS inlining. #10Ignoring selectors' specificity when applying declarations from different qualified rules. #148
New http & file features which give a way to disable resolving external stylesheets and reduce the compiled artifacts size.
http & file features which give a way to disable resolving external stylesheets and reduce the compiled artifacts size.!important rules not overriding inlined styles. #152Not respecting specificity in case of inlining overlapping rules like padding and padding-top. #142
padding and padding-top. #142Separate InlineError::MissingStyleSheet error variant to improve debugging experience. #124
InlineError::MissingStyleSheet error variant to improve debugging experience. #124Nothing published for this version
Nothing published for this version
Invalid handling of double-quoted property values like in font-family: "Open Sans". #129
font-family: "Open Sans". #129std::fs::read_to_string in CLI to avoid over/under allocating of the input buffer.Panic on invalid URLs for remote stylesheets.
Optimize loading of external files.
rayon to 1.5.Avoid allocations in error formatting.
Incorrect override of exiting style attribute values. #113
style attribute values. #113to_string implementation on &&str.ahash.Ignored style tags when the document contains multiple of them and the remove_style_tags: true config option is used. #110
style tags when the document contains multiple of them and the remove_style_tags: true config option is used. #110Ignored selectors specificity. #108
Nothing published for this version
Compatibility with the new cssparser crate version.
cssparser crate version.ParseError to InlineError.Links to remote stylesheets are deduplicated now.
CSSInliner::options() that implements the Builder pattern. #71
CSSInliner::options() that implements the Builder pattern. #71parser.rsget_full_urlOption to disable processing of "style" tags. #45
Remove debug symbols from the release build
String allocations.BTreeMap::insert when style attribute already exists### Changed - Fix links in docs
### Added - Command Line Interface. #33
CSSInliner and customization options. #9
CSSInliner and customization options. #9remove_style_tags). Disabled by default. #11CSSInliner::compact() constructor for producing smaller HTML output.CSSInliner.inline_to that writes the output to a generic writer. #24Error for InlineError.load_remote_stylesheets). Enabled by default.@media queries since they can not be inlined. #7[Unreleased]: https://github.com/Stranger6667/css-inline/compare/rust-v0.22.0...HEAD [0.22.0]: https://github.com/Stranger6667/css-inline/compare/rust
Your coding agent can read these notes before it upgrades. Set up the MCP server →