Repository navigation
Releases
Dart Sass 1.108.1
To install Sass 1.108.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Node.js Embedded Host
- Fix an issue in the release process causing the OS-specific embedded Sass packages to be missing their Dart Sass snapshots.
See the full changelog for changes in earlier releases.
Dart Sass 1.108.0
To install Sass 1.108.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
- Undo some unintentional breaking changes added in 1.106.0 relating to how escaped identifiers interact with
sass:metafunctions and named rest arguments.
See the full changelog for changes in earlier releases.
Dart Sass 1.107.1
To install Sass 1.107.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
- Properly report the embedded protocol version as 3.4.0.
See the full changelog for changes in earlier releases.
Dart Sass 1.107.0
To install Sass 1.107.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Command-Line Interface
-
The
--fatal-deprecationflag can now exclude deprecations that would otherwise be included by passing a version number. To exclude a deprecation, add-before its name. For example,--fatal-deprecation=1.107.0,-importincludes all deprecations that were present in Dart Sass 1.107.0 except for the@importdeprecation. -
The
--fatal-deprecationflag now takes the special valuedart-sass-2, which treats as fatal all deprecations that will become fatal in Dart Sass 2.0.0.
JavaScript API
-
Options.fatalDeprecationscan now take aDeprecationSelectorDifferenceobject of the form{include: ..., except: ...}, where theincludefield lists deprecations to mark fatal (which can be version numbers) and theexceptfield lists deprecations not to mark fatal. Theexceptfield takes precedence overinclude. -
Add a (non-enumerable)
sass.deprecations.dartSass2property which can be passed toOptions.fatalDeprecationsto mark as fatal exactly the deprecations that will become fatal in Dart Sass 2.0.0. This can be combined with other deprecations or used in aDeprecationSelectorDifferenceto modify exactly which deprecations it covers. -
Passing a version number beyond the current Dart Sass version to
Options.fatalDeprecationsis now deprecated. See the Sass website for details.
Dart API
-
Add a
Deprecation.dartSass2property which returns exactly the set of deprecations that will become fatal in Dart Sass 2.0.0. -
Passing a version number beyond the current Dart Sass version to
Deprecation.forVersionis now deprecated.
Embedded Protocol
- Add a
CompileRequest.fatal_deprecation_exceptfield which excludes deprecations from being considered fatal if they would have been enabled byCompileRequest.fatal_deprecation.
See the full changelog for changes in earlier releases.
Dart Sass 1.106.1
To install Sass 1.106.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
-
Fix a bug where an attribute selector with an empty value (such as
[class=""]) would crash when serializing. -
Don't crash when serializing a number with an empty unit. This is only possible through the JavaScript and Dart APIs or the embedded protocol.
Embedded Dart Sass
- More robustly convert invalid value errors into
PARAMSerrors.
See the full changelog for changes in earlier releases.
Dart Sass 1.106.0
To install Sass 1.106.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
-
Don't normalize CSS escapes in statement contexts that can contain interpolation. For example,
@f\6Fois now emitted as written rather than normalized to@foo. -
Fix a bug where quotes would be removed from attribute selector values that contained backslashes.
-
Fix invalid source spans that could cause crashes when encountering a syntax error in selectors or media queries that also contain escape sequences.
-
Fix a bug where the indented syntax parser would crash when parsing a file where the first statement was indented and appeared after the first line.
-
Fix a bug that could cause crashes when encountering errors or warnings in interpolations that contain patterns like
// */. -
Potentially breaking compatibility fix: CSS escape codes whose values are 0, for Unicode surrogates, or greater than the maximum allowed code point are now consistently normalized to U+FFFD REPLACEMENT CHARACTER in expression contexts. Previously, in some cases these were instead normalized to the normalized form of the original escape sequence, which violates the principle that all escape sequences for identical values should be normalized the same way. In other cases, these would simply throw errors.
As a special case,
\0on its own will continue to be normalized to\0to support historical CSS hacks. -
Potentially breaking bug fix: Throw an error for mixins and functions that have rest parameters which are the same as normal parameters. Previously, the positional parameters wouldn't be accessible and calling such a mixin or function with a named argument would crash the compiler.
-
Potentially breaking bug fix: Fix various cases where using a CSS escape code at the beginning of an identifier would change parsing behavior versus using the character directly.
-
Potentially breaking bug fix: When a number's unit is ambiguous with a numeric exponent, the unit is now serialized as an escape code rather than a literal
eto avoid being interpreted as an exponent by CSS. -
Potentially breaking bug fix: Don't parse a CSS escape code for U+45 LATIN CAPITAL LETTER E or U+65 LATIN LOWERCASE LETTER E as an exponent in
@keyframespercentage selectors. -
Potentially breaking bug fix: Properly normalize underscores written as CSS escape codes in variable, mixin, and function names.
See the full changelog for changes in earlier releases.
Dart Sass 1.105.2
To install Sass 1.105.2, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Node.js Embedded Host
- Fix a deadlock when the async compiler fails to start.
See the full changelog for changes in earlier releases.
Dart Sass 1.105.1
To install Sass 1.105.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
- Improve error messages for
@extends across different media queries.
See the full changelog for changes in earlier releases.
Dart Sass 1.105.0
To install Sass 1.105.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
-
Add support for first-class modules. These can be accessed using the new
meta.load()andmeta.get-module()functions, and may be passed as the$moduleargument to numerous eistingsass:metafunctions. -
Add the
meta.css()mixin, which includes CSS from a first-class module.
JS API
- Add a
SassModuleclass and a correspondingValue.assertModule()method.
Dart API
- Add a
SassModuleclass and a correspondingValue.assertModule()method.
See the full changelog for changes in earlier releases.
Dart Sass 1.104.1
To install Sass 1.104.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
-
Fix a bug where loud comments before
@userules could be emitted multiple times under certain circumstances. -
Fix a bug in which an invalid selector at the end of an indented syntax stylesheet would cause the parser to crash instead of emitting a useful error message.
Command Line Interface
-
Many-to-many compilations no longer compile any files that appear in the output directory if the output directory is also within the source directory. This fixes a bug where
--watchmode could enter an infinite loop recompiling the same CSS file over and over. -
Sass now sets the modification time of output files to the time compilation started rather than the time it ended. This ensures that, if a source file is modified during compilation,
--watchand--updatemode will recompile the outputs to include the new source file contents.
See the full changelog for changes in earlier releases.