sass
A Sass implementation in Dart.
1.103.1
99K downloads/mo
#1143 most downloaded on pub.dev
sass/dart-sass
What this package is like to depend on
Last release 3 days ago
20 Aug 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 304 of 330 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
354 releases · first in 2013
30 releases in the last 12 months
see the full history below
Release timeline
354 releases · Nov 2013 to Aug 2026Releases
latest 60 of 354-
1.103.120 Aug 2026Release notes
Open source →To install Sass 1.103.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
- No user-visible changes.
See the full changelog for changes in earlier releases.
-
1.103.020 Aug 2026Release notes
Open source →To install Sass 1.103.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
- Potentially breaking compatibility fix: Colors now preserve "analogous sets" of missing channels during conversions, per the CSS spec. For example,
color.to-space(lch(50% none none), lab)now returnslab(50% none none)instead oflab(50% 0 0).
See the full changelog for changes in earlier releases.
Release notes
Open source →- Potentially breaking compatibility fix: Colors now preserve "analogous
sets" of missing channels during conversions, per the CSS spec. For example,
color.to-space(lch(50% none none), lab)now returnslab(50% none none)instead oflab(50% 0 0).
- Potentially breaking compatibility fix: Colors now preserve "analogous sets" of missing channels during conversions, per the CSS spec. For example,
-
1.102.025 Jul 2026Release notes
Open source →To install Sass 1.102.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
- Use the 2.4 gamma transfer function for rec2020, as specified by the latest draft of CSS Color 4.
See the full changelog for changes in earlier releases.
Release notes
Open source →- Use the 2.4 gamma transfer function for rec2020, as specified by the latest draft of CSS Color 4.
-
1.101.723 Jul 2026Release notes
Open source →To install Sass 1.101.7, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
- No user-visible changes.
See the full changelog for changes in earlier releases.
-
1.101.622 Jul 2026 -
1.101.522 Jul 2026 -
1.101.422 Jul 2026Release notes
Open source →-
Avoid emitting
rgb()orrgba()functions with non-percent decimal channels. Older browsers only support integer values or (potentially decimal) percentages for these functions, so in order to preserve backwards-compatibility while retaining full precision for modern browsers, legacy colors that contain at least one non-integer channel will now use percentages for their channels (for example,rgb(0%, 100%, 50%)rather thanrgb(0, 255, 127.5)). -
Fix a bug where the values of plain-CSS
if()expressions were emitted using theirmeta.inspect()format rather than their CSS serialization format.
-
-
1.101.321 Jul 2026 -
1.101.210 Jul 2026Release notes
Open source →- Fix a bug where the deprecation warning for vendor-prefixed
expression()functions would incorrectly indicate whether or not the function would be invalid Sass in Dart Sass 2.0.0.
- Fix a bug where the deprecation warning for vendor-prefixed
-
1.101.011 Jun 2026Release 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 2026Release 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.002 Apr 2026Release 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 2026Release 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 2026Release 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.206 Jan 2026Release notes
Open source →- Additional fixes for implicit configuration when nested imports are involved.
-
1.97.119 Dec 2025Release 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 2025Release 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.109 Dec 2025 -
1.95.008 Dec 2025Release 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.94.308 Dec 2025Release notes
Open source →- Fix the span reported for standalone
%expressions followed by whitespace.
- Fix the span reported for standalone
-
1.94.219 Nov 2025Release notes
Open source →Command-Line Interface
- Using
--fatal-deprecation <version>no longer emits warnings about deprecations that are obsolete.
Dart API
Deprecation.forVersionnow excludes obsolete deprecations from the set it returns.
JS API
- Excludes obsolete deprecations from
fatalDeprecationswhen aVersionis passed.
Node.js Embedded Host
- Fix a bug where a variable could be used before it was initialized during async compilation.
- Using
-
1.94.118 Nov 2025 -
1.94.010 Nov 2025Release notes
Open source →-
Potentially breaking compatibility fix:
@functionrules whose names begin with--are now parsed as unknown at-rules to support the plain CSS@functionrule. Within this rule, theresultproperty is parsed as raw CSS just like custom properties. -
Potentially breaking compatibility fix:
@mixinrules whose names begin with--are now errors. These are not yet parsed as unknown at-rules because no browser currently supports CSS mixins.
-
-
1.93.331 Oct 2025 -
1.93.223 Sep 2025Release notes
Open source →- No user-visible changes.
JavaScript API
- Fix another error in the release process for
@sass/types.
-
1.93.122 Sep 2025Release notes
Open source →- No user-visible changes.
JavaScript API
- Fix an error in the release process for
@sass/types.
-
1.93.019 Sep 2025Release 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.105 Sep 2025Release 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.002 Sep 2025Release 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 2025Release 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.005 Aug 2025Release 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
-
1.89.209 Jun 2025Release notes
Open source →Embedded Host
- Fixed a compilation error caused by an outdated
bufdependency.
- Fixed a compilation error caused by an outdated
-
1.89.130 May 2025 -
1.89.016 May 2025Release notes
Open source →- Allow the Node package importer to load files even when there are multiple potential resolutions, as long as those resolutions all point to the same file.
-
1.88.010 May 2025Release notes
Open source →-
Allow custom properties with empty values (such as
--var:;). -
Fix a bug when calculating source spans for interpolations.
Dart and JS APIs
- Potentially breaking bug fix: Throw an error when passing a function or mixin object from one compilation to another.
Dart API
- Deprecate passing a relative URL to
compileString()and related functions.
-
-
1.87.021 Apr 2025Release notes
Open source →- Potentially breaking bug fix: When a plain CSS file with a top-level
nesting selector
&is loaded into a nested Sass context viameta.load-css()or@import, Sass now emits plain CSS nesting rather than incorrectly combining it with the parent selector using a descendant combinator.
- Potentially breaking bug fix: When a plain CSS file with a top-level
nesting selector
-
1.86.304 Apr 2025Release notes
Open source →- Fix a bug introduced in 1.86.1 where Sass fails to resolve paths starting with
a
..segment.
- Fix a bug introduced in 1.86.1 where Sass fails to resolve paths starting with
a
-
1.86.202 Apr 2025 -
1.86.101 Apr 2025Release notes
Open source →- Improve the performance of
file:URL case canonicalization on Windows and Mac OS.
- Improve the performance of
-
1.86.017 Mar 2025Release notes
Open source →-
Add support for
%as an expression in its own right. It will still be parsed as the modulo operator when between two other expressions, but in any other context it will be an expression whose value is the unquoted string%. -
Consider
attr()to be a special number function that can be used as a channel in color functions. -
Deprecate user-defined functions named
type()so that we can eventually support the new CSStype()function.
Dart API
- Increase the minimum Dart SDK to 3.6.0.
-
-
1.85.125 Feb 2025Release notes
Open source →- Fix a bug where global Sass functions whose names overlap with CSS math
functions could incorrectly be treated as CSS math functions even though they
used Sass-only features, causing compilation failures. For example,
round(-$var / 2)previously threw an error but now works as intended.
- Fix a bug where global Sass functions whose names overlap with CSS math
functions could incorrectly be treated as CSS math functions even though they
used Sass-only features, causing compilation failures. For example,
-
1.85.014 Feb 2025Release notes
Open source →- No longer fully trim redundant selectors generated by
@extend. This caused unacceptable performance issues for certain heavy users of@extend. We'll try to find a more performant way to accomplish it in the future.
- No longer fully trim redundant selectors generated by
-
1.84.006 Feb 2025Release notes
Open source →-
Allow newlines in whitespace in the indented syntax.
-
Potentially breaking bug fix: Selectors with unmatched brackets now always produce a parser error. Previously, some edge cases like
[foo#{"]:is(bar"}) {a: b}would compile without error, but this was an unintentional bug. -
Fix a bug in which various Color Level 4 functions weren't allowed in plain CSS.
-
Fix the error message for
@extendwithout a selector and possibly other parsing edge-cases in contexts that allow interpolation.
Embedded Host
- Fixed the implementation of the
SassBooleantype to adhere to the spec, now using a class instead of an interface.
-
-
1.83.414 Jan 2025 -
1.83.314 Jan 2025 -
1.83.214 Jan 2025Release notes
Open source →-
Properly display deprecation IDs for the JS Sass API.
-
Don't display deprecation IDs for user-defined deprecations.
-
-
1.83.104 Jan 2025Release notes
Open source →-
Fix a bug where
--quiet-depswould get deactivated for@contentblocks, even when those blocks were entirely contained within dependencies. -
Include deprecation IDs in deprecation warnings to make it easier to determine what to pass to
--silence-deprecationor--fatal-deprecation.
-
-
1.83.012 Dec 2024 -
1.82.003 Dec 2024Release notes
Open source →Command-Line Interface
-
Improve
--watchmode reliability when making multiple changes at once, such as checking out a different Git branch. -
Parse the
calc-size()function as a calculation now that it's supported in some browsers.
Dart API
- Add a
SassCalculation.calcSize()function.
-
-
1.81.103 Dec 2024 -
1.81.015 Nov 2024Release notes
Open source →-
Fix a few cases where deprecation warnings weren't being emitted for global built-in functions whose names overlap with CSS calculations.
-
Add support for the CSS
round()calculation with a single argument, as long as that argument might be a unitless number.
-
-
1.80.712 Nov 2024Release notes
Open source →Embedded Host
- Don't treat
0asundefinedfor thegreenandbluechannels in theLegacyColorconstructor.
- Don't treat
-
1.80.601 Nov 2024Release notes
Open source →Command-Line Interface
- Make
@parcel/watcheran optional dependency so this can still be installed on operating systems where it's unavailable.
- Make
-
1.80.529 Oct 2024Release notes
Open source →Embedded Host
- Don't produce phantom
@importdeprecations when using an importer with the legacy API.
- Don't produce phantom
-
1.80.423 Oct 2024 -
1.80.318 Oct 2024Release notes
Open source →-
Fix a bug where
@import url("...")would crash in plain CSS files. -
Improve consistency of how warnings are emitted by different parts of the compiler. This should result in minimal user-visible changes, but different types of warnings should now respond more reliably to flags like
--quiet,--verbose, and--silence-deprecation.
-
-
1.80.217 Oct 2024Release notes
Open source →- Fix a bug where deprecation warnings were incorrectly emitted for the
plain-CSS
invert()function.
- Fix a bug where deprecation warnings were incorrectly emitted for the
plain-CSS
-
1.80.117 Oct 2024Release notes
Open source →- Fix a bug where repeated deprecation warnings were not automatically limited.
-
1.80.017 Oct 2024Release notes
Open source →@importis now officially deprecated, as are global built-in functions that are available within built-in modules. See the Sass blog post for more details on the deprecation process.
Embedded Host
- Fix an error that would sometimes occur when deprecation warnings were emitted when using a custom importer with the legacy API.