@@ -2,35 +2,35 @@ import _ from 'lodash'
22import postcss from 'postcss'
33import buildClassVariant from '../util/buildClassVariant'
44
5- const variantGenerators = {
6- hover : ( container , config ) => {
7- const cloned = container . clone ( )
8-
9- cloned . walkRules ( rule => {
10- rule . selector = `${ buildClassVariant ( rule . selector , 'hover' , config . options . separator ) } :hover`
11- } )
5+ function buildPseudoClassVariant ( selector , pseudoClass , separator ) {
6+ return `${ buildClassVariant ( selector , pseudoClass , separator ) } :${ pseudoClass } `
7+ }
128
13- container . before ( cloned . nodes )
14- } ,
15- focus : ( container , config ) => {
9+ function generatePseudoClassVariant ( pseudoClass ) {
10+ return ( container , config ) => {
1611 const cloned = container . clone ( )
1712
1813 cloned . walkRules ( rule => {
19- rule . selector = ` ${ buildClassVariant ( rule . selector , 'focus' , config . options . separator ) } :focus`
14+ rule . selector = buildPseudoClassVariant ( rule . selector , pseudoClass , config . options . separator )
2015 } )
2116
2217 container . before ( cloned . nodes )
23- } ,
24- 'group-hover' : ( container , config ) => {
18+ }
19+ }
20+
21+ const variantGenerators = {
22+ 'group-hover' : ( container , { options : { separator } } ) => {
2523 const cloned = container . clone ( )
2624
2725 cloned . walkRules ( rule => {
28- // prettier-ignore
29- rule . selector = `.group:hover ${ buildClassVariant ( rule . selector , 'group-hover' , config . options . separator ) } `
26+ rule . selector = `.group:hover ${ buildClassVariant ( rule . selector , 'group-hover' , separator ) } `
3027 } )
3128
3229 container . before ( cloned . nodes )
3330 } ,
31+ hover : generatePseudoClassVariant ( 'hover' ) ,
32+ focus : generatePseudoClassVariant ( 'focus' ) ,
33+ active : generatePseudoClassVariant ( 'active' ) ,
3434}
3535
3636export default function ( config ) {
@@ -48,7 +48,7 @@ export default function(config) {
4848
4949 atRule . before ( atRule . clone ( ) . nodes )
5050
51- _ . forEach ( [ 'group-hover' , 'hover' , 'focus' ] , variant => {
51+ _ . forEach ( [ 'group-hover' , 'hover' , 'focus' , 'active' ] , variant => {
5252 if ( variants . includes ( variant ) ) {
5353 variantGenerators [ variant ] ( atRule , unwrappedConfig )
5454 }
0 commit comments