2019-08-20 00:21:08 +00:00
|
|
|
## Draft 7
|
|
|
|
|
2019-08-20 00:29:05 +00:00
|
|
|
* Change the syntax for namespaced variables from `$namespace.name` to
|
|
|
|
`namespace.$name`.
|
|
|
|
|
2019-08-20 00:21:08 +00:00
|
|
|
* Make `module-variables()` and `module-functions()` normalize underscores to
|
|
|
|
hyphens.
|
|
|
|
|
2019-06-19 21:45:08 +00:00
|
|
|
## Draft 6
|
|
|
|
|
|
|
|
* Require `ForwardRule`'s `AsClause` to come before `ShowClose` or `HideClause`,
|
|
|
|
rather than after. This ensures that the clause with unbounded length comes
|
|
|
|
last if both are present.
|
|
|
|
|
2019-06-19 22:00:24 +00:00
|
|
|
* Imported forwarded members now take precedence over members that were defined
|
|
|
|
in the local file prior to the `@import`.
|
|
|
|
|
2019-06-19 22:05:40 +00:00
|
|
|
* Modules can now extend CSS from modules they forward but do not use.
|
|
|
|
|
2019-06-19 22:34:45 +00:00
|
|
|
* Only allow variables defined at the top level of a stylesheet to be configured
|
|
|
|
with `@use ... with`.
|
|
|
|
|
2019-06-19 22:49:34 +00:00
|
|
|
* Allow variables imported by a stylesheet to be configured with `@use ...
|
|
|
|
with`.
|
|
|
|
|
2019-06-19 22:16:51 +00:00
|
|
|
* Move `keywords()` from `sass:map` to `sass:meta`.
|
|
|
|
|
2019-06-19 22:07:23 +00:00
|
|
|
* Add `extend()` to `sass:selector`. This is the same as the global
|
|
|
|
`selector-extend()` function.
|
|
|
|
|
2019-06-19 22:12:11 +00:00
|
|
|
* The `sass:color` functions `grayscale()`, `invert()`, `alpha()`, and
|
|
|
|
`opacity()` no longer allow non-color arguments.
|
|
|
|
|
2019-06-19 22:27:57 +00:00
|
|
|
* Make `get-function()` throw an error if `$module` and `$css` are both passed.
|
|
|
|
|
2019-06-19 21:51:18 +00:00
|
|
|
* Describe how to resolve built-in global functions and mixins.
|
|
|
|
|
2019-04-08 23:03:37 +00:00
|
|
|
## Draft 5
|
|
|
|
|
2019-04-08 23:50:51 +00:00
|
|
|
* Drop the `lighten()`, `darken()`, `saturate()`, `desaturate()`, `opacify()`,
|
|
|
|
and `transparentize()` functions from the `color` module. The use of these
|
|
|
|
functions is discouraged, and they're just shorthands for the `color.adjust()`
|
|
|
|
function so including them isn't necessary to allow migration.
|
|
|
|
|
2019-04-08 23:03:37 +00:00
|
|
|
* Give files with the suffix `".css"` lower precedence than `".sass"` and
|
|
|
|
`".scss"` files even in `@use`. This accommodates the use-case of `@use`ing a
|
|
|
|
file that's also being compiled in-place to a CSS file.
|
|
|
|
|
2019-04-08 23:12:34 +00:00
|
|
|
* Add a `$module` parameter to `get-function()`.
|
|
|
|
|
2019-04-09 00:33:26 +00:00
|
|
|
* Load CSS from modules used by imported files.
|
|
|
|
|
2019-04-08 23:57:44 +00:00
|
|
|
* Clarify the behavior of the first law of extend when multiple modules extend
|
|
|
|
the same selector.
|
|
|
|
|
2019-04-08 23:14:59 +00:00
|
|
|
* Remove missing outdated entries from the table of contents.
|
|
|
|
|
2019-02-20 01:57:25 +00:00
|
|
|
## Draft 4.2
|
|
|
|
|
2019-02-20 23:50:09 +00:00
|
|
|
* Add "static analysis" as a low-level goal.
|
|
|
|
|
2019-02-21 01:06:02 +00:00
|
|
|
* Ensure that plain CSS imports always appear at the beginning of the generated
|
|
|
|
CSS.
|
|
|
|
|
|
|
|
* Other than plain CSS imports, always emit the CSS for a given module
|
|
|
|
(including comments) to the same location, rather than splitting it up if a
|
|
|
|
comment appeared above a `@use`.
|
|
|
|
|
2019-02-21 01:43:00 +00:00
|
|
|
* Forbid diamond extensions from interacting with one another. That is, if two
|
|
|
|
modules use the same upstream modules but don't use one another, ensure that
|
|
|
|
they cannot extend one another's selectors.
|
|
|
|
|
|
|
|
* Explicitly indicate that only selectors explicitly written by hand are exempt
|
|
|
|
from being optimized away when resolving extensions.
|
|
|
|
|
2019-02-20 23:50:09 +00:00
|
|
|
* Always add `!global` variables to a module's variable set, even if those
|
|
|
|
variable declarations aren't evaluated.
|
|
|
|
|
2019-02-20 01:57:25 +00:00
|
|
|
* Explicitly define that `*-exists()` functions should throw an error for
|
|
|
|
conflicting member names from global modules.
|
|
|
|
|
2019-02-22 02:38:18 +00:00
|
|
|
* Explicitly define how members are resolved locally versus globally.
|
|
|
|
|
2019-02-28 02:47:20 +00:00
|
|
|
* Fix some faulty logic around resolving namespaceless members. If a member is
|
|
|
|
defined in both the import context and a global module that's now an error.
|
|
|
|
|
2019-02-21 00:18:44 +00:00
|
|
|
* Syntactically forbid namespaced references to private identifiers (as in
|
|
|
|
`foo.-bar`). This is never valid, so making it a syntax error rather than just
|
|
|
|
a runtime error ensures that the user will be notified as eagerly as possible.
|
|
|
|
|
2019-02-22 01:20:18 +00:00
|
|
|
* Fix the logic for import-only files so that `@import "foo.scss"` doesn't try
|
|
|
|
to load `foo.scss.import` and `@import "foo"` doesn't try to load
|
|
|
|
`foo.import/index.scss`.
|
2019-02-28 23:54:27 +00:00
|
|
|
|
2019-02-28 23:58:59 +00:00
|
|
|
* Rename configuration variables when they're passed to a forwarded module with
|
|
|
|
an `AsClause`.
|
|
|
|
|
2019-02-28 23:54:27 +00:00
|
|
|
* Only allow top-level members to shadow forwarded members.
|
2019-03-01 00:48:16 +00:00
|
|
|
|
|
|
|
* Add an imported file's members to the current module.
|
2019-03-01 01:04:34 +00:00
|
|
|
|
|
|
|
* Make config resolution part of evaluating a `!default` variable assignment
|
|
|
|
rather than part of resolving any variable.
|
|
|
|
|
2019-03-01 00:16:36 +00:00
|
|
|
* Clean up the way "Forwarding Modules" and "Importing Files" are invoked.
|
2019-02-22 01:20:18 +00:00
|
|
|
|
2019-02-21 01:44:47 +00:00
|
|
|
* Fix a few broken links.
|
|
|
|
|
2018-12-26 22:05:47 +00:00
|
|
|
## Draft 4.1
|
|
|
|
|
2019-01-18 00:47:57 +00:00
|
|
|
* Make the release timeline more concrete.
|
|
|
|
|
2018-12-26 22:05:47 +00:00
|
|
|
* Fix a broken link in the table of contents.
|
|
|
|
|
2018-11-08 19:42:25 +00:00
|
|
|
## Draft 4
|
|
|
|
|
2018-11-14 21:24:15 +00:00
|
|
|
* Allow `@forward "module" as prefix-*` to add a prefix to forwarded module.
|
|
|
|
|
2018-11-08 19:42:25 +00:00
|
|
|
* Rename `math.unitless()` to `math.is-unitless()`, to match
|
|
|
|
`list.is-bracketed()` and make it clear that it doesn't remove units from a
|
|
|
|
number.
|
|
|
|
|
|
|
|
* Rename `math.comparable()` to `math.compatible()`, to make it clear that it
|
|
|
|
also tests for compatibility for addition and subtraction.
|
|
|
|
|
|
|
|
* Add the missing `content-exists()` function.
|
|
|
|
|
|
|
|
* Move `meta.unique-id()` to `string.unique-id()`.
|
|
|
|
|
2018-11-08 19:53:00 +00:00
|
|
|
* Add "code splitting" as a non-goal.
|
|
|
|
|
2018-09-24 20:51:48 +00:00
|
|
|
## Draft 3
|
|
|
|
|
2018-09-24 21:29:24 +00:00
|
|
|
* Limit extensions to affecting only modules transitively used by the module in
|
2019-06-03 12:47:52 +00:00
|
|
|
which the `@extend` appears.
|
2018-09-24 21:29:24 +00:00
|
|
|
|
2018-09-25 19:13:13 +00:00
|
|
|
* Replace module mixins with a built-in `load-css()` mixin that dynamically
|
|
|
|
includes the CSS for a module with a given URL.
|
|
|
|
|
2018-09-25 22:33:51 +00:00
|
|
|
* Add support for configuring modules using a new `with` clause.
|
|
|
|
|
2018-09-24 21:03:31 +00:00
|
|
|
* Update the `module-variables()` and `module-functions()` functions to return
|
2019-06-03 12:47:52 +00:00
|
|
|
maps from names to values, rather than just lists of names.
|
2018-09-25 02:51:09 +00:00
|
|
|
|
2019-06-03 12:47:52 +00:00
|
|
|
* Remove the `module-mixins()` function until Sass supports first-class mixins.
|
2018-09-25 02:51:09 +00:00
|
|
|
|
2019-06-03 12:47:52 +00:00
|
|
|
* Add support for `_file.import.scss` as a file that only `@import`s will see.
|
2018-09-24 22:55:01 +00:00
|
|
|
|
2019-06-03 12:47:52 +00:00
|
|
|
* Change the syntax for a `@use` rule without a namespace to `@use "..." as *`.
|
2018-09-24 22:55:01 +00:00
|
|
|
|
2019-06-03 12:47:52 +00:00
|
|
|
* Initialize modules' variables with the values as declared in those modules.
|
2018-09-24 21:08:50 +00:00
|
|
|
|
2018-09-25 18:16:02 +00:00
|
|
|
* Allow comments to be emitted before dependencies' CSS.
|
|
|
|
|
2018-09-25 19:40:29 +00:00
|
|
|
* Show or hide variables with their `$` prefixes in `@forward`.
|
|
|
|
|
2018-09-25 01:50:51 +00:00
|
|
|
* Define a source file as an AST plus a canonical URL. This means that built-in
|
|
|
|
modules are no longer source files, which seems more reasonable.
|
|
|
|
|
2018-09-24 20:51:48 +00:00
|
|
|
* Clarify that `@forward` includes the forwarded module's CSS tree.
|
|
|
|
|
2018-09-25 22:56:31 +00:00
|
|
|
* Pass configuration for a module to any modules it `@forward`s.
|
|
|
|
|
2018-09-24 22:49:51 +00:00
|
|
|
* Forbid whitespace in various member-reference productions.
|
|
|
|
|
2019-06-03 12:47:52 +00:00
|
|
|
* Explicitly indicate that extensions are dynamically scoped.
|
2018-09-24 22:43:44 +00:00
|
|
|
|
2018-09-24 21:09:08 +00:00
|
|
|
* Explicitly indicate which parts of a module are immutable.
|
|
|
|
|
2018-09-25 20:07:17 +00:00
|
|
|
* Explicitly describe how variable declarations are resolved.
|
|
|
|
|
2018-09-25 22:10:47 +00:00
|
|
|
* Explicitly describe how a configuration affects file evaluation.
|
|
|
|
|
2018-09-25 22:33:51 +00:00
|
|
|
* Explicitly mention that variable declarations are allowed before `@use`.
|
|
|
|
|
2018-09-25 22:10:47 +00:00
|
|
|
* Loading a module with configuration variables it doesn't expose is now an
|
|
|
|
error.
|
|
|
|
|
2018-09-25 20:07:17 +00:00
|
|
|
* Don't make nested mixin and function declarations part of a module's API.
|
|
|
|
|
2018-09-25 18:00:09 +00:00
|
|
|
* Re-organize "Resolving Extensions" to make its behavior clearer.
|
|
|
|
|
2018-09-25 02:03:42 +00:00
|
|
|
* Link to the existing import spec rather than redefining terms.
|
|
|
|
|
2018-09-22 05:51:13 +00:00
|
|
|
## Draft 2.1
|
|
|
|
|
2018-09-24 17:58:46 +00:00
|
|
|
* Make sure nested `@import`s preserve the parent selector/at-rule context of
|
|
|
|
the current stylesheet.
|
|
|
|
|
2018-09-22 05:51:13 +00:00
|
|
|
* Removed the low-level "using CSS files" goal, since this is now covered by
|
|
|
|
[the CSS Imports proposal][].
|
|
|
|
|
|
|
|
[the CSS Imports proposal]: ../accepted/css-imports.md
|
|
|
|
|
2018-09-24 17:14:07 +00:00
|
|
|
* Add "Context-independent modules" and "Increased strictness" as non-goals.
|
2018-09-24 13:56:39 +00:00
|
|
|
|
2018-09-24 16:56:17 +00:00
|
|
|
* Add a couple FAQs.
|
|
|
|
|
2018-09-22 05:51:13 +00:00
|
|
|
* Made the requirements for valid module URLs more explicit.
|
|
|
|
|
|
|
|
* Merged the "Using Modules" section into the "Loading Modules" algorithm.
|
|
|
|
|
|
|
|
* Added a separate section for "Determining Prefixes".
|
|
|
|
|
2018-09-24 17:45:47 +00:00
|
|
|
* Make the import context mandatory everywhere, to simplify logic.
|
|
|
|
Implementations are still free to allocate them lazily, though.
|
|
|
|
|
2018-09-22 05:51:13 +00:00
|
|
|
* Consistently put non-normative asides in block quotes.
|
|
|
|
|
2018-09-22 19:07:49 +00:00
|
|
|
* Refer to "namespaces" rather than "prefixes".
|
|
|
|
|
2018-09-22 05:51:13 +00:00
|
|
|
* Refer to "URLs" rather than "URIs", per [the URL spec][].
|
|
|
|
|
|
|
|
[the URL spec]: https://url.spec.whatwg.org/#goals
|
|
|
|
|
|
|
|
* Refer to "at-rules" rather than "directives".
|
|
|
|
|
|
|
|
* Refer to "style rules" rather than "CSS rules".
|
|
|
|
|
|
|
|
* Format and structure algorithms consistently with more recent proposals.
|
|
|
|
|
|
|
|
* Other small non-semantic changes.
|
|
|
|
|
2016-02-12 21:51:49 +00:00
|
|
|
## Draft 2
|
|
|
|
|
|
|
|
* The namespace separator is now a period rather than a hyphen.
|
|
|
|
|
|
|
|
* Placeholder selectors are no longer considered members of modules. They are
|
|
|
|
still allowed to be marked private, however.
|
|
|
|
|
2016-02-13 00:54:44 +00:00
|
|
|
* Be explicit about how URIs are canonicalized and thus compared.
|
|
|
|
|
2016-02-13 00:57:30 +00:00
|
|
|
* Allow `@forward` and `@use` to be intermingled.
|
|
|
|
|
2016-03-04 23:53:21 +00:00
|
|
|
* Allow `@extend` to affect downstream modules as well as upstream ones.
|
|
|
|
Downstream modules inherently share the same semantics for selector names, and
|
|
|
|
extensions are an aspect of those semantics.
|
|
|
|
|
2016-03-04 23:57:46 +00:00
|
|
|
* Don't allow module mixin arguments to be passed by position.
|
|
|
|
|
2016-03-05 00:04:27 +00:00
|
|
|
* To `@forward` a module mixin, use the module's prefix rather than its URI.
|
|
|
|
|
2016-03-05 00:19:12 +00:00
|
|
|
* Modules now export *all* variables that have global definitions, even if those
|
|
|
|
definitions weren't executed. This preserves the invariant that modules'
|
|
|
|
member sets are statically knowable.
|
|
|
|
|
2016-03-05 00:24:51 +00:00
|
|
|
* Add new functions for module introspection.
|
|
|
|
|
2016-03-05 00:32:13 +00:00
|
|
|
* Add a `$module` parameter to `global-variable-exists()`, `function-exists()`,
|
|
|
|
and `mixin-exists()`.
|
|
|
|
|
2016-02-12 21:51:49 +00:00
|
|
|
## Draft 1
|
|
|
|
|
|
|
|
* Initial draft.
|