From 57160c626adf908371d85b77ad45cd57f44cfc87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rocha?= Date: Sat, 14 Dec 2019 09:14:12 +0000 Subject: [PATCH] add only-child pseudo selectors --- __tests__/variantsAtRule.test.js | 21 +++++++++++++++++++++ src/lib/substituteVariantsAtRules.js | 1 + 2 files changed, 22 insertions(+) mode change 100644 => 100755 __tests__/variantsAtRule.test.js diff --git a/__tests__/variantsAtRule.test.js b/__tests__/variantsAtRule.test.js old mode 100644 new mode 100755 index 7433a90cb2ec..c319e728faec --- a/__tests__/variantsAtRule.test.js +++ b/__tests__/variantsAtRule.test.js @@ -219,6 +219,27 @@ test('it can generate even variants', () => { }) }) +test('it can generate only-child variants', () => { + const input = ` + @variants only { + .banana { color: yellow; } + .chocolate { color: brown; } + } + ` + + const output = ` + .banana { color: yellow; } + .chocolate { color: brown; } + .only\\:banana:only-child { color: yellow; } + .only\\:chocolate:only-child { color: brown; } + ` + + return run(input).then(result => { + expect(result.css).toMatchCss(output) + expect(result.warnings().length).toBe(0) + }) +}) + test('it can generate group-hover variants', () => { const input = ` @variants group-hover { diff --git a/src/lib/substituteVariantsAtRules.js b/src/lib/substituteVariantsAtRules.js index 6cfca755d660..6891e1b950a4 100644 --- a/src/lib/substituteVariantsAtRules.js +++ b/src/lib/substituteVariantsAtRules.js @@ -46,6 +46,7 @@ const defaultVariantGenerators = config => ({ last: generatePseudoClassVariant('last-child', 'last'), odd: generatePseudoClassVariant('nth-child(odd)', 'odd'), even: generatePseudoClassVariant('nth-child(even)', 'even'), + only: generatePseudoClassVariant('only-child', 'only'), }) export default function(config, { variantGenerators: pluginVariantGenerators }) {