Recursively collapse adjacent rules (#7565)

* Recursively collapse adjacent rules

* Update changelog
This commit is contained in:
Jordan Pittman 2022-02-21 12:58:12 -05:00 • committed by GitHub
parent af64d7190c
commit 3b8ca9d4eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 49 additions and 7 deletions

View file

@ -5,7 +5,7 @@ let comparisonMap = {
let types = new Set(Object.keys(comparisonMap))
export default function collapseAdjacentRules() {
return (root) => {
function collapseRulesIn(root) {
let currentRule = null
root.each((node) => {
if (!types.has(node.type)) {
@ -35,5 +35,20 @@ export default function collapseAdjacentRules() {
currentRule = node
}
})
// After we've collapsed adjacent rules & at-rules, we need to collapse
// adjacent rules & at-rules that are children of at-rules.
// We do not care about nesting rules because Tailwind CSS
// explicitly does not handle rule nesting on its own as
// the user is expected to use a nesting plugin
root.each((node) => {
if (node.type === 'atrule') {
collapseRulesIn(node)
}
})
}
return (root) => {
collapseRulesIn(root)
}
}