The pure js optional dependency for sass-embedded
Last release 10 days ago
20 Aug 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 21 of 21 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
21 releases · first in 2025
Release timeline
21 releases since 2025One column per month.
Releases
- 1.103.120 Aug 2026
- 1.102.012 Aug 2026
Additional notes
Open source →- Use the 2.4 gamma transfer function for rec2020, as specified by the latest draft of CSS Color 4.
- 1.101.011 Jun 2026
Additional notes
Open source →- Potentially breaking bug fix: The Node package importer now properly
supports resolving import-only variants of Sass files declared in the
exports,sass, andstylefields ofpackage.json. Previously, these files were ignored even when loaded via@import, so any code relying on loading module-system-only files this way may break.
- Potentially breaking bug fix: The Node package importer now properly
supports resolving import-only variants of Sass files declared in the
- 1.100.022 May 2026
Additional notes
Open source →-
Writing two compound selectors adjacent to one another without any whitespace between them, such as
[class]a, is now deprecated. This was always an error in CSS and Sass only supported it by mistake.See the Sass website for details.
-
- 1.99.02 Apr 2026
Additional notes
Open source →-
Add support for parent selectors (
&) at the root of the document. These are emitted as-is in the CSS output, where they're interpreted as the scoping root. -
User-defined functions named
calcorclampare no longer forbidden. If such a function exists without a namespace in the current module, it will be used instead of the built-incalc()orclamp()function. -
User-defined functions whose names begin with
-and end with-expression,-url,-and,-or, or-notare no longer forbidden. These were originally intended to match vendor prefixes, but in practice no vendor prefixes for these functions ever existed in real browsers. -
User-defined functions named
EXPRESSION,URL, andELEMENT, those that begin with-and end with-ELEMENT, as well as the same names with some lowercase letters are now deprecated, These are names conflict with plain CSS functions that have special syntax.See the Sass website for details.
-
In a future release, calls to functions whose names begin with
-and end with-expressionand-urlwill no longer have special parsing. For now, these calls are deprecated if their behavior will change in the future.See the Sass website for details.
-
Calls to functions whose names begin with
-and end with-progid:...are deprecated.See the Sass website for details.
-
- 1.98.010 Mar 2026
Additional notes
Open source →Command-Line Interface
- Gracefully handle dependency loops in
--watchmode.
Dart API
- Add a
const Logger.defaultLoggerfield. This provides a logger that emits to standard error or the browser console, but automatically chooses whether to use terminal colors.
JavaScript API
-
Fix a crash when manually constructing a
SassCalculationfor'calc'with an argument that can't be simplified. -
Properly emit deprecation warnings as text rather than
StringBufferobjects when running in a browser. -
Emit colored warnings and other messages on the console when running in a browser.
- Gracefully handle dependency loops in
- 1.97.321 Jan 2026
Additional notes
Open source →- Fix a bug where nesting an at-rule within multiple style rules in plain CSS could cause outer style rules to be omitted.
- 1.97.26 Jan 2026
Additional notes
Open source →- Additional fixes for implicit configuration when nested imports are involved.
- 1.97.119 Dec 2025
Additional notes
Open source →- Fix a bug with the new CSS-style
if()syntax where values would be evaluated even if their conditions didn't match.
- Fix a bug with the new CSS-style
- 1.97.016 Dec 2025
- 1.96.011 Dec 2025
Release notes
Open source →- Allow numbers with complex units (more than one numerator unit or more than
zero denominator units) to be emitted to CSS. These are now emitted as
calc()expressions, which now support complex units in plain CSS.
- Allow numbers with complex units (more than one numerator unit or more than
zero denominator units) to be emitted to CSS. These are now emitted as
- 1.95.110 Dec 2025
- 1.95.09 Dec 2025
Release notes
Open source →-
Add support for the CSS-style
if()function. In addition to supporting the plain CSS syntax, this also supports asass()query that takes a Sass expression that evaluates totrueorfalseat preprocessing time depending on whether the Sass value is truthy. If there are no plain-CSS queries, the function will return the first value whose query returns true during preprocessing. For example,if(sass(false): 1; sass(true): 2; else: 3)returns2. -
The old Sass
if()syntax is now deprecated. Users are encouraged to migrate to the new CSS syntax.if($condition, $if-true, $if-false)can be changed toif(sass($condition): $if-true; else: $if-false).See the Sass website for details.
-
Plain-CSS
if()functions are now considered "special numbers", meaning that they can be used in place of arguments to CSS color functions. -
Plain-CSS
if()functions andattr()functions are now considered "special variable strings" (likevar()), meaning they can now be used in place of multiple arguments or syntax fragments in various CSS functions.
-
- 1.93.331 Oct 2025
- 1.93.223 Sept 2025
Release notes
Open source →- No user-visible changes.
JavaScript API
- Fix another error in the release process for
@sass/types.
- 1.93.122 Sept 2025
Release notes
Open source →- No user-visible changes.
JavaScript API
- Fix an error in the release process for
@sass/types.
- 1.93.019 Sept 2025
Release notes
Open source →- Fix a crash when a style rule contains a nested
@import, and the loaded file@uses a user-defined module as well as@includes a top-level mixin which emits top-level declarations.
JavaScript API
- Release a
@sass/typespackage which contains the type annotations used by both thesassandsass-embeddedpackage without any additional code or dependencies.
- Fix a crash when a style rule contains a nested
- 1.92.16 Sept 2025
Release notes
Open source →- Fix a bug where variable definitions from one imported, forwarded module would not be passed as implicit configuration to a later imported, forwarded module.
- 1.92.02 Sept 2025
Release notes
Open source →-
Breaking change: Emit declarations, childless at-rules, and comments in the order they appear in the source even when they're interleaved with nested rules. This obsoletes the
mixed-declsdeprecation. -
Breaking change: The function name
type()is now fully reserved for the plain CSS function. This means that@functiondefinitions with the nametypewill produce errors, while function calls will be parsed as special function strings. -
Configuring private variables using
@use ... with,@forward ... with, andmeta.load-css(..., $with: ...)is now deprecated. Private variables were always intended to be fully encapsulated within the module that defines them, and this helps enforce that encapsulation. -
Fix a bug where
@extendrules loaded through a mixture of@importand@userules could fail to apply correctly.
Command-Line Interface
- In
--watchmode, delete the source map when the associated source file is deleted.
-
- 1.91.025 Aug 2025
Release notes
Open source →-
Potentially breaking change:
meta.inspect()(as well as other systems that use it such as@debugand certain error messages) now emits numbers with as high precision as is available instead of rounding to the nearest 1e⁻¹⁰ as we do when serializing to CSS. This better fits the purpose ofmeta.inspect(), which is to provide full information about the structure of a Sass value. -
Passing a rest argument (
$arg...) before a positional or named argument when calling a function or mixin is now deprecated. This was always outside the specified syntax, but it was historically treated the same as passing the rest argument at the end of the argument list whether or not that matched the visual order of the arguments.
-
- 1.90.05 Aug 2025
Release notes
Open source →- Allow a
@forwarded module to be loaded with a configuration when that module has already been loaded with a different configuration and the module doesn't define any variables that would have been configured anyway.
- Allow a