# [postcss][postcss]-reduce-idents [![Build Status](https://travis-ci.org/ben-eb/postcss-reduce-idents.svg?branch=master)][ci] [![NPM version](https://badge.fury.io/js/postcss-reduce-idents.svg)][npm] [![Dependency Status](https://gemnasium.com/ben-eb/postcss-reduce-idents.svg)][deps] > Reduce [custom identifiers][idents] with PostCSS. ## Install With [npm](https://npmjs.org/package/postcss-reduce-idents) do: ``` npm install postcss-reduce-idents --save ``` ## Example ### Input This module will rename custom identifiers in your CSS files; it does so by converting each name to a index, which is then encoded into a legal identifier. A legal custom identifier in CSS is case sensitive and must start with a letter, but can contain digits, hyphens and underscores. There are over 3,000 possible two character identifiers, and 51 possible single character identifiers that will be generated. ```css @keyframes whiteToBlack { 0% { color: #fff } to { color: #000 } } .one { animation-name: whiteToBlack } ``` ### Output ```css @keyframes a { 0% { color: #fff } to { color: #000 } } .one { animation-name: a } ``` Note that this module does not handle identifiers that are not linked together. The following example will not be transformed in any way: ```css @keyframes fadeOut { 0% { opacity: 1 } to { opacity: 0 } } .fadeIn { animation-name: fadeIn; } ``` It works for `@keyframes`, `@counter-style`, custom `counter` values and grid area definitions. See the [documentation][idents] for more information, or the [tests](test.js) for more examples. ## Usage See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for examples for your environment. ## API ### reduceIdents([options]) #### options ##### counter Type: `boolean` Default: `true` Pass `false` to disable reducing `content`, `counter-reset` and `counter-increment` declarations. ##### keyframes Type: `boolean` Default: `true` Pass `false` to disable reducing `keyframes` rules and `animation` declarations. ##### counterStyle Type: `boolean` Default: `true` Pass `false` to disable reducing `counter-style` rules and `list-style` and `system` declarations. ##### gridTemplate Type: `boolean` Default: `true` Pass `false` to disable reducing `grid-template`, `grid-area` and `grid-template-areas` declarations. ##### encoder Type: `function` Default: [`lib/encode.js`](https://github.com/ben-eb/postcss-reduce-idents/blob/master/src/lib/encode.js) Pass a custom function to encode the identifier with (e.g.: as a way of prefixing them automatically). It receives two parameters: - A `String` with the node value. - A `Number` identifying the index of the occurrence. ## Contributors Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)): | [
Ben Briggs](http://beneb.info)
[💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=ben-eb) [📖](https://github.com/ben-eb/postcss-reduce-idents/commits?author=ben-eb) 👀 [⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=ben-eb) | [
Bogdan Chadkin](https://github.com/TrySound)
[⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=TrySound) [💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=TrySound) | [
Guillermo Rauch](http://twitter.com/rauchg)
[💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=rauchg) [📖](https://github.com/ben-eb/postcss-reduce-idents/commits?author=rauchg) [⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=rauchg) | [
Sylvain Pollet-Villard](https://github.com/sylvainpolletvillard)
[💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=sylvainpolletvillard) [📖](https://github.com/ben-eb/postcss-reduce-idents/commits?author=sylvainpolletvillard) [⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=sylvainpolletvillard) | | :---: | :---: | :---: | :---: | This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome! ## License MIT © [Ben Briggs](http://beneb.info) [ci]: https://travis-ci.org/ben-eb/postcss-reduce-idents [deps]: https://gemnasium.com/ben-eb/postcss-reduce-idents [idents]: https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident [npm]: http://badge.fury.io/js/postcss-reduce-idents [postcss]: https://github.com/postcss/postcss