[Module System] Load CSS from modules used by imported files

Closes #2666
This commit is contained in:
Natalie Weizenbaum 2019-04-08 17:33:26 -07:00
parent 685461a955
commit 2199597cb7
2 changed files with 16 additions and 8 deletions

View File

@ -11,6 +11,8 @@
* Add a `$module` parameter to `get-function()`.
* Load CSS from modules used by imported files.
* Clarify the behavior of the first law of extend when multiple modules extend
the same selector.

View File

@ -1442,17 +1442,23 @@ context](#import-context) `import`, and a mutable [module](#module) `module`.
* If `file` is currently being executed, throw an error.
* Let `imported` be the result of [executing](#executing-files) `file` with the
empty configuration and `import` as its import context, with the following
differences:
* If the `@import` rule is nested within at-rules and/or style rules, that
context is preserved when executing `file`.
* The generated CSS for style rules or at-rules in `file` is appended to the
`module`'s CSS.
empty configuration and `import` as its import context, except that if the
`@import` rule is nested within at-rules and/or style rules, that context is
preserved when executing `file`.
> Note that this execution can mutate `import`.
* Let `css` be the result of [resolving extensions](#resolving-extensions) for
`imported`, except that if the `@import` rule is nested within at-rules and/or
style rules, that context is added to CSS that comes from modules loaded by
`imported`.
> This creates an entirely separate CSS tree with an entirely separate
> `@extend` context than normal `@use`s of these modules. This means their CSS
> may be duplicated, and they may be extended differently.
* Add `css` to `module`'s CSS.
* Add `imported`'s [extensions](#extension) to `module`.
* For each member `member` in `imported`: