/
divideColor.js
34 lines (29 loc) · 997 Bytes
/
divideColor.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import _ from 'lodash'
import flattenColorPalette from '../util/flattenColorPalette'
import nameClass from '../util/nameClass'
import toColorValue from '../util/toColorValue'
import withAlphaVariable from '../util/withAlphaVariable'
export default function() {
return function({ addUtilities, theme, variants, corePlugins }) {
const colors = flattenColorPalette(theme('divideColor'))
const getProperties = value => {
if (corePlugins('divideOpacity')) {
return withAlphaVariable({
color: value,
property: 'border-color',
variable: '--divide-opacity',
})
}
return { 'border-color': toColorValue(value) }
}
const utilities = _.fromPairs(
_.map(_.omit(colors, 'DEFAULT'), (value, modifier) => {
return [
`${nameClass('divide', modifier)} > :not(template) ~ :not(template)`,
getProperties(value),
]
})
)
addUtilities(utilities, variants('divideColor'))
}
}