tailwindcss/src/plugins/margin.js

38 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-01-09 21:13:57 -05:00
import _ from 'lodash'
function className(prefix, modifier) {
return _.startsWith(modifier, '-') ? `-${prefix}-${modifier.slice(1)}` : `${prefix}-${modifier}`
}
2019-02-28 12:05:36 -05:00
export default function() {
return function({ addUtilities, e, theme, variants }) {
2019-01-09 21:13:57 -05:00
const generators = [
(size, modifier) => ({
[`.${e(className('m', modifier))}`]: { margin: `${size}` },
2019-01-09 21:13:57 -05:00
}),
(size, modifier) => ({
[`.${e(className('my', modifier))}`]: {
'margin-top': `${size}`,
'margin-bottom': `${size}`,
},
[`.${e(className('mx', modifier))}`]: {
'margin-left': `${size}`,
'margin-right': `${size}`,
},
2019-01-09 21:13:57 -05:00
}),
(size, modifier) => ({
[`.${e(className('mt', modifier))}`]: { 'margin-top': `${size}` },
[`.${e(className('mr', modifier))}`]: { 'margin-right': `${size}` },
[`.${e(className('mb', modifier))}`]: { 'margin-bottom': `${size}` },
[`.${e(className('ml', modifier))}`]: { 'margin-left': `${size}` },
2019-01-09 21:13:57 -05:00
}),
]
const utilities = _.flatMap(generators, generator => {
return _.flatMap(theme('margin'), generator)
2019-01-09 21:13:57 -05:00
})
addUtilities(utilities, variants('margin'))
2019-01-09 21:13:57 -05:00
}
}