The reference implementation of Sass, written in Dart.
MIT License
Bot releases are hidden (Show)
Published by nex3 over 6 years ago
compressed
mode.Published by nex3 over 6 years ago
Add a compressed
output 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 to rgb()
, rgba()
, hsl()
and hsla()
.
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.
Add a functions
parameter to compile()
, compleString()
, compileAsync()
, and compileStringAsync()
. This allows users to define custom functions in Dart that can be invoked from Sass stylesheets.
Expose the Callable
and AsyncCallable
types, which represent functions that can be invoked from Sass.
Expose the Value
type and its subclasses, as well as the top-level sassTrue
, sassFalse
, and sassNull
values, which represent Sass values that may be passed into or returned from custom functions.
Expose the OutputStyle
enum, and add a style
parameter to compile()
, compleString()
, compileAsync()
, and compileStringAsync()
that allows users to control the output style.
Support the functions
option.
Support the "compressed"
value for the outputStyle
option.
Published by nex3 almost 7 years ago
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. AsyncImporter
s are only compatible with compileAysnc()
and compileStringAsync()
.
Published by nex3 almost 7 years ago
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 Importer
s 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 FilesystemImporter
s to the importers
argument.
Published by nex3 over 7 years ago
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.
Published by nex3 over 7 years ago
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.
Published by nex3 over 7 years ago
div
) are no longer unified with elements with the empty namespace (such as |div
). This unification didn't match the results returned by is-superselector()
, and was not guaranteed to be valid.&
within @at-root
.&
.@at-root
and nested properties.or
and and
operators.--$variable
.@import
with a supports()
clause.type-of()
with a function.invert()
with a $weight
parameter.&
followed by a non-identifier.str-slice()
bugs.%
operator.=
and the mixin name in the indented syntax.not
when used like a function.call()
function.@extend
edge case involving multiple combinators in a row.@content
block could get incorrectly passed to a mixin.Published by nex3 almost 8 years ago
content-exists()
function....
in argument declaration lists.@at-root
query parsing.@-moz-document
....
after a digit.Published by nex3 almost 8 years ago
function-exists()
, variable-exists()
, and mixin-exists()
to use the lexical scope rather than always using the global scope.str-index()
now correctly inserts at negative indices.url()
s that contain comment-like text.@extend
bugs.@for
rules where each bound has a different unit.:not()
.Published by nex3 almost 8 years ago
var()
to be passed to rgb()
, rgba()
, hsl()
, and hsla()
.dpi
, dpcm
, and dppx
units. Previously these conversions were inverted.str-slice()
with an $end-at
index lower than the $start-at
index.str-slice()
now correctly returns ""
when $end-at
is negative and points before the beginning of the string.$hue
or no keyword arguments to adjust-color()
, scale-color()
, or change-color()
.@extend
bugs.Published by nex3 almost 8 years ago
opacify()
, fade-in()
, transparentize()
, and fade-out()
.@extend
superselector calculations.#{...}--
would fail to parse in selectors.saturate()
for use in filter contexts.**/
would fail to close a loud comment.@import
s to the top of the document.Published by nex3 almost 8 years ago
=
operator.@debug
rules.1 + - 2
and similar constructs would crash the parser.@extend
produced the wrong result when used with selector combinators.mixin-exists()
function.:nth-child()
and :nth-last-child()
parsing when they contain of selector
.Published by nex3 almost 8 years ago
opacify()
and related functions.stack_trace
package.Published by nex3 almost 8 years ago
Published by nex3 almost 8 years ago
This is the initial alpha prerelease of Dart Sass. It's not production-ready by any means, but it's complete enough for users to play around with it.