90 lines
2.4 KiB
Markdown
90 lines
2.4 KiB
Markdown
# [postcss][postcss]-zindex [![Build Status](https://travis-ci.org/ben-eb/postcss-zindex.svg?branch=master)][ci] [![NPM version](https://badge.fury.io/js/postcss-zindex.svg)][npm] [![Dependency Status](https://gemnasium.com/ben-eb/postcss-zindex.svg)][deps]
|
|
|
|
> Reduce z-index values with PostCSS.
|
|
|
|
## Install
|
|
|
|
With [npm](https://npmjs.org/package/postcss-zindex) do:
|
|
|
|
```
|
|
npm install postcss-zindex --save
|
|
```
|
|
|
|
## Example
|
|
|
|
Sometimes, you may introduce z-index values into your CSS that are larger than
|
|
necessary, in order to improve your understanding of how each stack relates to
|
|
the others. For example, you might have a modal overlay at `5000` and the dialog
|
|
for it at `5500` - so that modal classes occupy the `5xxx` space.
|
|
|
|
But in production, it is unnecessary to use such large values for z-index where
|
|
smaller values would suffice. This module will reduce all z-index declarations
|
|
whilst respecting your original intent; such that the overlay becomes `1` and
|
|
the dialog becomes `2`. For more examples, see the [tests](test.js).
|
|
|
|
### Input
|
|
|
|
```css
|
|
.modal {
|
|
z-index: 5000
|
|
}
|
|
|
|
.modal-overlay {
|
|
z-index: 5500
|
|
}
|
|
```
|
|
|
|
### Output
|
|
|
|
```css
|
|
.modal {
|
|
z-index: 1
|
|
}
|
|
|
|
.modal-overlay {
|
|
z-index: 2
|
|
}
|
|
```
|
|
|
|
Note that this module does not attempt to normalize relative z-index values,
|
|
such as `-1`; indeed, it will abort immediately when encountering these values
|
|
as it cannot be sure that rebasing mixed positive & negative values will keep
|
|
the stacking context intact. Be careful with using this module alongside
|
|
JavaScript injected CSS; ideally you should have already extracted all of your
|
|
stacking context into CSS.
|
|
|
|
## API
|
|
|
|
### zindex([options])
|
|
|
|
#### options
|
|
|
|
##### startIndex
|
|
|
|
Type: `number`
|
|
Default: `1`
|
|
|
|
Set this to any other positive integer if you want to override z-indices from
|
|
other sources outside your control. For example if a third party widget has a
|
|
maximum z-index of `99`, you can set this to `100` and not have to worry about
|
|
stacking conflicts.
|
|
|
|
## Usage
|
|
|
|
See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for
|
|
examples for your environment.
|
|
|
|
## Contributing
|
|
|
|
Pull requests are welcome. If you add functionality, then please add unit tests
|
|
to cover it.
|
|
|
|
## License
|
|
|
|
MIT © [Ben Briggs](http://beneb.info)
|
|
|
|
[ci]: https://travis-ci.org/ben-eb/postcss-zindex
|
|
[deps]: https://gemnasium.com/ben-eb/postcss-zindex
|
|
[npm]: http://badge.fury.io/js/postcss-zindex
|
|
[postcss]: https://github.com/postcss/postcss
|