dart-sass/CHANGELOG.md

413 lines
12 KiB
Markdown
Raw Normal View History

## 1.0.0-beta.5.3
* Don't deadlock on `/*` comments in the indented syntax.
* Don't add an extra `*/` to comments in the indented syntax that already have
it.
2018-02-24 02:02:22 +01:00
* Improve the formatting of comments that don't start on the same line as the
opening `/*`.
2018-02-04 02:03:05 +01:00
## 1.0.0-beta.5.2
2018-02-03 22:24:54 +01:00
* Fix a bug where some colors would crash `compressed` mode.
2018-02-04 02:03:05 +01:00
## 1.0.0-beta.5.1
2018-01-15 01:45:33 +01:00
* 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()`.
2018-01-13 01:07:01 +01:00
* Fix some cases where equivalent numbers wouldn't count as the same keys in
maps.
2018-01-23 21:44:24 +01:00
* Fix a bug where multiplication like `(1/1px) * (1px/1)` wouldn't properly
cancel out units.
2018-01-23 21:51:33 +01:00
* Fix a bug where dividing by a compatible unit would produce an invalid
result.
2018-01-29 23:30:34 +01:00
* 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.
2018-01-15 01:45:33 +01:00
* 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.
2018-01-15 01:45:33 +01:00
* Support the `"compressed"` value for the `outputStyle` option.
## 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()` 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. `AsyncImporter`s are
only compatible with `compileAysnc()` and `compileStringAsync()`.
## 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 `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 `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.
## 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
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.
### Node JS API
* Add support for `data`, `includePaths`, `indentedSyntax`, `lineFeed`,
`indentWidth`, and `indentType` options to `render()` and `renderSync()`.
2017-07-10 03:31:05 +02:00
* 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.
### Dart API
* Add a `renderString()` method for rendering Sass source that's not in a file
on disk.
2017-06-05 21:50:47 +02:00
## 1.0.0-beta.1
2017-02-17 03:31:06 +01:00
* 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.
2017-02-17 02:37:31 +01:00
* 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.
2017-05-19 02:05:58 +02:00
* Fix `not` in parentheses in `@supports` conditions.
* Allow `url` as an identifier name.
2017-05-19 02:56:20 +02:00
* Properly parse `/***/` in selectors.
* Properly parse unary operators immediately after commas.
2017-05-30 02:07:21 +02:00
* Match Ruby Sass's rounding behavior for all functions.
* Allow `\` at the beginning of a selector in the indented syntax.
2017-05-28 02:42:45 +02:00
* Fix a number of `@extend` bugs:
* `selector-extend()` and `selector-replace()` now allow compound selector
extendees.
2017-05-28 02:42:45 +02:00
* 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`][laws].
* Fix selector specificity tracking to follow the
[second law of `@extend`][laws].
* Allow extensions that match selectors but fail to unify.
* Partially-extended selectors are no longer used as parent selectors.
2017-05-28 02:42:45 +02:00
* 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.
[laws]: https://github.com/sass/sass/issues/324#issuecomment-4607184
## 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 by `is-superselector()`, and was not guaranteed to
be valid.
2017-01-14 22:27:33 +01:00
* Support `&` within `@at-root`.
2017-01-14 22:43:40 +01:00
* Properly error when a compound selector is followed immediately by `&`.
2017-01-14 23:20:44 +01:00
* Properly handle variable scoping in `@at-root` and nested properties.
* Properly handle placeholder selectors in selector pseudos.
2017-02-04 02:37:54 +01:00
* Properly short-circuit the `or` and `and` operators.
2017-01-15 02:38:57 +01:00
* Support `--$variable`.
2017-01-15 07:17:57 +01:00
* Don't consider unitless numbers equal to numbers with units.
* Warn about using named colors in interpolation.
2017-01-15 21:53:48 +01:00
* Don't emit loud comments in functions.
2017-01-16 00:05:28 +01:00
* Detect import loops.
2017-01-14 23:56:33 +01:00
* Fix `@import` with a `supports()` clause.
2017-01-15 00:08:55 +01:00
* Forbid functions named "and", "or", and "not".
2017-01-15 00:14:57 +01:00
* Fix `type-of()` with a function.
2017-01-15 00:30:44 +01:00
* Emit a nicer error for invalid tokens in a selector.
* Fix `invert()` with a `$weight` parameter.
* Fix a unit-parsing edge-cases.
2017-01-15 02:53:39 +01:00
* Always parse imports with queries as plain CSS imports.
2017-01-15 03:27:50 +01:00
* Support `&` followed by a non-identifier.
2017-01-15 05:09:34 +01:00
* Properly handle split media queries.
* Properly handle a placeholder selector that isn't at the beginning of a
compound selector.
2017-01-15 07:39:28 +01:00
* Fix more `str-slice()` bugs.
2017-01-15 07:54:13 +01:00
* Fix the `%` operator.
* Allow whitespace between `=` and the mixin name in the indented syntax.
2017-01-16 01:09:27 +01:00
* Fix some slash division edge cases.
2017-01-15 22:06:57 +01:00
2017-01-15 22:57:50 +01:00
* Fix `not` when used like a function.
* Fix attribute selectors with single-character values.
2017-01-16 00:24:35 +01:00
* Fix some bugs with the `call()` function.
* Properly handle a backslash followed by a CRLF sequence in a quoted string.
2017-01-27 03:49:05 +01:00
* Fix numbers divided by colors.
* Support slash-separated numbers in arguments to plain CSS functions.
2017-01-27 05:09:45 +01:00
* Error out if a function is passed an unknown named parameter.
2017-02-04 21:20:34 +01:00
* 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.
2017-02-04 21:39:23 +01:00
* 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.
2017-01-08 23:49:26 +01:00
## 1.0.0-alpha.8
2017-01-09 07:05:23 +01:00
* 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.
2017-01-09 01:18:14 +01:00
* Disallow invalid function names.
2017-01-13 10:49:41 +01:00
* Disallow extending across media queries.
2017-01-09 08:28:08 +01:00
* Properly parse whitespace after `...` in argument declaration lists.
2017-01-09 02:10:15 +01:00
* Support terse mixin syntax in the indented syntax.
2017-01-08 23:49:26 +01:00
* Fix `@at-root` query parsing.
2017-01-09 01:04:00 +01:00
* Support special functions in `@-moz-document`.
2017-01-09 01:25:50 +01:00
* Support `...` after a digit.
2017-01-09 06:39:30 +01:00
* Fix some bugs when treating a map as a list of pairs.
2016-12-29 21:30:31 +01:00
## 1.0.0-alpha.7
* 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.
2016-12-29 21:30:31 +01:00
* Fix a few more small `@extend` bugs.
* Fix a bug where interpolation in a quoted string was being dropped in some
circumstances.
2017-01-07 02:16:43 +01:00
* 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.
## 1.0.0-alpha.6
* 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.
2016-12-19 07:19:50 +01:00
* Interpolation in quoted strings now properly preserves newlines.
2016-12-19 03:54:48 +01:00
* 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.
2016-12-20 00:23:14 +01:00
* Fix a few small `@extend` bugs.
## 1.0.0-alpha.5
* Fix bounds-checking for `opacify()`, `fade-in()`, `transparentize()`, and
`fade-out()`.
* Fix a bug with `@extend` superselector calculations.
2016-12-10 02:22:53 +01:00
* Fix some cases where `#{...}--` would fail to parse in selectors.
2016-12-10 01:41:47 +01:00
* 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.
2016-12-11 00:04:09 +01:00
* Move plain CSS `@import`s to the top of the document.
## 1.0.0-alpha.4
2016-11-14 20:17:03 +01:00
* Add support for bracketed lists.
* Add support for Unicode ranges.
* Add support for the Microsoft-style `=` operator.
2016-11-14 20:17:03 +01:00
* Print the filename for `@debug` rules.
* Fix a bug where `1 + - 2` and similar constructs would crash the parser.
2016-11-14 20:17:03 +01:00
* 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`.
## 1.0.0-alpha.3
2016-11-08 03:49:05 +01:00
* 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.
2016-11-03 01:00:03 +01:00
* Emit colors without an original representation as names if possible.
## 1.0.0-alpha.2
* Fix a bug where variables, functions, and mixins were broken in imported
files.
2016-10-31 21:18:47 +01:00
## 1.0.0-alpha.1
2016-05-21 00:05:38 +02:00
2016-10-31 21:18:47 +01:00
* Initial alpha release.