Discard invalid variants
and utilities
with modifiers
#13977
Merged
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.
This PR discards candidates that contain modifiers for variants and utilities that don't need it.
For example, right now you can use
hover/foo:flex
or evenflex/foo
. These generate the exact same contents ashover:flex
andflex
respectively. However, thefoo
modifier isn't used but is still included in the class name, which means that this currently just generates additional unnecessary CSS.For static utilities and static variants, we can bail early when we detect a modifier and we don't have to continue parsing the candidate. We also don't have to run the known invalid candidate through the system. (In theory if you have a lot of invalid candidates like this it will result in better performance and smaller CSS)
Some utilities and variants accept modifiers, e.g.:
bg-red-500/50
orgroup-hover/foo
. In these cases we can't discard themodifier
automatically, which is why the PR is relatively big because we have to discard on a case by case basis.Requires:
bg-red-[#000]
#13970