grunt-combine-media-queries

Combine matching media queries into one media query definition. Useful for CSS generated by preprocessors using nested media queries.

Usage no npm install needed!

<script type="module">
  import gruntCombineMediaQueries from 'https://cdn.skypack.dev/grunt-combine-media-queries';
</script>

README

Code Climate

Combine media queries

Combine matching media queries into one media query definition. Useful for CSS generated by preprocessors using nested media queries.

This was written as a solution to a problem we have using LESS CSS for our mobile first sites.

Getting Started

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-combine-media-queries --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-combine-media-queries');

The "cmq" task

Overview

In your project's Gruntfile, add a section named cmq to the data object passed into grunt.initConfig().

grunt.initConfig({
  cmq: {
    your_target: {
      // Target-specific file lists and/or options go here.
    }
  }
})

Options

log

Type: boolean Default: false

Log processed media queries.

Usage Examples

Default Options

In this example, all the css files in test are processed and moved to the folder tmp

grunt.initConfig({
  cmq: {
    options: {
      log: false
    },
    your_target: {
      files: {
        'tmp': ['test/*.css']
      }
    }
  }
})

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 13-02-14 - v1.0.12
  • 13-02-14 - v1.0.11
  • 13-02-14 - v1.0.10
  • 28-10-13 - v1.0.9 - Support dynamic mapping
  • 28-10-13 - v1.0.8 - Package.json fix
  • 27-10-13 - v1.0.7 - Package.json fix
  • 01-09-13 - v1.0.6 - Comments are now preserved in CSS output.
  • 30-07-13 - v1.0.2 - Ordering now done by min-width, min-height, max-width, max-height and print.
  • 26-07-13 - v1.0.1 - Breaking change task name changed to cmq.
  • 26-07-13 - v1.0.0 - Initial release. Currently only works for CSS written mobile-first and will only order by 'min-width'.