Releases: sass/dart-sass
Dart Sass 1.0.0-beta.5.2
- Fix a bug where some colors would crash
compressedmode.
Dart Sass 1.0.0-beta.5.1
-
Add a
compressedoutput style. -
Emit a warning when
&&is used, since it's probably not what the user means. -
round()now returns the correct results for negative numbers that should round down. -
var()may now be passed in place of multiple arguments torgb(),rgba(),hsl()andhsla(). -
Fix some cases where equivalent numbers wouldn't count as the same keys in maps.
-
Fix a bug where multiplication like
(1/1px) * (1px/1)wouldn't properly cancel out units. -
Fix a bug where dividing by a compatible unit would produce an invalid result.
-
Remove a non-
sh-compatible idiom from the standalone shell script.
Dart API
-
Add a
functionsparameter tocompile(),compleString(),compileAsync(), andcompileStringAsync(). This allows users to define custom functions in Dart that can be invoked from Sass stylesheets. -
Expose the
CallableandAsyncCallabletypes, which represent functions that can be invoked from Sass. -
Expose the
Valuetype and its subclasses, as well as the top-levelsassTrue,sassFalse, andsassNullvalues, which represent Sass values that may be passed into or returned from custom functions. -
Expose the
OutputStyleenum, and add astyleparameter tocompile(),compleString(),compileAsync(), andcompileStringAsync()that allows users to control the output style.
Node JS API
-
Support the
functionsoption. -
Support the
"compressed"value for theoutputStyleoption.
Dart Sass 1.0.0-beta.4
-
Support unquoted imports in the indented syntax.
-
Fix a crash when
:not(...)extends a selector that appears in:not(:not(...)).
Node JS API
- Add support for asynchronous importers to
render()andrenderSync().
Dart API
-
Add
compileAsync()andcompileStringAsync()methods. These run asynchronously, which allows them to take asynchronous importers (see below). -
Add an
AsyncImporterclass. This allows imports to be resolved asynchronously in case no synchronous APIs are available.AsyncImporters are only compatible withcompileAysnc()andcompileStringAsync().
Dart Sass 1.0.0-beta.3
-
Properly parse numbers with exponents.
-
Don't crash when evaluating CSS variables whose names are entirely interpolated (for example,
#{--foo}: ...).
Node JS API
- Add support for the
importeroption torender()andrenderSync(). Only synchronous importers are currently supported.
Dart API
-
Added an
Importerclass. This can be extended by users to provide support for custom resolution for@importrules. -
Added built-in
FilesystemImporterandPackageImporterimplementations that support resolvingfile:andpackage:URLs, respectively. -
Added an
importersargument to thecompile()andcompileString()functions that providesImporters to use when resolving@importrules. -
Added a
loadPathsargument to thecompile()andcompileString()functions that provides paths to search for stylesheets when resolving@importrules. This is a shorthand for passingFilesystemImporters to theimportersargument.
Dart Sass 1.0.0-beta.2
-
Add support for the
::slotted()pseudo-element. -
Generated transparent colors will now be emitted as
rgba(0, 0, 0, 0)rather
thantransparent. This works around a bug wherein IE incorrectly handles the
latter format.
Command-Line Interface
- Improve the logic for whether to use terminal colors by default.
Dart Sass 1.0.0-beta.1
-
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
@extendwere allowed outside of a style rule in certain circumstances. -
Fix
notin parentheses in@supportsconditions. -
Allow
urlas 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
@extendbugs:-
selector-extend()andselector-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.
-
Dart Sass 1.0.0-alpha.9
- Elements without a namespace (such as
div) are no longer unified with elements with the empty namespace (such as|div). This unification didn't match the results returned byis-superselector(), and was not guaranteed to be valid. - Support
&within@at-root. - Properly error when a compound selector is followed immediately by
&. - Properly handle variable scoping in
@at-rootand nested properties. - Properly handle placeholder selectors in selector pseudos.
- Properly short-circuit the
orandandoperators. - Support
--$variable. - Don't consider unitless numbers equal to numbers with units.
- Warn about using named colors in interpolation.
- Don't emit loud comments in functions.
- Detect import loops.
- Fix
@importwith asupports()clause. - Forbid functions named "and", "or", and "not".
- Fix
type-of()with a function. - Emit a nicer error for invalid tokens in a selector.
- Fix
invert()with a$weightparameter. - Fix a unit-parsing edge-cases.
- Always parse imports with queries as plain CSS imports.
- Support
&followed by a non-identifier. - Properly handle split media queries.
- Properly handle a placeholder selector that isn't at the beginning of a compound selector.
- Fix more
str-slice()bugs. - Fix the
%operator. - Allow whitespace between
=and the mixin name in the indented syntax. - Fix some slash division edge cases.
- Fix
notwhen used like a function. - Fix attribute selectors with single-character values.
- Fix some bugs with the
call()function. - Properly handle a backslash followed by a CRLF sequence in a quoted string.
- Fix numbers divided by colors.
- Support slash-separated numbers in arguments to plain CSS functions.
- Error out if a function is passed an unknown named parameter.
- Improve the speed of loading large files on Node.
- Don't consider browser-prefixed selector pseudos to be superselectors of differently- or non-prefixed selector pseudos with the same base name.
- Fix an
@extendedge case involving multiple combinators in a row. - Fix a bug where a
@contentblock could get incorrectly passed to a mixin. - Properly isolate the lexical environments of different calls to the same mixin and function.
Dart Sass 1.0.0-alpha.8
- Add the
content-exists()function. - Support interpolation in loud comments.
- Fix a bug where even valid semicolons and exclamation marks in custom property values were disallowed.
- Disallow invalid function names.
- Disallow extending across media queries.
- Properly parse whitespace after
...in argument declaration lists. - Support terse mixin syntax in the indented syntax.
- Fix
@at-rootquery parsing. - Support special functions in
@-moz-document. - Support
...after a digit. - Fix some bugs when treating a map as a list of pairs.
Dart Sass 1.0.0-alpha.7
- Fix
function-exists(),variable-exists(), andmixin-exists()to use the lexical scope rather than always using the global scope. str-index()now correctly inserts at negative indices.- Properly parse
url()s that contain comment-like text. - Fix a few more small
@extendbugs. - Fix a bug where interpolation in a quoted string was being dropped in some circumstances.
- Properly handle
@forrules where each bound has a different unit. - Forbid mixins and functions from being defined in control directives.
- Fix a superselector-computation edge case involving
:not(). - Gracefully handle input files that are invalid UTF-8.
- Print a Sass stack trace when a file fails to load.
Dart Sass 1.0.0-alpha.6
- Allow
var()to be passed torgb(),rgba(),hsl(), andhsla(). - Fix conversions between numbers with
dpi,dpcm, anddppxunits. Previously these conversions were inverted. - Don't crash when calling
str-slice()with an$end-atindex lower than the$start-atindex. str-slice()now correctly returns""when$end-atis negative and points before the beginning of the string.- Interpolation in quoted strings now properly preserves newlines.
- Don't crash when passing only
$hueor no keyword arguments toadjust-color(),scale-color(), orchange-color(). - Preserve escapes in identifiers. This used to only work for identifiers in SassScript.
- Fix a few small
@extendbugs.