Fix issue where dark variant in 'class' mode was incompatible with 'group-hover' variant (#2337)
* Fix issue where dark variant in 'class' mode was incompatible with 'group-hover' variant * Update changelog
This commit is contained in:
parent
0b48b4cd8c
commit
0cf76cdd8b
3 changed files with 31 additions and 7 deletions
|
|
@ -1,4 +1,3 @@
|
|||
import selectorParser from 'postcss-selector-parser'
|
||||
import buildSelectorVariant from '../util/buildSelectorVariant'
|
||||
import defaultConfig from '../../defaultConfig'
|
||||
|
||||
|
|
@ -31,13 +30,19 @@ export default {
|
|||
}
|
||||
|
||||
if (config('dark') === 'class') {
|
||||
const parser = selectorParser(selectors => {
|
||||
selectors.walkClasses(sel => {
|
||||
sel.value = `dark${separator}${sel.value}`
|
||||
sel.parent.insertBefore(sel, selectorParser().astSync(prefix('.dark ')))
|
||||
const modified = modifySelectors(({ selector }) => {
|
||||
return buildSelectorVariant(selector, 'dark', separator, message => {
|
||||
throw container.error(message)
|
||||
})
|
||||
})
|
||||
return modifySelectors(({ selector }) => parser.processSync(selector))
|
||||
|
||||
modified.walkRules(rule => {
|
||||
rule.selectors = rule.selectors.map(selector => {
|
||||
return `${prefix('.dark ')} ${selector}`
|
||||
})
|
||||
})
|
||||
|
||||
return modified
|
||||
}
|
||||
|
||||
throw new Error("The `dark` config option must be either 'media' or 'class'.")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue