dart-sass

The reference implementation of Sass, written in Dart.

MIT License

Downloads
62.4M
Stars
3.8K
Committers
70

Bot releases are hidden (Show)

dart-sass - Dart Sass 1.0.0-beta.5.2

Published by nex3 over 6 years ago

  • Fix a bug where some colors would crash compressed mode.
dart-sass - Dart Sass 1.0.0-beta.5.1

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.

Dart API

  • 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.

Node JS API

  • Support the functions option.

  • Support the "compressed" value for the outputStyle option.

dart-sass - Dart Sass 1.0.0-beta.4

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(...)).

Node JS API

  • Add support for asynchronous importers to render() and renderSync().

Dart API

  • 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().

dart-sass - Dart Sass 1.0.0-beta.3

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}: ...).

Node JS API

  • Add support for the importer option to render() and renderSync(). Only synchronous importers are currently supported.

Dart API

  • 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.

dart-sass - Dart Sass 1.0.0-beta.2

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.

Command-Line Interface

  • Improve the logic for whether to use terminal colors by default.
dart-sass - Dart Sass 1.0.0-beta.1

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.

dart-sass - Dart Sass 1.0.0-alpha.9

Published by nex3 over 7 years ago

  • 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 by is-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-root and nested properties.
  • Properly handle placeholder selectors in selector pseudos.
  • Properly short-circuit the or and and operators.
  • 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 @import with a supports() 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 $weight parameter.
  • 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 not when 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 @extend edge case involving multiple combinators in a row.
  • Fix a bug where a @content block could get incorrectly passed to a mixin.
  • Properly isolate the lexical environments of different calls to the same mixin and function.
dart-sass - Dart Sass 1.0.0-alpha.8

Published by nex3 almost 8 years ago

  • 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-root query 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 - Dart Sass 1.0.0-alpha.7

Published by nex3 almost 8 years ago

  • Fix 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.
  • Properly parse url()s that contain comment-like text.
  • Fix a few more small @extend bugs.
  • Fix a bug where interpolation in a quoted string was being dropped in some circumstances.
  • Properly handle @for rules 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 - Dart Sass 1.0.0-alpha.6

Published by nex3 almost 8 years ago

  • Allow var() to be passed to rgb(), rgba(), hsl(), and hsla().
  • Fix conversions between numbers with dpi, dpcm, and dppx units. Previously these conversions were inverted.
  • Don't crash when calling 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.
  • Interpolation in quoted strings now properly preserves newlines.
  • Don't crash when passing only $hue or no keyword arguments to adjust-color(), scale-color(), or change-color().
  • Preserve escapes in identifiers. This used to only work for identifiers in SassScript.
  • Fix a few small @extend bugs.
dart-sass - Dart Sass 1.0.0-alpha.5

Published by nex3 almost 8 years ago

  • Fix bounds-checking for opacify(), fade-in(), transparentize(), and fade-out().
  • Fix a bug with @extend superselector calculations.
  • Fix some cases where #{...}-- would fail to parse in selectors.
  • Allow a single number to be passed to saturate() for use in filter contexts.
  • Fix a bug where **/ would fail to close a loud comment.
  • Fix a bug where mixin and function calls could set variables incorrectly.
  • Move plain CSS @imports to the top of the document.
dart-sass - Dart Sass 1.0.0-alpha.4

Published by nex3 almost 8 years ago

  • Add support for bracketed lists.
  • Add support for Unicode ranges.
  • Add support for the Microsoft-style = operator.
  • Print the filename for @debug rules.
  • Fix a bug where 1 + - 2 and similar constructs would crash the parser.
  • Fix a bug where @extend produced the wrong result when used with selector combinators.
  • Fix a bug where placeholder selectors were not allowed to be unified.
  • Fix the mixin-exists() function.
  • Fix :nth-child() and :nth-last-child() parsing when they contain of selector.
dart-sass - Dart Sass 1.0.0-alpha.3

Published by nex3 almost 8 years ago

  • Fix a bug where color equality didn't take the alpha channel into account.
  • Fix a bug with converting some RGB colors to HSL.
  • Fix a parent selector resolution bug.
  • Properly declare the arguments for opacify() and related functions.
  • Add a missing dependency on the stack_trace package.
  • Fix broken Windows archives.
  • Emit colors using their original representation if possible.
  • Emit colors without an original representation as names if possible.
dart-sass - Dart Sass 1.0.0-alpha.2

Published by nex3 almost 8 years ago

  • Fix a bug where variables, functions, and mixins were broken in imported files.
dart-sass - Dart Sass 1.0.0-alpha.1

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.