mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
33 lines
819 B
JavaScript
33 lines
819 B
JavaScript
import _ from 'lodash'
|
|
import postcss from 'postcss'
|
|
import cloneNodes from '../util/cloneNodes'
|
|
|
|
export default function(options) {
|
|
return function(css) {
|
|
const rules = []
|
|
|
|
css.walkAtRules('responsive', atRule => {
|
|
const nodes = atRule.nodes
|
|
rules.push(...cloneNodes(nodes))
|
|
atRule.before(nodes)
|
|
atRule.remove()
|
|
})
|
|
|
|
Object.keys(options.breakpoints).forEach(breakpoint => {
|
|
const mediaQuery = postcss.atRule({
|
|
name: 'media',
|
|
params: `(--breakpoint-${breakpoint})`,
|
|
})
|
|
|
|
mediaQuery.append(
|
|
rules.map(rule => {
|
|
const cloned = rule.clone()
|
|
cloned.selectors = _.map(rule.selectors, selector => `.${breakpoint}\\:${selector.slice(1)}`)
|
|
return cloned
|
|
})
|
|
)
|
|
css.append(mediaQuery)
|
|
})
|
|
}
|
|
}
|