Invalidate candidates with bad variants up front

This commit is contained in:
Adam Wathan 2021-06-25 12:02:31 -04:00
parent 92d1664d2f
commit 7db4c3a403
6 changed files with 10 additions and 5 deletions

View file

@ -201,6 +201,11 @@ function splitWithSeparator(input, separator) {
function* resolveMatches(candidate, context) {
let separator = context.tailwindConfig.separator
let [classCandidate, ...variants] = splitWithSeparator(candidate, separator).reverse()
if (!variants.every((variant) => context.variantMap.has(variant))) {
return []
}
let important = false
if (classCandidate.startsWith('!')) {

View file

@ -156,7 +156,7 @@ test('with variants', async () => {
mode: 'jit',
purge: [
{
raw: '<div class="backdrop-brightness-100 hover:backdrop-brightness-150 backdrop-contrast-50 lg:backdrop-contrast-100"></div>',
raw: '<div class="bad-variant:backdrop-brightness-100 backdrop-brightness-100 hover:backdrop-brightness-150 backdrop-contrast-50 lg:backdrop-contrast-100"></div>',
},
],
corePlugins: ['backdropFilter', 'backdropBrightness', 'backdropContrast'],

View file

@ -15,7 +15,7 @@ test('basic ring width', async () => {
mode: 'jit',
purge: [
{
raw: '<div class="shadow shadow-md shadow-lg"></div>',
raw: '<div class="bad-variant:shadow shadow shadow-md shadow-lg"></div>',
},
],
corePlugins: ['boxShadow'],

View file

@ -156,7 +156,7 @@ test('with variants', async () => {
mode: 'jit',
purge: [
{
raw: '<div class="brightness-100 hover:brightness-150 contrast-50 lg:contrast-100"></div>',
raw: '<div class="bad-variant:brightness-100 brightness-100 hover:brightness-150 contrast-50 lg:contrast-100"></div>',
},
],
corePlugins: ['filter', 'brightness', 'contrast'],

View file

@ -15,7 +15,7 @@ test('basic ring width', async () => {
mode: 'jit',
purge: [
{
raw: '<div class="ring ring-2 ring-4 ring-blue-500 ring-offset-2 ring-offset-blue-100"></div>',
raw: '<div class="bad-variant:ring ring ring-2 ring-4 ring-blue-500 ring-offset-2 ring-offset-blue-100"></div>',
},
],
corePlugins: ['ringColor', 'ringOffsetColor', 'ringOffsetWidth', 'ringOpacity', 'ringWidth'],

View file

@ -156,7 +156,7 @@ test('with variants', async () => {
mode: 'jit',
purge: [
{
raw: '<div class="scale-50 hover:scale-100 translate-x-4 lg:translate-x-6"></div>',
raw: '<div class="bad-variant:scale-50 scale-50 hover:scale-100 translate-x-4 lg:translate-x-6"></div>',
},
],
corePlugins: ['transform', 'scale', 'translate'],