From fa0e06c2dd5182ab27311f4526fb083afaea1682 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Mon, 12 Mar 2018 12:21:51 -0400 Subject: [PATCH] Generate focus variants last and group-hover variants first --- __tests__/variantsAtRule.test.js | 14 ++++++++------ src/lib/substituteVariantsAtRules.js | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/__tests__/variantsAtRule.test.js b/__tests__/variantsAtRule.test.js index abb0973c6..f2d832796 100644 --- a/__tests__/variantsAtRule.test.js +++ b/__tests__/variantsAtRule.test.js @@ -69,9 +69,9 @@ test('it can generate group-hover variants', () => { }) }) -test('it can generate hover and focus variants', () => { +test('it can generate all variants', () => { const input = ` - @variants hover, focus { + @variants hover, focus, group-hover { .banana { color: yellow; } .chocolate { color: brown; } } @@ -80,10 +80,12 @@ test('it can generate hover and focus variants', () => { const output = ` .banana { color: yellow; } .chocolate { color: brown; } - .focus\\:banana:focus { color: yellow; } - .focus\\:chocolate:focus { color: brown; } + .group:hover .group-hover\\:banana { color: yellow; } + .group:hover .group-hover\\:chocolate { color: brown; } .hover\\:banana:hover { color: yellow; } .hover\\:chocolate:hover { color: brown; } + .focus\\:banana:focus { color: yellow; } + .focus\\:chocolate:focus { color: brown; } ` return run(input).then(result => { @@ -104,10 +106,10 @@ test('it wraps the output in a responsive at-rule if responsive is included as a @responsive { .banana { color: yellow; } .chocolate { color: brown; } - .focus\\:banana:focus { color: yellow; } - .focus\\:chocolate:focus { color: brown; } .hover\\:banana:hover { color: yellow; } .hover\\:chocolate:hover { color: brown; } + .focus\\:banana:focus { color: yellow; } + .focus\\:chocolate:focus { color: brown; } } ` diff --git a/src/lib/substituteVariantsAtRules.js b/src/lib/substituteVariantsAtRules.js index 652c133fb..78da039ad 100644 --- a/src/lib/substituteVariantsAtRules.js +++ b/src/lib/substituteVariantsAtRules.js @@ -48,7 +48,7 @@ export default function(config) { atRule.before(atRule.clone().nodes) - _.forEach(['focus', 'hover', 'group-hover'], variant => { + _.forEach(['group-hover', 'hover', 'focus'], variant => { if (variants.includes(variant)) { variantGenerators[variant](atRule, unwrappedConfig) }