Don't duplicate layer output when scanning content with variants + wildcards#7478
Merged
thecrypticace merged 1 commit intomasterfrom Feb 15, 2022
Merged
Don't duplicate layer output when scanning content with variants + wildcards#7478thecrypticace merged 1 commit intomasterfrom
thecrypticace merged 1 commit intomasterfrom
Conversation
Contributor
Author
|
@RobinMalfait Does this approach seem okay? It feels pretty sound. I'm just not sure if we want to go ahead and try to use proper |
RobinMalfait
approved these changes
Feb 15, 2022
Member
RobinMalfait
left a comment
There was a problem hiding this comment.
Yep the uniqueness of new String() is quite clever.
My only concern would be if you have your own custom rules that look something like:
@tailwind base;
@tailwind components;
@tailwind utilities;
* {
color: red;
}
.combined,
* {
text-align: center;
}
@layer base {
* {
color: blue;
}
.combined,
* {
color: red;
}
}But it seems like that works as expected 👍
Contributor
Author
|
Ah, that's a good test to add though. I'll add that and then merge this in! |
This would be better as a symbol but the stringy-ness of class candidates is fairly well baked into assumptions across the codebase. new String + a well placed check seems to solve the problem
3f7d506 to
dc18f9d
Compare
tmattio
added a commit
to tmattio/opam-repository
that referenced
this pull request
Apr 9, 2022
CHANGES: ### Fixed - Remove opacity variables from `:visited` pseudo class ([tmattio/opam-tailwindcss#7458](tailwindlabs/tailwindcss#7458)) - Support arbitrary values + calc + theme with quotes ([tmattio/opam-tailwindcss#7462](tailwindlabs/tailwindcss#7462)) - Don't duplicate layer output when scanning content with variants + wildcards ([tmattio/opam-tailwindcss#7478](tailwindlabs/tailwindcss#7478)) - Implement `getClassOrder` instead of `sortClassList` ([tmattio/opam-tailwindcss#7459](tailwindlabs/tailwindcss#7459))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Tailwind CSS treats
*as special internally. Because of this if it scanned content which contained something likefocus:*it would then generate duplicate CSS — including base layers. The best way to fix for this would be to use aSymbolin place of the special character — however the stringy-ness of class candidates is fairly well baked into assumptions across the codebase. Instead, by usingnew String(…), we get an identical API surface to normal strings along with the behavior of something similar to a Symbol as identity comparisons against"*"will fail since we have a unique, non-interned object.Fixes #7204