* implement matchUtilities2 * ensure animation names without keyframes are not prefixed * remove matchBase * call addUtilities for each group individually * WIP: Write plugins using matchUtilities2 * MORE * Fix arbitrary value support for fontSize * Fixes, update fixtures * Rebuild fixtures * Don't generate `divide` class with no modifier * Fixes, rebuild fixtures * Rename matchUtilities2 to matchUtilities * Delete bad tests * Remove temp files GROSS * Clean stuff up * Support no return in matchUtilities Co-authored-by: Adam Wathan <adam.wathan@gmail.com>
27 lines
780 B
JavaScript
27 lines
780 B
JavaScript
import isPlainObject from '../util/isPlainObject'
|
|
|
|
export default function () {
|
|
return function ({ matchUtilities, theme, variants }) {
|
|
matchUtilities(
|
|
{
|
|
text: (value) => {
|
|
let [fontSize, options] = Array.isArray(value) ? value : [value]
|
|
let { lineHeight, letterSpacing } = isPlainObject(options)
|
|
? options
|
|
: { lineHeight: options }
|
|
|
|
return {
|
|
'font-size': fontSize,
|
|
...(lineHeight === undefined ? {} : { 'line-height': lineHeight }),
|
|
...(letterSpacing === undefined ? {} : { 'letter-spacing': letterSpacing }),
|
|
}
|
|
},
|
|
},
|
|
{
|
|
values: theme('fontSize'),
|
|
variants: variants('fontSize'),
|
|
type: 'length',
|
|
}
|
|
)
|
|
}
|
|
}
|