2019-01-09 21:13:57 -05:00
|
|
|
import _ from 'lodash'
|
|
|
|
|
|
2019-04-23 20:04:24 -04:00
|
|
|
function className(prefix, modifier) {
|
|
|
|
|
return _.startsWith(modifier, '-') ? `-${prefix}-${modifier.slice(1)}` : `${prefix}-${modifier}`
|
|
|
|
|
}
|
|
|
|
|
|
2019-02-28 12:05:36 -05:00
|
|
|
export default function() {
|
2019-04-18 23:29:07 +02:00
|
|
|
return function({ addUtilities, e, theme, variants }) {
|
2019-01-09 21:13:57 -05:00
|
|
|
const generators = [
|
|
|
|
|
(size, modifier) => ({
|
2019-04-23 20:04:24 -04:00
|
|
|
[`.${e(className('m', modifier))}`]: { margin: `${size}` },
|
2019-01-09 21:13:57 -05:00
|
|
|
}),
|
|
|
|
|
(size, modifier) => ({
|
2019-04-23 20:04:24 -04:00
|
|
|
[`.${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) => ({
|
2019-04-23 20:04:24 -04:00
|
|
|
[`.${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 => {
|
2019-04-18 23:29:07 +02:00
|
|
|
return _.flatMap(theme('margin'), generator)
|
2019-01-09 21:13:57 -05:00
|
|
|
})
|
|
|
|
|
|
2019-04-18 09:42:21 -04:00
|
|
|
addUtilities(utilities, variants('margin'))
|
2019-01-09 21:13:57 -05:00
|
|
|
}
|
|
|
|
|
}
|