Implement CSS Cascade Layers support #1
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes theKashey#50
What is implemented
@layer
rules got special processing, similiar to@media
rules@media
or@layer
, which are handled in a custom way) and unprocessed at-rules (any other "unknown" rule, which will be dropped into critical-css as-is)What is not implemented
There is a possible edge-case:
It is possible to have the same layers order definition at multiple files, something like this
I think, it is possible in the situation, where layers are added automatically by bundlers, based on some heuristics or rules, since this way layers order is guaranteed and is not dependent on loading order 🤔
In that case
used-styles
probably should deduplicate these definitions.But since i do not have any actual real-life use-cases, which would require something like this, it is not added in this PR
If this problem will actually happend one day - then cross-file deduplication of layer definitions can be solved by introducing something like "shared context" for the AST parser: