PostCSS Responsive Query
PostCSS plugin that automatically expands rules into media queries.
Install
$ yarn add postcss-responsive-query -D# or $ npm install post-css-responsive-query --save-dev
Configuration
This plugin requires a breakpoints
object in options:
breakpoints: mobile: '(max-width: 600px)' tablet: '(max-width: 960px) and (min-width: 600px)' desktop: '(min-width: 961px)'
These keys are used as suffixes for the generated classnames, as shown in the example below.
Usage
Rules inside of a responsive query will be duplicated into the media queries you specify with a suffix you specify appended to the classname:
/* Input */@}
/* Output */{} {} {}
Only class selectors are allowed inside responsive queries. The following will throw an error:
@}
Responsive Query Parameters
You can pass parameters to the responsive query to indicate what classnames to transform:
/* Input */@) }
/* Output */{} /* ... */
Just like above, you should only use class selectors inside responsive query parameters:
/* ERROR, not a class selector */@)
Usage with Next.js
Read the Next.js docs about customizing the PostCSS config and add postcss-responsive-query
to your list of plugins.
For example:
// postcss.config.js moduleexports = plugins: 'postcss-flexbugs-fixes' 'postcss-responsive-query' breakpoints: mobile: '(max-width: 600px)' tablet: '(max-width: 960px) and (min-width: 600px)' desktop: '(min-width: 961px)' 'postcss-preset-env' autoprefixer: flexbox: 'no-2009' stage: 3 features: 'custom-properties': false