Skip to content

Commit 07f411a

Browse files
authored
Merge pull request #874 from tailwindcss/widen-negative-value-support
Remove 'className' from plugin API
2 parents b29206c + 0735e3d commit 07f411a

File tree

6 files changed

+29
-91
lines changed

6 files changed

+29
-91
lines changed

__tests__/processPlugins.test.js

Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -597,66 +597,6 @@ test('plugins can create rules with escaped selectors', () => {
597597
`)
598598
})
599599

600-
test('plugins can create class names accounting for special naming rules easily', () => {
601-
const { components, utilities } = processPlugins(
602-
[
603-
function({ className, addUtilities }) {
604-
addUtilities({
605-
[className('rotate', '1/4')]: {
606-
transform: 'rotate(90deg)',
607-
},
608-
[className('rotate', '-1/4')]: {
609-
transform: 'rotate(-90deg)',
610-
},
611-
[className('rotate', 'default')]: {
612-
transform: 'rotate(180deg)',
613-
},
614-
})
615-
},
616-
],
617-
makeConfig()
618-
)
619-
620-
expect(components.length).toBe(0)
621-
expect(css(utilities)).toMatchCss(`
622-
@variants {
623-
.rotate-1\\/4 {
624-
transform: rotate(90deg)
625-
}
626-
.-rotate-1\\/4 {
627-
transform: rotate(-90deg)
628-
}
629-
.rotate {
630-
transform: rotate(180deg)
631-
}
632-
}
633-
`)
634-
})
635-
636-
test('the second parameter in className is optional', () => {
637-
const { components, utilities } = processPlugins(
638-
[
639-
function({ className, addUtilities }) {
640-
addUtilities({
641-
[className('rotate')]: {
642-
transform: 'rotate(180deg)',
643-
},
644-
})
645-
},
646-
],
647-
makeConfig()
648-
)
649-
650-
expect(components.length).toBe(0)
651-
expect(css(utilities)).toMatchCss(`
652-
@variants {
653-
.rotate {
654-
transform: rotate(180deg)
655-
}
656-
}
657-
`)
658-
})
659-
660600
test('plugins can access the current config', () => {
661601
const { components, utilities } = processPlugins(
662602
[

src/plugins/inset.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
import _ from 'lodash'
2+
import prefixNegativeModifiers from '../util/prefixNegativeModifiers'
23

34
export default function() {
4-
return function({ addUtilities, className, theme, variants }) {
5+
return function({ addUtilities, e, theme, variants }) {
56
const generators = [
67
(size, modifier) => ({
7-
[className('inset', modifier)]: {
8+
[`.${e(prefixNegativeModifiers('inset', modifier))}`]: {
89
top: `${size}`,
910
right: `${size}`,
1011
bottom: `${size}`,
1112
left: `${size}`,
1213
},
1314
}),
1415
(size, modifier) => ({
15-
[className('inset-y', modifier)]: { top: `${size}`, bottom: `${size}` },
16-
[className('inset-x', modifier)]: { right: `${size}`, left: `${size}` },
16+
[`.${e(prefixNegativeModifiers('inset-y', modifier))}`]: {
17+
top: `${size}`,
18+
bottom: `${size}`,
19+
},
20+
[`.${e(prefixNegativeModifiers('inset-x', modifier))}`]: {
21+
right: `${size}`,
22+
left: `${size}`,
23+
},
1724
}),
1825
(size, modifier) => ({
19-
[className('top', modifier)]: { top: `${size}` },
20-
[className('right', modifier)]: { right: `${size}` },
21-
[className('bottom', modifier)]: { bottom: `${size}` },
22-
[className('left', modifier)]: { left: `${size}` },
26+
[`.${e(prefixNegativeModifiers('top', modifier))}`]: { top: `${size}` },
27+
[`.${e(prefixNegativeModifiers('right', modifier))}`]: { right: `${size}` },
28+
[`.${e(prefixNegativeModifiers('bottom', modifier))}`]: { bottom: `${size}` },
29+
[`.${e(prefixNegativeModifiers('left', modifier))}`]: { left: `${size}` },
2330
}),
2431
]
2532

src/plugins/margin.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
import _ from 'lodash'
2+
import prefixNegativeModifiers from '../util/prefixNegativeModifiers'
23

34
export default function() {
4-
return function({ addUtilities, className, theme, variants }) {
5+
return function({ addUtilities, e, theme, variants }) {
56
const generators = [
67
(size, modifier) => ({
7-
[className('m', modifier)]: { margin: `${size}` },
8+
[`.${e(prefixNegativeModifiers('m', modifier))}`]: { margin: `${size}` },
89
}),
910
(size, modifier) => ({
10-
[className('my', modifier)]: {
11+
[`.${e(prefixNegativeModifiers('my', modifier))}`]: {
1112
'margin-top': `${size}`,
1213
'margin-bottom': `${size}`,
1314
},
14-
[className('mx', modifier)]: {
15+
[`.${e(prefixNegativeModifiers('mx', modifier))}`]: {
1516
'margin-left': `${size}`,
1617
'margin-right': `${size}`,
1718
},
1819
}),
1920
(size, modifier) => ({
20-
[className('mt', modifier)]: { 'margin-top': `${size}` },
21-
[className('mr', modifier)]: { 'margin-right': `${size}` },
22-
[className('mb', modifier)]: { 'margin-bottom': `${size}` },
23-
[className('ml', modifier)]: { 'margin-left': `${size}` },
21+
[`.${e(prefixNegativeModifiers('mt', modifier))}`]: { 'margin-top': `${size}` },
22+
[`.${e(prefixNegativeModifiers('mr', modifier))}`]: { 'margin-right': `${size}` },
23+
[`.${e(prefixNegativeModifiers('mb', modifier))}`]: { 'margin-bottom': `${size}` },
24+
[`.${e(prefixNegativeModifiers('ml', modifier))}`]: { 'margin-left': `${size}` },
2425
}),
2526
]
2627

src/util/className.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/util/prefixNegativeModifiers.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import _ from 'lodash'
2+
3+
export default function prefixNegativeModifiers(base, modifier) {
4+
return _.startsWith(modifier, '-') ? `-${base}-${modifier.slice(1)}` : `${base}-${modifier}`
5+
}

src/util/processPlugins.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import _ from 'lodash'
22
import postcss from 'postcss'
33
import Node from 'postcss/lib/node'
44
import escapeClassName from '../util/escapeClassName'
5-
import className from '../util/className'
65
import generateVariantFunction from '../util/generateVariantFunction'
76
import parseObjectStyles from '../util/parseObjectStyles'
87
import prefixSelector from '../util/prefixSelector'
@@ -40,7 +39,6 @@ export default function(plugins, config) {
4039
return getConfigValue(`variants.${path}`, defaultValue)
4140
},
4241
e: escapeClassName,
43-
className,
4442
prefix: applyConfiguredPrefix,
4543
addUtilities: (utilities, options) => {
4644
const defaultOptions = { variants: [], respectPrefix: true, respectImportant: true }

0 commit comments

Comments
 (0)