Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More β†’
Socket
Sign inDemoInstall
Socket

eslint-plugin-tailwindcss

Package Overview
Dependencies
Maintainers
1
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-tailwindcss - npm Package Compare versions

Comparing version 3.14.3 to 3.15.0-beta.0

lib/rules/no-unnecessary-arbitrary-value.js

195

lib/config/groups.js

@@ -41,2 +41,3 @@ /**

members: 'aspect\\-(?<value>${aspectRatio})',
configKey: 'aspectRatio',
},

@@ -50,2 +51,3 @@ {

members: 'columns\\-(?<value>${columns})',
configKey: 'columns',
},

@@ -101,2 +103,3 @@ {

members: 'object\\-(?<value>${objectPosition})',
configKey: 'objectPosition',
},

@@ -161,2 +164,3 @@ {

body: 'inset',
configKey: 'inset',
},

@@ -168,2 +172,3 @@ {

body: 'inset-y',
configKey: 'inset',
},

@@ -175,2 +180,3 @@ {

body: 'inset-x',
configKey: 'inset',
},

@@ -182,2 +188,3 @@ {

body: 'top',
configKey: 'inset',
},

@@ -189,2 +196,3 @@ {

body: 'right',
configKey: 'inset',
},

@@ -196,2 +204,3 @@ {

body: 'bottom',
configKey: 'inset',
},

@@ -203,2 +212,3 @@ {

body: 'left',
configKey: 'inset',
},

@@ -214,2 +224,3 @@ ],

members: '(z\\-(?<value>${zIndex})|\\-z\\-(?<negativeValue>${-zIndex}))',
configKey: 'zIndex',
},

@@ -224,2 +235,3 @@ ],

members: 'basis\\-(?<value>${flexBasis})',
configKey: 'flexBasis',
},

@@ -237,2 +249,3 @@ {

members: 'flex\\-(?<value>${flex})',
configKey: 'flex',
},

@@ -242,2 +255,3 @@ {

members: 'grow(\\-(?<value>${flexGrow}))?',
configKey: 'flexGrow',
},

@@ -248,2 +262,3 @@ {

deprecated: true,
configKey: 'flexGrow',
},

@@ -253,2 +268,3 @@ {

members: 'shrink(\\-(?<value>${flexShrink}))?',
configKey: 'flexShrink',
},

@@ -259,2 +275,3 @@ {

deprecated: true,
configKey: 'flexShrink',
},

@@ -264,2 +281,3 @@ {

members: '(order\\-(?<value>${order})|\\-order\\-(?<negativeValue>${-order}))',
configKey: 'order',
},

@@ -269,2 +287,3 @@ {

members: 'grid\\-cols\\-(?<value>${gridTemplateColumns})',
configKey: 'gridTemplateColumns',
},

@@ -277,2 +296,3 @@ {

members: 'col\\-(?<value>${gridColumn})',
configKey: 'gridColumn',
},

@@ -282,2 +302,3 @@ {

members: 'col\\-start\\-(?<value>${gridColumnStart})',
configKey: 'gridColumnStart',
},

@@ -287,2 +308,3 @@ {

members: 'col\\-end\\-(?<value>${gridColumnEnd})',
configKey: 'gridColumnEnd',
},

@@ -294,2 +316,3 @@ ],

members: 'grid\\-rows\\-(?<value>${gridTemplateRows})',
configKey: 'gridTemplateRows',
},

@@ -302,2 +325,3 @@ {

members: 'row\\-(?<value>${gridRow})',
configKey: 'gridRow',
},

@@ -307,2 +331,3 @@ {

members: 'row\\-start\\-(?<value>${gridRowStart})',
configKey: 'gridRowStart',
},

@@ -312,2 +337,3 @@ {

members: 'row\\-end\\-(?<value>${gridRowEnd})',
configKey: 'gridRowEnd',
},

@@ -323,2 +349,3 @@ ],

members: 'auto\\-cols\\-(?<value>${gridAutoColumns})',
configKey: 'gridAutoColumns',
},

@@ -328,2 +355,3 @@ {

members: 'auto\\-rows\\-(?<value>${gridAutoRows})',
configKey: 'gridAutoRows',
},

@@ -338,2 +366,3 @@ {

body: 'gap',
configKey: 'gap',
},

@@ -345,2 +374,3 @@ {

body: 'gap-x',
configKey: 'gap',
},

@@ -352,2 +382,3 @@ {

body: 'gap-y',
configKey: 'gap',
},

@@ -405,2 +436,3 @@ ],

body: 'p',
configKey: 'padding',
},

@@ -412,2 +444,3 @@ {

body: 'py',
configKey: 'padding',
},

@@ -419,2 +452,3 @@ {

body: 'px',
configKey: 'padding',
},

@@ -426,2 +460,3 @@ {

body: 'pt',
configKey: 'padding',
},

@@ -433,2 +468,3 @@ {

body: 'pr',
configKey: 'padding',
},

@@ -440,2 +476,3 @@ {

body: 'pb',
configKey: 'padding',
},

@@ -447,2 +484,3 @@ {

body: 'pl',
configKey: 'padding',
},

@@ -459,2 +497,3 @@ ],

body: 'm',
configKey: 'margin',
},

@@ -466,2 +505,3 @@ {

body: 'my',
configKey: 'margin',
},

@@ -473,2 +513,3 @@ {

body: 'mx',
configKey: 'margin',
},

@@ -480,2 +521,3 @@ {

body: 'mt',
configKey: 'margin',
},

@@ -487,2 +529,3 @@ {

body: 'mr',
configKey: 'margin',
},

@@ -494,2 +537,3 @@ {

body: 'mb',
configKey: 'margin',
},

@@ -501,2 +545,3 @@ {

body: 'ml',
configKey: 'margin',
},

@@ -511,2 +556,3 @@ ],

members: '(space\\-y\\-(?<value>${space})|\\-space\\-y\\-(?<negativeValue>${-space}))',
configKey: 'space',
},

@@ -516,2 +562,3 @@ {

members: '(space\\-x\\-(?<value>${space})|\\-space\\-x\\-(?<negativeValue>${-space}))',
configKey: 'space',
},

@@ -536,2 +583,3 @@ {

members: 'w\\-(?<value>${width})',
configKey: 'width',
},

@@ -541,2 +589,3 @@ {

members: 'min\\-w\\-(?<value>${minWidth})',
configKey: 'minWidth',
},

@@ -546,2 +595,3 @@ {

members: 'max\\-w\\-(?<value>${maxWidth})',
configKey: 'maxWidth',
},

@@ -551,2 +601,3 @@ {

members: 'h\\-(?<value>${height})',
configKey: 'height',
},

@@ -556,2 +607,3 @@ {

members: 'min\\-h\\-(?<value>${minHeight})',
configKey: 'minHeight',
},

@@ -561,2 +613,3 @@ {

members: 'max\\-h\\-(?<value>${maxHeight})',
configKey: 'maxHeight',
},

@@ -566,2 +619,3 @@ {

members: 'size\\-(?<value>${size})',
configKey: 'size',
},

@@ -576,2 +630,3 @@ ],

members: 'font\\-(?<value>${fontFamily})',
configKey: 'fontFamily',
},

@@ -581,2 +636,3 @@ {

members: 'text\\-(?<value>${fontSize})',
configKey: 'fontSize',
},

@@ -594,2 +650,3 @@ {

members: 'font\\-(?<value>${fontWeight})',
configKey: 'fontWeight',
},

@@ -628,10 +685,23 @@ {

members: '(tracking\\-(?<value>${letterSpacing})|\\-tracking\\-(?<negativeValue>${-letterSpacing}))',
configKey: 'letterSpacing',
},
// {
// type: 'Line Clamp',
// members: 'line\\-clamp\\-(?<value>${lineClamp})',
// configKey: 'lineClamp',
// },
{
type: 'Line Height',
members: 'leading\\-(?<value>${lineHeight})',
configKey: 'lineHeight',
},
// {
// type: 'List Style Image',
// members: 'list\\-image\\-(?<value>${listStyleImage})',
// configKey: 'listStyleImage',
// },
{
type: 'List Style Type',
members: 'list\\-(?<value>${listStyleType})',
configKey: 'listStyleType',
},

@@ -649,2 +719,3 @@ {

members: 'text\\-(?<value>${textColor})',
configKey: 'colors',
},

@@ -657,3 +728,4 @@ {

type: 'Text Decoration Color',
members: 'decoration\\-(?<value>${textDecorationColor})',
members: 'decoration\\-(?<value>${colors})',
configKey: 'colors',
},

@@ -667,2 +739,3 @@ {

members: 'decoration\\-(?<value>${textDecorationThickness})',
configKey: 'textDecorationThickness',
},

@@ -672,2 +745,3 @@ {

members: 'underline\\-offset\\-(?<value>${textUnderlineOffset})',
configKey: 'textUnderlineOffset',
},

@@ -694,2 +768,3 @@ {

members: '(indent\\-(?<value>${textIndent})|\\-indent\\-(?<negativeValue>${-textIndent}))',
configKey: 'textIndent',
},

@@ -711,2 +786,3 @@ {

members: 'content\\-(?<value>${content})',
configKey: 'content',
},

@@ -732,3 +808,4 @@ ],

type: 'Background Color',
members: 'bg\\-(?<value>${backgroundColor})',
members: 'bg\\-(?<value>${colors})',
configKey: 'colors',
},

@@ -747,2 +824,3 @@ {

members: 'bg\\-(?<value>${backgroundPosition})',
configKey: 'backgroundPosition',
},

@@ -756,2 +834,3 @@ {

members: 'bg\\-(?<value>${backgroundSize})',
configKey: 'backgroundSize',
},

@@ -761,2 +840,3 @@ {

members: 'bg\\-(?<value>${backgroundImage})',
configKey: 'backgroundImage',
},

@@ -768,11 +848,14 @@ {

type: 'from',
members: 'from\\-(?<value>${gradientColorStops})',
members: 'from\\-(?<value>${gradientColorStopPositions})',
configKey: 'gradientColorStopPositions',
},
{
type: 'via',
members: 'via\\-(?<value>${gradientColorStops})',
members: 'via\\-(?<value>${gradientColorStopPositions})',
configKey: 'gradientColorStopPositions',
},
{
type: 'to',
members: 'to\\-(?<value>${gradientColorStops})',
members: 'to\\-(?<value>${gradientColorStopPositions})',
configKey: 'gradientColorStopPositions',
},

@@ -794,2 +877,3 @@ ],

body: 'rounded',
configKey: 'borderRadius',
},

@@ -801,2 +885,3 @@ {

body: 'rounded-t',
configKey: 'borderRadius',
},

@@ -808,2 +893,3 @@ {

body: 'rounded-r',
configKey: 'borderRadius',
},

@@ -815,2 +901,3 @@ {

body: 'rounded-b',
configKey: 'borderRadius',
},

@@ -822,2 +909,3 @@ {

body: 'rounded-l',
configKey: 'borderRadius',
},

@@ -829,2 +917,3 @@ {

body: 'rounded-tl',
configKey: 'borderRadius',
},

@@ -836,2 +925,3 @@ {

body: 'rounded-tr',
configKey: 'borderRadius',
},

@@ -843,2 +933,3 @@ {

body: 'rounded-br',
configKey: 'borderRadius',
},

@@ -850,2 +941,3 @@ {

body: 'rounded-bl',
configKey: 'borderRadius',
},

@@ -862,2 +954,3 @@ ],

body: 'border',
configKey: 'borderWidth',
},

@@ -869,2 +962,3 @@ {

body: 'border-y',
configKey: 'borderWidth',
},

@@ -876,2 +970,3 @@ {

body: 'border-x',
configKey: 'borderWidth',
},

@@ -883,2 +978,3 @@ {

body: 'border-t',
configKey: 'borderWidth',
},

@@ -890,2 +986,3 @@ {

body: 'border-r',
configKey: 'borderWidth',
},

@@ -897,2 +994,3 @@ {

body: 'border-b',
configKey: 'borderWidth',
},

@@ -904,2 +1002,3 @@ {

body: 'border-l',
configKey: 'borderWidth',
},

@@ -916,2 +1015,3 @@ ],

body: 'border',
configKey: 'borderColor',
},

@@ -923,2 +1023,3 @@ {

body: 'border-y',
configKey: 'borderColor',
},

@@ -930,2 +1031,3 @@ {

body: 'border-x',
configKey: 'borderColor',
},

@@ -937,2 +1039,3 @@ {

body: 'border-t',
configKey: 'borderColor',
},

@@ -944,2 +1047,3 @@ {

body: 'border-r',
configKey: 'borderColor',
},

@@ -951,2 +1055,3 @@ {

body: 'border-b',
configKey: 'borderColor',
},

@@ -958,2 +1063,3 @@ {

body: 'border-l',
configKey: 'borderColor',
},

@@ -966,2 +1072,3 @@ ],

deprecated: true,
configKey: 'borderOpacity',
},

@@ -978,2 +1085,3 @@ {

members: 'divide\\-y(\\-(?<value>${divideWidth}))?',
configKey: 'divideWidth',
},

@@ -983,2 +1091,3 @@ {

members: 'divide\\-x(\\-(?<value>${divideWidth}))?',
configKey: 'divideWidth',
},

@@ -998,2 +1107,3 @@ {

members: 'divide\\-(?<value>${divideColor})',
configKey: 'divideColor',
},

@@ -1007,2 +1117,3 @@ {

members: 'outline\\-(?<value>${outlineWidth})',
configKey: 'outlineWidth',
},

@@ -1012,2 +1123,3 @@ {

members: 'outline\\-(?<value>${outlineColor})',
configKey: 'outlineColor',
},

@@ -1022,2 +1134,3 @@ {

'(outline\\-offset\\-(?<value>${outlineOffset})|\\-outline\\-offset\\-(?<negativeValue>${-outlineOffset}))',
configKey: 'outlineOffset',
},

@@ -1030,2 +1143,3 @@ {

members: 'ring(\\-(?<value>${ringWidth}))?',
configKey: 'ringWidth',
},

@@ -1045,3 +1159,4 @@ ],

type: 'Ring Color',
members: 'ring\\-(?<value>${ringColor})',
members: 'ring\\-(?<value>${colors})',
configKey: 'colors',
},

@@ -1052,2 +1167,3 @@ {

deprecated: true,
configKey: 'ringOpacity',
},

@@ -1057,6 +1173,8 @@ {

members: 'ring\\-offset\\-(?<value>${ringOffsetWidth})',
configKey: 'ringOffsetWidth',
},
{
type: 'Ring Offset Color',
members: 'ring\\-offset\\-(?<value>${ringOffsetColor})',
members: 'ring\\-offset\\-(?<value>${colors})',
configKey: 'colors',
},

@@ -1071,2 +1189,3 @@ ],

members: 'shadow(\\-(?<value>${boxShadow}))?',
configKey: 'boxShadow',
},

@@ -1076,2 +1195,3 @@ {

members: 'shadow(\\-(?<value>${boxShadowColor}))?',
configKey: 'boxShadowColor',
},

@@ -1081,2 +1201,3 @@ {

members: 'opacity\\-(?<value>${opacity})',
configKey: 'opacity',
},

@@ -1106,2 +1227,3 @@ {

members: 'blur(\\-(?<value>${blur}))?',
configKey: 'blur',
},

@@ -1111,2 +1233,3 @@ {

members: 'brightness\\-(?<value>${brightness})',
configKey: 'brightness',
},

@@ -1116,2 +1239,3 @@ {

members: 'contrast\\-(?<value>${contrast})',
configKey: 'contrast',
},

@@ -1121,2 +1245,3 @@ {

members: 'drop\\-shadow(\\-(?<value>${dropShadow}))?',
configKey: 'dropShadow',
},

@@ -1126,2 +1251,3 @@ {

members: 'grayscale(\\-(?<value>${grayscale}))?',
configKey: 'grayscale',
},

@@ -1131,2 +1257,3 @@ {

members: 'hue\\-rotate\\-(?<value>${hueRotate})|\\-hue\\-rotate\\-(?<negativeValue>${-hueRotate})',
configKey: 'hueRotate',
},

@@ -1136,2 +1263,3 @@ {

members: 'invert(\\-(?<value>${invert}))?',
configKey: 'invert',
},

@@ -1141,2 +1269,3 @@ {

members: 'saturate\\-(?<value>${saturate})',
configKey: 'saturate',
},

@@ -1146,2 +1275,3 @@ {

members: 'sepia(\\-(?<value>${sepia}))?',
configKey: 'sepia',
},

@@ -1151,2 +1281,3 @@ {

members: 'backdrop\\-blur(\\-(?<value>${backdropBlur}))?',
configKey: 'backdropBlur',
},

@@ -1156,2 +1287,3 @@ {

members: 'backdrop\\-brightness\\-(?<value>${backdropBrightness})',
configKey: 'backdropBrightness',
},

@@ -1161,2 +1293,3 @@ {

members: 'backdrop\\-contrast\\-(?<value>${backdropContrast})',
configKey: 'backdropContrast',
},

@@ -1166,2 +1299,3 @@ {

members: 'backdrop\\-grayscale(\\-(?<value>${backdropGrayscale}))?',
configKey: 'backdropGrayscale',
},

@@ -1172,2 +1306,3 @@ {

'backdrop\\-hue\\-rotate\\-(?<value>${backdropHueRotate})|\\-backdrop\\-hue\\-rotate\\-(?<negativeValue>${-backdropHueRotate})',
configKey: 'backdropHueRotate',
},

@@ -1177,2 +1312,3 @@ {

members: 'backdrop\\-invert(\\-(?<value>${backdropInvert}))?',
configKey: 'backdropInvert',
},

@@ -1182,2 +1318,3 @@ {

members: 'backdrop\\-opacity\\-(?<value>${backdropOpacity})',
configKey: 'backdropOpacity',
},

@@ -1187,2 +1324,3 @@ {

members: 'backdrop\\-saturate\\-(?<value>${backdropSaturate})',
configKey: 'backdropSaturate',
},

@@ -1192,2 +1330,3 @@ {

members: 'backdrop\\-sepia(\\-(?<value>${backdropSepia}))?',
configKey: 'backdropSepia',
},

@@ -1211,2 +1350,3 @@ ],

body: 'border-spacing',
configKey: 'borderSpacing',
},

@@ -1218,2 +1358,3 @@ {

body: 'border-spacing-x',
configKey: 'borderSpacing',
},

@@ -1225,2 +1366,3 @@ {

body: 'border-spacing-y',
configKey: 'borderSpacing',
},

@@ -1241,2 +1383,3 @@ ],

members: 'transition(\\-(?<value>${transitionProperty}))?',
configKey: 'transitionProperty',
},

@@ -1246,2 +1389,3 @@ {

members: 'duration(\\-(?<value>${transitionDuration}))?',
configKey: 'transitionDuration',
},

@@ -1251,2 +1395,3 @@ {

members: 'ease(\\-(?<value>${transitionTimingFunction}))?',
configKey: 'transitionTimingFunction',
},

@@ -1256,2 +1401,3 @@ {

members: 'delay\\-(?<value>${transitionDelay})',
configKey: 'transitionDelay',
},

@@ -1261,2 +1407,3 @@ {

members: 'animate\\-(?<value>${animation})',
configKey: 'animation',
},

@@ -1304,2 +1451,3 @@ ],

body: 'scale',
configKey: 'scale',
},

@@ -1311,2 +1459,3 @@ {

body: 'scale-y',
configKey: 'scale',
},

@@ -1318,2 +1467,3 @@ {

body: 'scale-x',
configKey: 'scale',
},

@@ -1325,2 +1475,3 @@ ],

members: '(rotate\\-(?<value>${rotate})|\\-rotate\\-(?<negativeValue>${-rotate}))',
configKey: 'rotate',
},

@@ -1333,2 +1484,3 @@ {

members: '(translate\\-x\\-(?<value>${translate})|\\-translate\\-x\\-(?<negativeValue>${-translate}))',
configKey: 'translate',
},

@@ -1338,2 +1490,3 @@ {

members: '(translate\\-y\\-(?<value>${translate})|\\-translate\\-y\\-(?<negativeValue>${-translate}))',
configKey: 'translate',
},

@@ -1348,2 +1501,3 @@ ],

members: '(skew\\-x\\-(?<value>${skew})|\\-skew\\-x\\-(?<negativeValue>${-skew}))',
configKey: 'skew',
},

@@ -1353,2 +1507,3 @@ {

members: '(skew\\-y\\-(?<value>${skew})|\\-skew\\-y\\-(?<negativeValue>${-skew}))',
configKey: 'skew',
},

@@ -1360,2 +1515,3 @@ ],

members: 'origin\\-(?<value>${transformOrigin})',
configKey: 'transformOrigin',
},

@@ -1370,2 +1526,3 @@ ],

members: 'accent\\-(?<value>${accentColor})',
configKey: 'accentColor',
},

@@ -1379,6 +1536,8 @@ {

members: 'cursor\\-(?<value>${cursor})',
configKey: 'cursor',
},
{
type: 'Caret Color',
members: 'caret\\-(?<value>${caretColor})',
members: 'caret\\-(?<value>${colors})',
configKey: 'colors',
},

@@ -1400,2 +1559,3 @@ {

members: 'scroll\\-(?<value>${scrollMargin})',
configKey: 'scrollMargin',
members: [

@@ -1405,2 +1565,3 @@ {

members: 'scroll-m\\-(?<value>${scrollMargin})|\\-scroll-m\\-(?<negativeValue>${-scrollMargin})',
configKey: 'scrollMargin',
},

@@ -1410,2 +1571,3 @@ {

members: 'scroll-my\\-(?<value>${scrollMargin})|\\-scroll-my\\-(?<negativeValue>${-scrollMargin})',
configKey: 'scrollMargin',
},

@@ -1415,2 +1577,3 @@ {

members: 'scroll-mx\\-(?<value>${scrollMargin})|\\-scroll-mx\\-(?<negativeValue>${-scrollMargin})',
configKey: 'scrollMargin',
},

@@ -1420,2 +1583,3 @@ {

members: 'scroll-mt\\-(?<value>${scrollMargin})|\\-scroll-mt\\-(?<negativeValue>${-scrollMargin})',
configKey: 'scrollMargin',
},

@@ -1425,2 +1589,3 @@ {

members: 'scroll-mr\\-(?<value>${scrollMargin})|\\-scroll-mr\\-(?<negativeValue>${-scrollMargin})',
configKey: 'scrollMargin',
},

@@ -1430,2 +1595,3 @@ {

members: 'scroll-mb\\-(?<value>${scrollMargin})|\\-scroll-mb\\-(?<negativeValue>${-scrollMargin})',
configKey: 'scrollMargin',
},

@@ -1435,2 +1601,3 @@ {

members: 'scroll-ml\\-(?<value>${scrollMargin})|\\-scroll-ml\\-(?<negativeValue>${-scrollMargin})',
configKey: 'scrollMargin',
},

@@ -1442,2 +1609,3 @@ ],

members: 'scroll\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
members: [

@@ -1447,2 +1615,3 @@ {

members: 'scroll-p\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
},

@@ -1452,2 +1621,3 @@ {

members: 'scroll-py\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
},

@@ -1457,2 +1627,3 @@ {

members: 'scroll-px\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
},

@@ -1462,2 +1633,3 @@ {

members: 'scroll-pt\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
},

@@ -1467,2 +1639,3 @@ {

members: 'scroll-pr\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
},

@@ -1472,2 +1645,3 @@ {

members: 'scroll-pb\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
},

@@ -1477,2 +1651,3 @@ {

members: 'scroll-pl\\-(?<value>${scrollPadding})',
configKey: 'scrollPadding',
},

@@ -1525,2 +1700,3 @@ ],

members: 'will\\-change\\-(?<value>${willChange})',
configKey: 'willChange',
},

@@ -1535,2 +1711,3 @@ ],

members: 'fill\\-(?<value>${fill})',
configKey: 'fill',
},

@@ -1540,2 +1717,3 @@ {

members: 'stroke\\-(?<value>${stroke})',
configKey: 'stroke',
},

@@ -1545,2 +1723,3 @@ {

members: 'stroke\\-(?<value>${strokeWidth})',
configKey: 'strokeWidth',
},

@@ -1547,0 +1726,0 @@ ],

@@ -22,2 +22,3 @@ /**

'no-custom-classname': require(base + 'no-custom-classname'),
'no-unnecessary-arbitrary-value': require(base + 'no-unnecessary-arbitrary-value'),
},

@@ -40,2 +41,3 @@ configs: {

'tailwindcss/no-contradicting-classname': 'error',
'tailwindcss/no-unnecessary-arbitrary-value': 'warn',
},

@@ -42,0 +44,0 @@ },

2

lib/rules/no-contradicting-classname.js

@@ -28,3 +28,3 @@ /**

category: 'Possible Errors',
recommended: false,
recommended: true,
url: docsUrl('no-contradicting-classname'),

@@ -31,0 +31,0 @@ },

@@ -86,16 +86,12 @@ /**

return '(' + escapedKeys.join('|') + ')';
case 'colors':
case 'accentColor':
case 'backgroundColor':
case 'borderColor':
case 'boxShadowColor':
case 'caretColor':
case 'divideColor':
case 'fill':
case 'outlineColor':
case 'ringColor':
case 'ringOffsetColor':
case 'textColor':
case 'textDecorationColor':
case 'stroke':
case 'gradientColorStops':
case 'gradientColorStopPositions':
// Colors can use segments like 'indigo' and 'indigo-light'

@@ -124,3 +120,3 @@ // https://tailwindcss.com/docs/customizing-colors#color-object-syntax

break;
case 'gradientColorStops':
case 'gradientColorStopPositions':
arbitraryColors.push(color.RGBAPercentages); // RGBA % 0.5[%]

@@ -438,2 +434,29 @@ arbitraryColors.push(color.optionalColorPrefixedVar);

/**
* Generates a flatten array from the groups configKeys
*
* @param {Array} groupsConfig The array of objects containing the regex
* @param {Object} twConfig The merged config of Tailwind CSS
* @returns {Array} Flatten array
*/
function getGroupConfigKeys(groupsConfig) {
const groups = [];
groupsConfig.forEach((group) => {
// e.g. SIZING or SPACING
group.members.forEach((prop) => {
// e.g. Width or Padding
if (typeof prop.members === 'string') {
// Unique property, like `width` limited to one value
groups.push(prop.configKey ? prop.configKey : null);
} else {
// Multiple properties, like `padding`, `padding-top`...
prop.members.forEach((subprop) => {
groups.push(subprop.configKey ? subprop.configKey : null);
});
}
});
});
return groups;
}
/**
* Returns the prefix (variants) of a className including the separator or an empty string if none

@@ -589,2 +612,3 @@ *

getGroupIndex,
getGroupConfigKeys,
getPrefix,

@@ -591,0 +615,0 @@ getSuffix,

@@ -35,2 +35,4 @@ const removeDuplicatesFromArray = require('../removeDuplicatesFromArray');

const validZeroRegEx = `^(0(\\.0{1,})?|\\.0{1,})(${mergedUnits.join('|')})?$`;
module.exports = {

@@ -44,2 +46,3 @@ mergedUnits,

mergedLengthValues,
validZeroRegEx,
};
{
"name": "eslint-plugin-tailwindcss",
"version": "3.14.3",
"version": "3.15.0-beta.0",
"description": "Rules enforcing best practices while using Tailwind CSS",

@@ -5,0 +5,0 @@ "keywords": [

@@ -25,2 +25,3 @@ # eslint-plugin-tailwindcss

- [`no-contradicting-classname`](docs/rules/no-contradicting-classname.md): e.g. avoid `p-2 p-3`, different Tailwind CSS classnames (`pt-2` & `pt-3`) but targeting the same property several times for the same variant.
- [`no-unnecessary-arbitrary-value`](docs/rules/no-unnecessary-arbitrary-value.md): e.g. replacing `m-[1.25rem]` by its configuration based classname `m-5`

@@ -44,2 +45,3 @@ Using ESLint extension for Visual Studio Code, you will get these messages

- feat: new rule [**`no-unnecessary-arbitrary-value`**](docs/rules/no-unnecessary-arbitrary-value.md) πŸŽ‰
- fix: retro compatibility for older Tailwind CSS (before typescript config)

@@ -220,3 +222,1 @@ - fix: [composable touch action classnames](https://github.com/francoismassart/eslint-plugin-tailwindcss/issues/293)

- e.g. avoid `text-[rgba(10%,20%,30,50%)]`, can't mix `%` and `0-255`.
- `no-unnecessary-arbitrary-value`: e.g. replacing `h-[0]` by its configuration based classname `h-0`.
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚑️ by Socket Inc