A CSS parser, transformer, and minifier written in Rust
Last release 1 months ago
20 Jul 2026
Ships fairly regularly
a new release about every 2 months
Some releases are documented
notes for 10 of 26 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
26 releases · first in 2023
Release timeline
26 releases since 2023One column per quarter.
Releases
- 1.33.020 Jul 2026
Release notes
Open source →Added
- Add support for
::highlightby @lucasweng in #970 - Add support for @position-try at-rule by @mattcosta7 in #1238
#851 - Add support for ::search-text and :current::search-text (#1212) by @lucinadin in #1213
- Collapse light-dark(x, x) to x by @cscnk52 in #1183
- Supports
:target-before/after/currentpseudo-class by @yisibl in #1185 - Support for the alpha() relative color function by @yisibl in #1266
Fixed
- Print unknown at-rules in the same location by @RobinMalfait in #1233
- Fix #rrggbbaa support on older versions of android by @fkeiler in #1198
- Replace
attywithstd::io::IsTerminalby @fkeiler in #1197 - Bump dependencies (cssparser, const-str) by @noahbald in #1200
- Fix minification of negative scientific notation dimensions by @ssssota in #1192
- Change serde attribute to be conditional for ResolveResult enum File variant by @FlorianDevP in #1251
- Add
externalto return type ofresolveby @sapphi-red in #1261
- Add support for
- 1.32.09 Mar 2026
Release notes
Open source →Added
- Enable custom resolvers to mark imports as external. Resolvers may now return
{external: string}to mark an import as external. This will leave the@importin the output CSS instead of bundling it. See the docs for details. - Allow visitors to add dependencies. Visitors may now be functions which receive an
addDependencyfunction as an option. Dependencies may be used by tools that call Lightning CSS such as bundlers to implement file watching or caching. See the docs for details. - Add
mix-blend-modeproperty support
Fixed
- Output unknown
color-schemekeywords as-is instead ofnormal - Improved serialization of the rotate property
- keep a single space between functions when formatting
transformvalues - Fix additionally inserted whitespace in
var(--foo,)andenv(--foo,) - Convert the percentage in the
scaleproperty orscale()to a number - update compat data
- Enable custom resolvers to mark imports as external. Resolvers may now return
- 1.31.121 Jan 2026
Nothing published for this version
- 1.31.020 Jan 2026
Release notes
Open source →Features
- Implement scroll-state container queries
- Allow @property to be nested inside at-rules
- Support print-color-adjust property
- Support
<string>in @property syntax - Add :state() pseudo-class support
- Reduce min(), max() and clamp() with number arguments
- Support name-only @container queries
Fixes
- Ensure compiled range media queries are correctly parenthesised
- Add quotes to font-families with multiple consecutive spaces
- Do not remove whitespace in token lists
- Fix whitespace handling in view transition pseudos
- Ensure interleave nested declarations have a semicolon when needed
- Fix casing for camel-cased svg values
- Improve grid-template-areas handling and grid shorthand
- Fix background-position minification and handling for various cases
- Update browser compat data
- 1.30.229 Sept 2025
Release notes
Open source →Fixes
- Fix installing on android
- Don't warn on
::grammar-errorand::spelling-errorselectors - Update browser compat data
Rust crate changes
- 1.30.114 May 2025
Release notes
Open source →Fixed crash on process exit when lightningcss was loaded inside a Node.js worker thread on Linux
- 1.30.011 May 2025
Release notes
Open source →Features
- Update relative color parsing to latest spec: colors now support numbers in addition to percentages, and calcs in colors are now always numbers. Note that this was technically a breaking change in the spec. You may need to update code using relative color calculations on percentages to use numbers instead. See the PR for details. – #465
- Update nesting implementation for new spec: It is now possible to nest selectors with pseudo elements, and declarations and nested rules can be interleaved. See https://web.dev/blog/css-nesting-cssnesteddeclarations for more details. – 6c465c1
- Skip generating unnecessary
@supportsrules when already nested in a@supportsrule – #878, d398c1b - Improve error recovery for media queries – #954
- Add support for ::picker, ::picker-icon and ::checkmark – #957
- Add build support for Android – #932
Fixes
- Fix error message for invalid composes selectors – #948
- Update browserslist – #961
- Fix linear-gradient direction conversion for legacy vendor-prefixed values – #936
- Prevent new lines in license comments from breaking source maps – #971
- Do not inline layers before imports – 33ea2c1
- Statically link Visual Studio redistributables on Windows builds – e5c4139
- update browser compat data – 17bdc80
- 1.29.314 Mar 2025
Release notes
Open source →- Support for
::details-contentand::target-textselectors – @philipp-spiess in #930 - Update
:placeholder-shownselector name across browsers – @Marukome0743 in #929 - Support
/* cssmodules-pure-no-check */comments – @jantimon in #898 - Update browser compatibility data – c03a7e7
- Support for
- 1.29.26 Mar 2025
Release notes
Open source →- Update detect-libc for better compatibility by @nicksrandall in #923
- Fix broken minification for non-opaque oklab colors by @lfesp in #901
- Bump browserslist-rs 0.17.0 by @chenjiahan in #912
- Add wasm compilation cfg for
Browsers::load_browserslistby @CPunisher in #895 - Fix parsing style container queries without a value – 2284653
- 1.29.19 Jan 2025
Nothing published for this version
- 1.29.09 Jan 2025
Release notes
Open source →Added
- Implement view transitions level 2, including the
@view-transitionrule,view-transition-classandview-transition-groupproperties, and class selector features of the view transition pseudo elements. This enables CSS module scoping and better minification when using these features. – #885 - Support parsing the
@font-feature-valuesrule – #840 - Add a feature flag to explicitly enable or disable transpiling the
light-dark()function – 3043896
Fixed
- Compile media query range syntax with boolean logic instead of fractional pixels. Fixes issues with rounding certain values. – 7f29035
- Fix parsing the
list-styleshorthand property – 97891d8 - Fix hashing of
:nth-child(an + b of X)selectors in CSS modules – ed9e659 - Update napi-rs to fix issue with
\0characters in filenames – 43707c3 - Fix CustomAtRule.loc TypeScript type – #876
- Call StyleSheet / StyleSheetExit / Rule.custom.* in visitors passed to
composeVisitors– #875 - Update browser compat data – cdbf0d4
- Implement view transitions level 2, including the
- 1.28.225 Nov 2024
Release notes
Open source →Fixes
- Fix duplicate prefixed properties in
transition-property– #850 (thanks @RobinMalfait and @LeoniePhiline!) - Fix mapping original name from source maps – 78f2fc4
- Bump browser compat data – 4159bc5
- Ensure consistent order of custom properties when
allproperty is set – d4eec35
- Fix duplicate prefixed properties in
- 1.28.13 Nov 2024
Nothing published for this version
- 1.28.03 Nov 2024
Nothing published for this version
- 1.27.011 Sept 2024
Nothing published for this version
- 1.26.06 Aug 2024
Nothing published for this version
- 1.25.125 May 2024
Nothing published for this version
- 1.25.017 May 2024
Nothing published for this version
- 1.24.115 Mar 2024
Nothing published for this version
- 1.24.023 Feb 2024
Nothing published for this version
- 1.23.014 Jan 2024
Nothing published for this version
- 1.22.17 Nov 2023
Nothing published for this version
- 1.22.017 Sept 2023
Nothing published for this version
- 1.21.811 Sept 2023
Nothing published for this version
- 1.21.720 Aug 2023
Nothing published for this version
- 1.21.620 Aug 2023
Nothing published for this version