unstale

npm / sass

sass

What changed in sass 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

6 breaking5 deprecations12 new APIs and options10 behavior and defaults19 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.0 on npm

sass 152 changes

Breaking changes 6

  • Special values in colors now convert to 0 according to the CSS specification, which may affect compatibility.

    1.104.0release notes

  • Conversions now preserve analogous sets of missing color channels per the CSS spec, potentially changing conversion results.

    1.103.0release notes

  • Uses the 2.4 gamma transfer function for rec2020, matching the latest draft of CSS Color 4.

    1.102.0release notes

  • Legacy colors with non-integer channels now serialize channels as percentages in rgb() or rgba() functions to preserve browser compatibility and precision.

    1.101.4release notes

  • User-defined clamp functions are allowed and take precedence over the built-in function when unnamespaced.

    1.99.0release notes

  • Mixin rules whose names begin with -- now produce errors because browsers do not yet support CSS mixins.

    1.94.0release notes

Deprecations 5

  • Writing two compound selectors without whitespace, such as [class]a, is deprecated because it was always an error in CSS.

    1.100.0release notes

  • Certain user-defined names resembling CSS functions are deprecated because they conflict with special CSS function syntax.

    1.99.0release notes

  • Calls to functions whose names use the -progid suffix are deprecated.

    1.99.0release notes

  • Calls to hyphenated expression and URL functions are deprecated when their parsing behavior will change in a future release.

    1.99.0release notes

  • The old Sass if() syntax is deprecated in favor of the new CSS syntax.

    1.95.0release notes

New APIs and options 12

  • Sass now supports first-class modules that can be accessed and passed to sass:meta functions.

    1.105.0release notes

  • Adds a mixin that includes CSS from a first-class module.

    1.105.0release notes

  • Adds a function for accessing first-class modules.

    1.105.0release notes

  • Adds a function for accessing first-class modules.

    1.105.0release notes

  • Existing sass:meta functions can receive first-class modules through a new $module argument.

    1.105.0release notes

  • Adds a JavaScript API class representing Sass modules.

    1.105.0release notes

  • Adds a Dart API class representing Sass modules.

    1.105.0release notes

  • Adds a JavaScript API method for asserting that a value is a Sass module.

    1.105.0release notes

  • Adds a Dart API method for asserting that a value is a Sass module.

    1.105.0release notes

  • Parent selectors are supported at the document root and emitted as-is in CSS output.

    1.99.0release notes

  • Adds a const default logger that writes to standard error or the browser console and automatically selects terminal colors.

    1.98.0release notes

  • Sass now supports the display-p3-linear color space for color values.

    1.97.0release notes

Behavior and default changes 10

  • Output files use compilation start time, ensuring watch and update modes recompile sources modified during compilation.

    1.104.1release notes

  • Negative zero is serialized as -0 instead of 0 in CSS calculations for greater compatibility.

    1.104.0release notes

  • User-defined calc functions are allowed and take precedence over the built-in function when unnamespaced.

    1.99.0release notes

  • User-defined functions with specified hyphenated suffixes are no longer forbidden.

    1.99.0release notes

  • Warnings and other messages now appear in color on the console when running in a browser.

    1.98.0release notes

  • Numbers with complex units are emitted to CSS as calc expressions, which support complex units in plain CSS.

    1.96.0release notes

  • attr() functions can now replace multiple arguments or syntax fragments in various CSS functions.

    1.95.0release notes

  • Plain-CSS if() functions can now be used as arguments to CSS color functions.

    1.95.0release notes

  • Plain-CSS if() functions can now replace multiple arguments or syntax fragments in various CSS functions.

    1.95.0release notes

  • Functions named with -- are parsed as unknown at-rules, and result is parsed as raw CSS to support plain CSS @function.

    1.94.0release notes

Fixes and other changes 19

  • Fixes a deadlock when the async compiler fails to start.

    1.105.2release notes

  • Improves error messages for @extend rules across different media queries.

    1.105.1release notes

  • Reports a useful error instead of crashing when an invalid selector ends an indented syntax stylesheet.

    1.104.1release notes

  • Prevents loud comments before @use rules from being emitted multiple times.

    1.104.1release notes

  • Avoids recompiling output files inside the source directory, preventing an infinite recompilation loop.

    1.104.1release notes

  • Plain-CSS if() expression values are now emitted using CSS serialization rather than meta.inspect() formatting.

    1.101.4release notes

  • The Node package importer now resolves import-only Sass file variants declared in package.json exports, sass, and style fields when loaded via @import.

    1.101.0release notes

  • Deprecation warnings in browsers are now emitted as text instead of StringBuffer objects.

    1.98.0release notes

  • Fixes a crash when manually constructing a SassCalculation for calc with an argument that cannot be simplified.

    1.98.0release notes

  • Dependency loops in watch mode are now handled gracefully.

    1.98.0release notes

  • Fixes omitted outer style rules when nesting an at-rule within multiple style rules in plain CSS.

    1.97.3release notes

  • Additional fixes address implicit configuration when nested imports are involved.

    1.97.2release notes

  • Fixes CSS-style if() so values are not evaluated when their conditions do not match.

    1.97.1release notes

  • Fixes the span reported for standalone % expressions followed by whitespace.

    1.94.3release notes

  • Fixes a bug where a variable could be used before initialization during async compilation.

    1.94.2release notes

  • Now excludes obsolete deprecations from the returned set.

    1.94.2release notes

  • No longer emits warnings about deprecations that are obsolete when a version is specified.

    1.94.2release notes

  • Excludes obsolete deprecations when a Version is passed.

    1.94.2release notes

  • Fixed a performance regression introduced in Sass 1.92.0.

    1.93.3release notes