Be water, be fluid, be responsive.
A PostCSS plugin that helps you automatically apply clamp()
to values to achieve a fluid design efficently.
This plugin uses PostCSS Sparrow, PostCSS Sparrow Units Filter and PostCSS Sparrow Props Filter under the hood for filtering CSS declarations.
/* Before transformation */
p {
font-size: 30px;
padding: 15px;
}
//postcss.config.js
module.exports = {
plugins: [
//Other plugins...
require('postcss-sparrow')({
transformations: [
{
selectors: ['*'],
inclusion: true,
callbacks: [
require('bewater')(
{
props: {
props: ['font-size'],
inclusion: true
},
units: {
units: ['*'],
inclusion: true
},
scale: 1.5, //Multiplier for the original value, and the product will be used as the 3rd param for clamp()
changeRate: '4vw' //The rate for the value to change. This value will be used as the 2nd param for clamp()
}
)
]
}
]
})
]
}
/* After transformation */
p {
font-size: clamp(30px, 4vw, 45px);
padding: 15px;
}
This plugin require you to use PostCSS Sparrow for matching with selectors you want.
Download both postcss-sparrow
and this plugin through NPM.
npm i postcss postcss-sparrow bewater
Then import this plugin as the callback for PostCSS Sparrow.
Filter options for filtering CSS declaration by its prop. Read the API reference of PostCSS Sparrow Props Filter for more details. props
defaults to [*]
and inclusion
defaults to true
.
Filter options for filtering CSS declaration by its prop. Read the API reference of PostCSS Sparrow Units Filter for more details. units
defaults to [*]
and inclusion
defaults to true
.
Multiplier for the original value, and the product will be used as the 3rd param for clamp()
. Default to 2
.
The rate for the value to change. This value will be used as the 2nd param for clamp()
. Default to 2vw
.