postcss-media-properties

0.1.1 • Public • Published

CSS Custom Properties in @media and @custom-media

NPM Version License

PostCSS plugin to use CSS Custom Properties in @media and @custom-media query parameters. Use ":root" scope only!

There's no specification for this!, but based on the specifications:

Example

/* input */
:root {
  --column-width: 300px;
  --columns-gap: 20px;
  --two-column: calc(2 * (var(--column-width) + var(--columns-gap)) + var(--columns-gap));
}
 
@custom-media --media-two-columns (min-width: var(--two-column));
 
@media (min-width: calc(3 * (var(--column-width) + var(--columns-gap)) + var(--columns-gap))) {}
 
 
/* becomes */
 
 
@custom-media --media-two-columns (min-width: calc(2 * (300px + 20px) + 20px));
 
@media (min-width: calc(3 * (300px + 20px) + 20px)) {}

Install

npm install postcss-media-properties --save-dev

Usage

Every other plugin is optional, but use this plugin first. Recommended to use postcss-calc plugin for fix calc nesting.

Example

const fs = require('fs');
const postcss = require('postcss');
 
const postcssMediaProperties = require('postcss-media-properties');
const postcssCustomMedia = require('postcss-custom-media');
const postcssCalc = require('postcss-calc');
const postcssMediaMinmax = require('postcss-media-minmax');
 
const inputRaw = fs.readFileSync('input.css', 'utf8');
 
// Process your CSS
const outputCss = postcss()
                  .use(postcssMediaProperties())
                  .use(postcssCustomMedia(/* options */))
                  .use(postcssCalc({ mediaQueries: true, /* other options */}))
                  .use(postcssMediaMinmax(/* options */))
                  .process(cssRaw, { /* options */ })
                  .css;
 
fs.writeFileSync('output.css', outputCss, 'utf8');

For more exapmles, see PostCSS usage guide

Non-Standard functionality

This plugin is created in personal needs. Use CSS Custom Properties as part of media query not included in the standard or draft. But it's very convenient at large projects.

Changelog

License

Package Sidebar

Install

npm i postcss-media-properties

Weekly Downloads

0

Version

0.1.1

License

MIT

Unpacked Size

6.87 kB

Total Files

5

Last publish

Collaborators

  • wisdman