Skip to content

Commit da5b00e

Browse files
committed
Working on not variants
1 parent ac8fbc6 commit da5b00e

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/corePlugins.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,34 @@ export let variantPlugins = {
130130
'disabled',
131131
].map((variant) => (Array.isArray(variant) ? variant : [variant, `&:${variant}`]))
132132

133+
// Base `:not` variants
134+
for (let [variantName, state] of pseudoVariants) {
135+
addVariant(`not-${variantName}`, (ctx) => {
136+
let result = typeof state === 'function' ? state(ctx) : state
137+
138+
return result.replace(/&(\S+)/, '&:not($1)')
139+
})
140+
}
141+
142+
// Group `:not` variants
143+
for (let [variantName, state] of pseudoVariants) {
144+
addVariant(`group-not-${variantName}`, (ctx) => {
145+
let result = typeof state === 'function' ? state(ctx) : state
146+
147+
return result.replace(/&(\S+)/, ':merge(.group):not($1) &')
148+
})
149+
}
150+
151+
// Peer `:not` variants
152+
for (let [variantName, state] of pseudoVariants) {
153+
addVariant(`peer-not-${variantName}`, (ctx) => {
154+
let result = typeof state === 'function' ? state(ctx) : state
155+
156+
return result.replace(/&(\S+)/, ':merge(.peer):not($1) ~ &')
157+
})
158+
}
159+
160+
// Base variants
133161
for (let [variantName, state] of pseudoVariants) {
134162
addVariant(variantName, (ctx) => {
135163
let result = typeof state === 'function' ? state(ctx) : state
@@ -138,6 +166,7 @@ export let variantPlugins = {
138166
})
139167
}
140168

169+
// Group variants
141170
for (let [variantName, state] of pseudoVariants) {
142171
addVariant(`group-${variantName}`, (ctx) => {
143172
let result = typeof state === 'function' ? state(ctx) : state
@@ -146,6 +175,7 @@ export let variantPlugins = {
146175
})
147176
}
148177

178+
// Peer variants
149179
for (let [variantName, state] of pseudoVariants) {
150180
addVariant(`peer-${variantName}`, (ctx) => {
151181
let result = typeof state === 'function' ? state(ctx) : state

0 commit comments

Comments
 (0)