Support reverse order for space and divide utilities

This commit is contained in:
Adam Wathan 2020-04-20 13:34:00 -04:00
parent 0f54a60d05
commit a75b6901aa
4 changed files with 109 additions and 27 deletions

View file

@ -3,20 +3,34 @@ import _ from 'lodash'
export default function() {
return function({ addUtilities, e, theme, variants }) {
const generators = [
(value, modifier) => ({
(size, modifier) => ({
[`.${e(`divide-y${modifier}`)} > :not(template) ~ :not(template)`]: {
'border-top-width': `${value}`,
'--divide-y-reverse': '0',
'border-top': `calc(${size} * calc(1 - var(--divide-y-reverse)))`,
'border-bottom': `calc(${size} * var(--divide-y-reverse))`,
},
[`.${e(`divide-x${modifier}`)} > :not(template) ~ :not(template)`]: {
'border-left-width': `${value}`,
'--divide-x-reverse': '0',
'border-right': `calc(${size} * var(--divide-y-reverse))`,
'border-left': `calc(${size} * calc(1 - var(--divide-y-reverse)))`,
},
}),
]
const utilities = _.flatMap(generators, generator => {
return _.flatMap(theme('divideWidth'), (value, modifier) => {
return generator(value, modifier === 'default' ? '' : `-${modifier}`)
})
return [
..._.flatMap(theme('divideWidth'), (value, modifier) => {
return generator(value, modifier === 'default' ? '' : `-${modifier}`)
}),
{
'.divide-y-reverse > :not(template) ~ :not(template)': {
'--divide-y-reverse': '1',
},
'.divide-x-reverse > :not(template) ~ :not(template)': {
'--divide-x-reverse': '1',
},
},
]
})
addUtilities(utilities, variants('divideWidth'))

View file

@ -5,16 +5,30 @@ export default function() {
const generators = [
(size, modifier) => ({
[`.${e(`space-y-${modifier}`)} > :not(template) ~ :not(template)`]: {
'margin-top': `${size}`,
'--space-y-reverse': '0',
'margin-top': `calc(${size} * calc(1 - var(--space-y-reverse)))`,
'margin-bottom': `calc(${size} * var(--space-y-reverse))`,
},
[`.${e(`space-x-${modifier}`)} > :not(template) ~ :not(template)`]: {
'margin-left': `${size}`,
'--space-x-reverse': '0',
'margin-right': `calc(${size} * var(--space-y-reverse))`,
'margin-left': `calc(${size} * calc(1 - var(--space-y-reverse)))`,
},
}),
]
const utilities = _.flatMap(generators, generator => {
return _.flatMap(theme('space'), generator)
return [
..._.flatMap(theme('space'), generator),
{
'.space-y-reverse > :not(template) ~ :not(template)': {
'--space-y-reverse': '1',
},
'.space-x-reverse > :not(template) ~ :not(template)': {
'--space-x-reverse': '1',
},
},
]
})
addUtilities(utilities, variants('space'))