NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #5239 most downloaded on pub.dev
Additional APIs for Dart Sass.
Last release 7 days ago
11 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
168 releases · first in 2021
One column per quarter.
Refactor the CssMediaQuery API to support new logical operators:
Refactor the CssMediaQuery API to support new logical operators:
Rename the features field to conditions, to reflect the fact that it can
contain more than just the <media-feature> production.
Add a conjunction field to track whether conditions are matched
conjunctively or disjunctively.
Rename the default constructor to CssMediaQuery.type() to reflect the fact
that it's no longer by far the most commonly used form of media query.
Add a required conjunction argument to CssMediaQuery.condition().
Delete the isCondition getter.
Provide access to Sass's selector AST, including the following classes:
Selector, ListSelector, ComplexSelector, ComplexSelectorComponent,
Combinator, CompoundSelector, SimpleSelector, AttributeSelector,
AttributeOperator, ClassSelector, IdSelector, ParentSelector,
PlaceholderSelector, PseudoSelector, TypeSelector, UniversalSelector,
and QualifiedName.
Provide access to the SelectorVisitor and RecursiveSelectorVisitor
classes.
Provide access to the Value.assertSelector(),
Value.assertComplexSelector(), Value.assertCompoundSelector(), and
Value.assertSimpleSelector() methods.
Remove the deprecated render() function.
Initial stable release.
! in custom property values (#260).render() function.Errors are now subtypes of the Error type.
Allow both the data and file options to be passed to render() and
renderSync() at once. The data option will be used as the contents of the
stylesheet, and the file option will be used as the path for error reporting
and relative imports. This matches Node Sass's behavior.
First stable release.
No user-visible changes since 1.0.0-beta.48.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
Fix an issue where RecursiveAstVisitor was not implementing visitCalculationExpression.
RecursiveAstVisitor was not implementing
visitCalculationExpression.Fix a bug where RecursiveAstVisitor.visitAtRootRule wouldn't visit any nodes interpolated into the @at-root's query.
RecursiveAstVisitor.visitAtRootRule wouldn't visit any nodes
interpolated into the @at-root's query.* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
* No user-visible changes.
Add the CalculationExpression type to represent calculations in the Sass AST.
Add the CalculationExpression type to represent calculations in the Sass
AST.
Add the ExpressionVisitor.visitCalculationExpression method.
* No user-visible changes.
* No user-visible changes.
Add the SassApiColor extension to the "Value" DartDoc category.
SassApiColor extension to the "Value" DartDoc category.Add SassColor.hasCalculatedRgb and .hasCalculatedHsl extension getters.
SassColor.hasCalculatedRgb and .hasCalculatedHsl extension getters.Support unquoted imports in the indented syntax.
Support unquoted imports in the indented syntax.
Fix a crash when :not(...) extends a selector that appears in
:not(:not(...)).
render() and renderSync().Add compileAsync() and compileStringAsync() methods. These run
asynchronously, which allows them to take asynchronous importers (see below).
Add an AsyncImporter class. This allows imports to be resolved
asynchronously in case no synchronous APIs are available. AsyncImporters are
only compatible with compileAysnc() and compileStringAsync().
UseRule, ForwardRule, and DynamicImport now share a common Dependency
interface that exposes a url getter and a urlSpan getter.
VariableDeclaration, MixinRule, FunctionRule, Argument, and
ConfiguredVariable now share a common SassDeclaration interface that
exposes a name getter (with underscores converted to hyphens) and a
nameSpan getter.
Function calls with interpolation have now been split into their own AST node:
InterpolatedFunctionExpression. FunctionExpression.name is now always a
string (with underscores converted to hyphens). FunctionExpression also now
has an originalName getter, which leaves underscores as-is.
VariableExpression, IncludeRule, and FunctionExpression now share a
common SassReference interface that exposes a namespace getter and a
name getter (with underscores converted to hyphens), as well as
corresponding namespaceSpan and nameSpan getters.
Properly parse numbers with exponents.
Properly parse numbers with exponents.
Don't crash when evaluating CSS variables whose names are entirely
interpolated (for example, #{--foo}: ...).
importer option to render() and renderSync().
Only synchronous importers are currently supported.Added an Importer class. This can be extended by users to provide support
for custom resolution for @import rules.
Added built-in FilesystemImporter and PackageImporter implementations that
support resolving file: and package: URLs, respectively.
Added an importers argument to the compile() and compileString()
functions that provides Importers to use when resolving @import rules.
Added a loadPaths argument to the compile() and compileString()
functions that provides paths to search for stylesheets when resolving
@import rules. This is a shorthand for passing FilesystemImporters to the
importers argument.
Add support for the ::slotted() pseudo-element.
Add support for the ::slotted() pseudo-element.
Generated transparent colors will now be emitted as rgba(0, 0, 0, 0) rather
than transparent. This works around a bug wherein IE incorrectly handles the
latter format.
Add support for data, includePaths, indentedSyntax, lineFeed,
indentWidth, and indentType options to render() and renderSync().
The result object returned by render() and renderSync() now includes the
stats object which provides metadata about the compilation process.
The error object thrown by render() and renderSync() now includes line,
column, file, status, and formatted fields. The message field and
toString() also provide more information.
renderString() method for rendering Sass source that's not in a file
on disk.Drop support for the reference combinator. This has been removed from the spec, and will be deprecated and eventually removed in other implementations…
Drop support for the reference combinator. This has been removed from the spec, and will be deprecated and eventually removed in other implementations.
Trust type annotations when compiling to JavaScript, which makes it substantially faster.
Compile to minified JavaScript, which decreases the code size substantially and makes startup a little faster.
Fix a crash when inspecting a string expression that ended in "\a".
Fix a bug where declarations and @extend were allowed outside of a style
rule in certain circumstances.
Fix not in parentheses in @supports conditions.
Allow url as an identifier name.
Properly parse /***/ in selectors.
Properly parse unary operators immediately after commas.
Match Ruby Sass's rounding behavior for all functions.
Allow \ at the beginning of a selector in the indented syntax.
Fix a number of @extend bugs:
selector-extend() and selector-replace() now allow compound selector
extendees.
Remove the universal selector * when unifying with other selectors.
Properly unify the result of multiple simple selectors in the same compound selector being extended.
Properly handle extensions being extended.
Properly follow the first law of @extend.
Fix selector specificity tracking to follow the
second law of @extend.
Allow extensions that match selectors but fail to unify.
Partially-extended selectors are no longer used as parent selectors.
Fix an edge case where both the extender and the extended selector have invalid combinator sequences.
Don't crash with a "Bad state: no element" error in certain edge cases.
Your coding agent can read these notes before it upgrades. Set up the MCP server →