236 lines
4.2 KiB
Markdown
236 lines
4.2 KiB
Markdown
|
# Installing PostCSS HWB Function
|
||
|
|
||
|
[PostCSS HWB Function] runs in all Node environments, with special instructions for:
|
||
|
|
||
|
- [Node](#node)
|
||
|
- [PostCSS CLI](#postcss-cli)
|
||
|
- [PostCSS Load Config](#postcss-load-config)
|
||
|
- [Webpack](#webpack)
|
||
|
- [Next.js](#nextjs)
|
||
|
- [Gulp](#gulp)
|
||
|
- [Grunt](#grunt)
|
||
|
|
||
|
|
||
|
|
||
|
## Node
|
||
|
|
||
|
Add [PostCSS HWB Function] to your project:
|
||
|
|
||
|
```bash
|
||
|
npm install postcss @csstools/postcss-hwb-function --save-dev
|
||
|
```
|
||
|
|
||
|
Use it as a [PostCSS] plugin:
|
||
|
|
||
|
```js
|
||
|
// commonjs
|
||
|
const postcss = require('postcss');
|
||
|
const postcssHWBFunction = require('@csstools/postcss-hwb-function');
|
||
|
|
||
|
postcss([
|
||
|
postcssHWBFunction(/* pluginOptions */)
|
||
|
]).process(YOUR_CSS /*, processOptions */);
|
||
|
```
|
||
|
|
||
|
```js
|
||
|
// esm
|
||
|
import postcss from 'postcss';
|
||
|
import postcssHWBFunction from '@csstools/postcss-hwb-function';
|
||
|
|
||
|
postcss([
|
||
|
postcssHWBFunction(/* pluginOptions */)
|
||
|
]).process(YOUR_CSS /*, processOptions */);
|
||
|
```
|
||
|
|
||
|
## PostCSS CLI
|
||
|
|
||
|
Add [PostCSS CLI] to your project:
|
||
|
|
||
|
```bash
|
||
|
npm install postcss-cli @csstools/postcss-hwb-function --save-dev
|
||
|
```
|
||
|
|
||
|
Use [PostCSS HWB Function] in your `postcss.config.js` configuration file:
|
||
|
|
||
|
```js
|
||
|
const postcssHWBFunction = require('@csstools/postcss-hwb-function');
|
||
|
|
||
|
module.exports = {
|
||
|
plugins: [
|
||
|
postcssHWBFunction(/* pluginOptions */)
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## PostCSS Load Config
|
||
|
|
||
|
If your framework/CLI supports [`postcss-load-config`](https://github.com/postcss/postcss-load-config).
|
||
|
|
||
|
```bash
|
||
|
npm install @csstools/postcss-hwb-function --save-dev
|
||
|
```
|
||
|
|
||
|
`package.json`:
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"postcss": {
|
||
|
"plugins": {
|
||
|
"@csstools/postcss-hwb-function": {}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
`.postcssrc.json`:
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"plugins": {
|
||
|
"@csstools/postcss-hwb-function": {}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
_See the [README of `postcss-load-config`](https://github.com/postcss/postcss-load-config#usage) for more usage options._
|
||
|
|
||
|
## Webpack
|
||
|
|
||
|
_Webpack version 5_
|
||
|
|
||
|
Add [PostCSS Loader] to your project:
|
||
|
|
||
|
```bash
|
||
|
npm install postcss-loader @csstools/postcss-hwb-function --save-dev
|
||
|
```
|
||
|
|
||
|
Use [PostCSS HWB Function] in your Webpack configuration:
|
||
|
|
||
|
```js
|
||
|
module.exports = {
|
||
|
module: {
|
||
|
rules: [
|
||
|
{
|
||
|
test: /\.css$/i,
|
||
|
use: [
|
||
|
"style-loader",
|
||
|
{
|
||
|
loader: "css-loader",
|
||
|
options: { importLoaders: 1 },
|
||
|
},
|
||
|
{
|
||
|
loader: "postcss-loader",
|
||
|
options: {
|
||
|
postcssOptions: {
|
||
|
plugins: [
|
||
|
// Other plugins,
|
||
|
[
|
||
|
"@csstools/postcss-hwb-function",
|
||
|
{
|
||
|
// Options
|
||
|
},
|
||
|
],
|
||
|
],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
};
|
||
|
```
|
||
|
|
||
|
## Next.js
|
||
|
|
||
|
Read the instructions on how to [customize the PostCSS configuration in Next.js](https://nextjs.org/docs/advanced-features/customizing-postcss-config)
|
||
|
|
||
|
```bash
|
||
|
npm install @csstools/postcss-hwb-function --save-dev
|
||
|
```
|
||
|
|
||
|
Use [PostCSS HWB Function] in your `postcss.config.json` file:
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"plugins": [
|
||
|
"@csstools/postcss-hwb-function"
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
```json5
|
||
|
{
|
||
|
"plugins": [
|
||
|
[
|
||
|
"@csstools/postcss-hwb-function",
|
||
|
{
|
||
|
// Optionally add plugin options
|
||
|
}
|
||
|
]
|
||
|
]
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## Gulp
|
||
|
|
||
|
Add [Gulp PostCSS] to your project:
|
||
|
|
||
|
```bash
|
||
|
npm install gulp-postcss @csstools/postcss-hwb-function --save-dev
|
||
|
```
|
||
|
|
||
|
Use [PostCSS HWB Function] in your Gulpfile:
|
||
|
|
||
|
```js
|
||
|
const postcss = require('gulp-postcss');
|
||
|
const postcssHWBFunction = require('@csstools/postcss-hwb-function');
|
||
|
|
||
|
gulp.task('css', function () {
|
||
|
var plugins = [
|
||
|
postcssHWBFunction(/* pluginOptions */)
|
||
|
];
|
||
|
|
||
|
return gulp.src('./src/*.css')
|
||
|
.pipe(postcss(plugins))
|
||
|
.pipe(gulp.dest('.'));
|
||
|
});
|
||
|
```
|
||
|
|
||
|
## Grunt
|
||
|
|
||
|
Add [Grunt PostCSS] to your project:
|
||
|
|
||
|
```bash
|
||
|
npm install grunt-postcss @csstools/postcss-hwb-function --save-dev
|
||
|
```
|
||
|
|
||
|
Use [PostCSS HWB Function] in your Gruntfile:
|
||
|
|
||
|
```js
|
||
|
const postcssHWBFunction = require('@csstools/postcss-hwb-function');
|
||
|
|
||
|
grunt.loadNpmTasks('grunt-postcss');
|
||
|
|
||
|
grunt.initConfig({
|
||
|
postcss: {
|
||
|
options: {
|
||
|
processors: [
|
||
|
postcssHWBFunction(/* pluginOptions */)
|
||
|
]
|
||
|
},
|
||
|
dist: {
|
||
|
src: '*.css'
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
```
|
||
|
|
||
|
[Gulp PostCSS]: https://github.com/postcss/gulp-postcss
|
||
|
[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
|
||
|
[PostCSS]: https://github.com/postcss/postcss
|
||
|
[PostCSS CLI]: https://github.com/postcss/postcss-cli
|
||
|
[PostCSS Loader]: https://github.com/postcss/postcss-loader
|
||
|
[PostCSS HWB Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-hwb-function
|
||
|
[Next.js]: https://nextjs.org
|