To install Sass 1.78.0, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
The meta.feature-exists function is now deprecated. This deprecation is named feature-exists.
Fix a crash when using @at-root without any queries or children in the indented syntax.
JS API
Backport the deprecation options (fatalDeprecations, futureDeprecations, and silenceDeprecations) to the legacy JS API. The legacy JS API is itself deprecated, and you should move off of it if possible, but this will allow users of bundlers and other tools that are still using the legacy API to still control deprecation warnings.
Fix a bug where accessing SourceSpan.url would crash when a relative URL was passed to the Sass API.
Embedded Sass
Explicitly expose a sass executable from the sass-embedded npm package. This was intended to be included in 1.63.0, but due to the way platform-specific dependency executables are installed it did not work as intended. Now users can run npx sass for local installs or just sass when sass-embedded is installed globally.
Add linux-riscv64, linux-musl-riscv64, and android-riscv64 support for the sass-embedded npm package.
Fix an edge case where the Dart VM could hang when shutting down when requests were in flight.
Fix a race condition where the embedded host could fail to shut down if it was closed around the same time a new compilation was started.
Fix a bug where parse-time deprecation warnings could not be controlled by the deprecation options in some circumstances.
Breaking change: Passing a number with unit % to the $alpha parameter
of color.change(), color.adjust(), change-color(), and adjust-color()
is now interpreted as a percentage, instead of ignoring the unit. For example,
color.change(red, $alpha: 50%) now returns rgb(255 0 0 / 0.5).
Potentially breaking compatibility fix: Sass no longer rounds RGB channels
to the nearest integer. This means that, for example, rgb(0 0 1) != rgb(0 0 0.6). This matches the latest version of the CSS spec and browser behavior.
Potentially breaking compatibility fix: Passing large positive or negative
values to color.adjust() can now cause a color's channels to go outside that
color's gamut. In most cases this will currently be clipped by the browser and
end up showing the same color as before, but once browsers implement gamut
mapping it may produce a different result.
Add support for CSS Color Level 4 [color spaces]. Each color value now tracks
its color space along with the values of each channel in that color space.
There are two general principles to keep in mind when dealing with new color
spaces:
With the exception of legacy color spaces (rgb, hsl, and hwb), colors
will always be emitted in the color space they were defined in unless
they're explicitly converted.
The color.to-space() function is the only way to convert a color to
another color space. Some built-in functions may do operations in a
different color space, but they'll always convert back to the original space
afterwards.
rgb colors can now have non-integer channels and channels outside the normal
gamut of 0-255. These colors are always emitted using the rgb() syntax so
that modern browsers that are being displayed on wide-gamut devices can
display the most accurate color possible.
Add support for all the new color syntax defined in Color Level 4, including:
oklab(), oklch(), lab(), and lch() functions;
a top-level hwb() function that matches the space-separated CSS syntax;
and a color() function that supports the srgb, srgb-linear,
display-p3, a98-rgb, prophoto-rgb, rec2020, xyz, xyz-d50, and
xyz-d65 color spaces.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps sass from 1.77.8 to 1.79.1.
Release notes
Sourced from sass's releases.
Changelog
Sourced from sass's changelog.
... (truncated)
Commits
5fa04d3
Fix sass-parser publishing (#2349)d740d02
Emit deprecation warnings for the legacy JS API (#2343)a957eea
Bump chokidar to v4 (#2347)aa35aa2
Bump bufbuild/buf-setup-action in /.github/util/initialize (#2346)f826ed2
Stop emittingmixed-decls
in a bunch of unnecessary cases (#2342)2f0d0da
Merge pull request #2341 from sass/feature.color-4de181d9
Poke CI34f98c7
Update color API tests422f037
Fix a typo4db68a1
Merge pull request #2339 from sass/merge-mainDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show