An open API service indexing awesome lists of open source software.

https://github.com/postcss/postcss-use

Enable PostCSS plugins directly in your stylesheet.
https://github.com/postcss/postcss-use

Last synced: 9 months ago
JSON representation

Enable PostCSS plugins directly in your stylesheet.

Awesome Lists containing this project

README

          

# [postcss][postcss]-use [![Build Status](https://travis-ci.org/postcss/postcss-use.svg?branch=master)][ci]

> Enable PostCSS plugins directly in your stylesheet.

```css
@use postcss-preset-env(stage: 0, browsers: "last 2 versions");

h1 {
& a {
color: red
}
}
```

## Install

With [npm](https://npmjs.org/package/postcss-use) do:

```
npm install postcss-use --save
```

## Example

Options may be passed into plugins as a JSON object, an array, a hash map, or
as declarations. Hash maps will follow the format of
`option: value, option2: value2`.

### Input

#### Standard syntax

With [postcss-discard-comments]:

```css
@use postcss-discard-comments(removeAll: true);
/*! test */
h1 {
color: red
}
```

#### Alternative syntax

You may also use configuration blocks that are more *CSS-like*. Note that root
array options cannot be parsed by this method.

```css
@use postcss-discard-comments {
removeAll: true
}
```

### Output

```css
h1 {
color: red
}
```

## API

### use(options)

#### options

##### modules

Type: `array|string`
*Required option*.

The `modules` option specifies a list of allowable PostCSS Plugins, expressed
as a `String`, `Array`, or `RegExp`. By default, all plugins are disabled in
order to prevent malicious usage in browser environments.

```js
use({
// allow plugins starting with autoprefixer, postcss, precss, and cssnano
modules: [
/^autoprefixer/,
/^postcss/,
/^precss/,
/^cssnano/
]
})
```

```js
use({
// allow autoprefixer, postcss-preset-env, and postcss-flexbugs-fixes
modules: [ 'autoprefixer', 'postcss-preset-env', 'postcss-flexbugs-fixes' ]
})
```

Setting the option to `"*"` will allow PostCSS Use to require any plugins. This
is not recommended for environments where you may be accepting arbitrary user
input; use at your own risk.

##### resolveFromFile

Type: `boolean` (default: `false`)

The `resolveFromFile` option specifies whether plugins should be resolved
relative to the file that referenced them. This may be used to enable the usage
of different versions of the same plugin. By default, it is disabled.

```js
use({
resolveFromFile: true
})
```

##### options

Type: `object` (default: `{}`)

The `options` option specifies individual options for specific plugins by
plugin name.

```js
use({
options: {
'postcss-preset-env': {
stage: 0,
browsers: 'last two versions'
}
}
})
```

## Usage

See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for
examples for your environment.

## 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/postcss/postcss-use/commits?author=ben-eb) [πŸ“–](https://github.com/postcss/postcss-use/commits?author=ben-eb) πŸ‘€ [⚠️](https://github.com/postcss/postcss-use/commits?author=ben-eb) | [
Jonathan Neal](//jonathantneal.com)
[πŸ’»](https://github.com/postcss/postcss-use/commits?author=jonathantneal) [⚠️](https://github.com/postcss/postcss-use/commits?author=jonathantneal) | [
一丝](www.iyunlu.com/view)
[πŸ’»](https://github.com/postcss/postcss-use/commits?author=yisibl) | [
Maxime Thirouin](https://moox.io/)
[πŸ“–](https://github.com/postcss/postcss-use/commits?author=MoOx) | [
Bogdan Chadkin](https://github.com/TrySound)
[πŸ“–](https://github.com/postcss/postcss-use/commits?author=TrySound) πŸ‘€ | [
Espen Hovlandsdal](https://espen.codes/)
[πŸ’»](https://github.com/postcss/postcss-use/commits?author=rexxars) [⚠️](https://github.com/postcss/postcss-use/commits?author=rexxars) | [
Andrey Sitnik](http://sitnik.ru)
πŸ‘€ |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |

This project follows the [all-contributors] specification. Contributions of
any kind welcome!

## License

MIT Β© [Ben Briggs](http://beneb.info)

[all-contributors]: https://github.com/kentcdodds/all-contributors
[ci]: https://travis-ci.org/postcss/postcss-use
[postcss]: https://github.com/postcss/postcss
[postcss-discard-comments]: https://github.com/ben-eb/postcss-discard-comments