seeds_tailwind-1.0.x-dev/plugin/tailwindcss-rfs.js

plugin/tailwindcss-rfs.js
const plugin = require('tailwindcss/plugin')

module.exports = plugin(function ({ addVariant }) {
    addVariant('rfs', ({ container, separator }) => {
        container.walkRules(rule => {
            rule.selector = rule.selector.slice(1)

            if (isGeneralUtility(rule.selector)) {
                handleGeneralUtilities(rule)
            } else {
                handleSpaceBetweenUtilities(rule)
            }

            rule.selector = `.rfs\\${separator}${rule.selector}`
        })
    })

    const isGeneralUtility = function (selector) {
        if (/^-?space-(x|y)-/.test(selector)) return false

        return true
    }

    const handleGeneralUtilities = function (rule) {
        rule.walkDecls(decl => {
            decl.value = `rfs(${decl.value})`
        })
    }

    const handleSpaceBetweenUtilities = function (rule) {
        rule.walkDecls(decl => {
            let rawValue = decl.value.replace('calc(', '').split(' ')[0]
            let rfs = `rfs(${rawValue})`

            decl.value = decl.value.replace(rawValue, rfs)
        })
    }
})

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc