重大变化:以 – 开头的函数和混合

在 Dart Sass 1.76.0 之前,函数和混合名称可以是任何有效的 CSS 标识符,但以 -- 开头的标识符现已弃用。

通常,Sass 允许任何有效的 CSS 标识符用于任何 Sass 定义。这包括以 -- 开头的标识符,用户可能在 CSS 自定义属性 的上下文中最熟悉这些标识符。但是,CSS 工作组正在 认真考虑CSS 本身添加对函数和 mixin 的内置支持,可能使用名为 @mixin@function 的 at-rules,就像 Sass 一样。

¥Generally, Sass allows any valid CSS identifier to be used for any Sass definition. This includes identifiers which begin with --, which users may be most familiar with in the context of CSS custom properties. However, the CSS working group is seriously considering adding built-in support to CSS itself for functions and mixins, likely using at-rules named @mixin and @function just like Sass.

这意味着,为了在仍然支持 Sass 的构建时函数和 mixin 的同时保留其 CSS 兼容性的核心设计原则,Sass 需要能够区分使用相同 at-rule 名称的 CSS 和 Sass 声明。幸运的是,尽管 CSS 用于函数和 mixin 的语法细节仍悬而未决,但有一点似乎没有争议:使用以 -- 开头的自定义属性类标识符作为 CSS 混合和函数名称。

¥This means that Sass, in order to preserve its core design principle of CSS compatibility while still supporting Sass’s build-time functions and mixins, needs to be able to distinguish between CSS and Sass declarations that use the same at-rule names. Fortunately, although the details of the syntax CSS uses for functions and mixins is still very much up in the air, one point seems uncontroversial: the use of custom-property-like identifiers beginning with -- for CSS mixin and function names.

这将允许 Sass 将纯 CSS 函数和混合与以 -- 开头的函数和混合区分开来。但为了使其正常工作,我们首先必须禁止 Sass 函数和 mixin 使用该前缀。

¥This will allow Sass to distinguish plain-CSS functions and mixins as those that begin with --. But in order for this to work, we first have to disallow Sass functions and mixins from using that prefix.

过渡期过渡期 permalink

¥Transition Period

兼容性:
Dart Sass
since 1.76.0
LibSass
Ruby Sass

在 Dart Sass 1.76.0 和 Dart Sass 2.0.0 之间,Dart Sass 将继续允许名称以 -- 开头的函数和 mixin。但是,它会发出一个名为 css-function-mixin 的弃用警告。

¥Between Dart Sass 1.76.0 and Dart Sass 2.0.0, Dart Sass will continue to allow functions and mixins whose names begin with --. However, it will emit a deprecation warning named css-function-mixin.

在 Dart Sass 2.0.0 和 Dart Sass 对纯 CSS 函数和 mixin 的支持发布之间,函数和 mixin 将不允许使用以 -- 开头的名称。

¥Between Dart Sass 2.0.0 and the release of Dart Sass’s support for plain CSS functions and mixins, functions and mixins will not be allowed to have names that begin with --.