Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Transforming styles with JS plugins

License

NotificationsYou must be signed in to change notification settings

postcss/postcss

Repository files navigation

Philosopher’s stone, logo of PostCSS

PostCSS is a tool for transforming styles with JS plugins.These plugins can lint your CSS, support variables and mixins,transpile future CSS syntax, inline images, and more.

PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba,and JetBrains. The Autoprefixer andStylelint PostCSS plugins is one of the most popular CSS tools.


  Made atEvil Martians, product consulting fordeveloper tools.


Sponsorship

PostCSS needs your support. We are accepting donationsat Open Collective.

Sponsored by Tailwind CSS      Sponsored by ThemeIsle

Plugins

PostCSS takes a CSS file and provides an API to analyze and modify its rules(by transforming them into an Abstract Syntax Tree).This API can then be used byplugins to do a lot of useful things,e.g., to find errors automatically, or to insert vendor prefixes.

Currently, PostCSS has more than 200 plugins. You can find all of the pluginsin theplugins list. Below is a list of our favorite plugins —the best demonstrations of what can be built on top of PostCSS.

If you have any new ideas,PostCSS plugin development is really easy.

Solve Global CSS Problem

  • postcss-use allows you to explicitly set PostCSS plugins within CSSand execute them only for the current file.
  • postcss-modules andreact-css-modules automatically isolateselectors within components.
  • postcss-autoreset is an alternative to using a global resetthat is better for isolatable components.
  • postcss-initial addsall: initial support, which resetsall inherited styles.
  • cq-prolyfill adds container query support, allowing styles that respondto the width of the parent.

Use Future CSS, Today

Better CSS Readability

Images and Fonts

Linters

  • stylelint is a modular stylesheet linter.
  • stylefmt is a tool that automatically formats CSSaccordingstylelint rules.
  • doiuse lints CSS for browser support, using data from Can I Use.
  • colorguard helps you maintain a consistent color palette.

Other

  • cssnano is a modular CSS minifier.
  • lost is a feature-richcalc() grid system.
  • rtlcss mirrors styles for right-to-left locales.

Syntaxes

PostCSS can transform styles in any syntax, not just CSS.If there is not yet support for your favorite syntax,you can write a parser and/or stringifier to extend PostCSS.

  • sugarss is a indent-based syntax like Sass or Stylus.
  • postcss-syntax switch syntax automatically by file extensions.
  • postcss-html parsing styles in<style> tags of HTML-like files.
  • postcss-markdown parsing styles in code blocks of Markdown files.
  • postcss-styled-syntax parses styles in template literals CSS-in-JSlike styled-components.
  • postcss-jsx parsing CSS in template / object literals of source files.
  • postcss-styled parsing CSS in template literals of source files.
  • postcss-scss allows you to work with SCSS(but does not compile SCSS to CSS).
  • postcss-sass allows you to work with Sass(but does not compile Sass to CSS).
  • postcss-less allows you to work with Less(but does not compile LESS to CSS).
  • postcss-less-engine allows you to work with Less(and DOES compile LESS to CSS using true Less.js evaluation).
  • postcss-js allows you to write styles in JS or transformReact Inline Styles, Radium or JSS.
  • postcss-safe-parser finds and fixes CSS syntax errors.
  • midas converts a CSS string to highlighted HTML.

Articles

More articles and videos you can find onawesome-postcss list.

Books

Usage

You can start using PostCSS in just two steps:

  1. Find and add PostCSS extensions for your build tool.
  2. Select plugins and add them to your PostCSS process.

CSS-in-JS

The best way to use PostCSS with CSS-in-JS isastroturf.Add its loader to yourwebpack.config.js:

module.exports={module:{rules:[{test:/\.css$/,use:['style-loader','postcss-loader'],},{test:/\.jsx?$/,use:['babel-loader','astroturf/loader'],}]}}

Then createpostcss.config.js:

/**@type {import('postcss-load-config').Config} */constconfig={plugins:[require('autoprefixer'),require('postcss-nested')]}module.exports=config

Parcel

Parcel has built-in PostCSS support. It already uses Autoprefixerand cssnano. If you want to change plugins, createpostcss.config.jsin project’s root:

/**@type {import('postcss-load-config').Config} */constconfig={plugins:[require('autoprefixer'),require('postcss-nested')]}module.exports=config

Parcel will even automatically install these plugins for you.

Please, be aware ofthe several issues in Version 1. Notice,Version 2 may resolve the issues viaissue #2157.

Webpack

Usepostcss-loader inwebpack.config.js:

module.exports={module:{rules:[{test:/\.css$/,exclude:/node_modules/,use:[{loader:'style-loader',},{loader:'css-loader',options:{importLoaders:1,}},{loader:'postcss-loader'}]}]}}

Then createpostcss.config.js:

/**@type {import('postcss-load-config').Config} */constconfig={plugins:[require('autoprefixer'),require('postcss-nested')]}module.exports=config

Gulp

Usegulp-postcss andgulp-sourcemaps.

gulp.task('css',()=>{constpostcss=require('gulp-postcss')constsourcemaps=require('gulp-sourcemaps')returngulp.src('src/**/*.css').pipe(sourcemaps.init()).pipe(postcss([require('autoprefixer'),require('postcss-nested')])).pipe(sourcemaps.write('.')).pipe(gulp.dest('build/'))})

npm Scripts

To use PostCSS from your command-line interface or with npm scriptsthere ispostcss-cli.

postcss --use autoprefixer -o main.css css/*.css

Browser

If you want to compile CSS string in browser (for instance, in live edittools like CodePen), just useBrowserify orwebpack. They will packPostCSS and plugins files into a single file.

To apply PostCSS plugins to React Inline Styles, JSS, Radiumand otherCSS-in-JS, you can usepostcss-js and transforms style objects.

constpostcss=require('postcss-js')constprefixer=postcss.sync([require('autoprefixer')])prefixer({display:'flex'})//=> { display: ['-webkit-box', '-webkit-flex', '-ms-flexbox', 'flex'] }

Runners

JS API

For other environments, you can use the JS API:

constautoprefixer=require('autoprefixer')constpostcss=require('postcss')constpostcssNested=require('postcss-nested')constfs=require('fs')fs.readFile('src/app.css',(err,css)=>{postcss([autoprefixer,postcssNested]).process(css,{from:'src/app.css',to:'dest/app.css'}).then(result=>{fs.writeFile('dest/app.css',result.css,()=>true)if(result.map){fs.writeFile('dest/app.css.map',result.map.toString(),()=>true)}})})

Read thePostCSS API documentation for more details about the JS API.

All PostCSS runners should passPostCSS Runner Guidelines.

Options

Most PostCSS runners accept two parameters:

  • An array of plugins.
  • An object of options.

Common options:

  • syntax: an object providing a syntax parser and a stringifier.
  • parser: a special syntax parser (for example,SCSS).
  • stringifier: a special syntax output generator (for example,Midas).
  • map:source map options.
  • from: the input file name (most runners set it automatically).
  • to: the output file name (most runners set it automatically).

Treat Warnings as Errors

In some situations it might be helpful to fail the build on any warningfrom PostCSS or one of its plugins. This guarantees that no warningsgo unnoticed, and helps to avoid bugs. While there is no option to enabletreating warnings as errors, it can easily be doneby addingpostcss-fail-on-warn plugin in the end of PostCSS plugins:

module.exports={plugins:[require('autoprefixer'),require('postcss-fail-on-warn')]}

Editors & IDE Integration

VS Code

Sublime Text

Vim

WebStorm

To get support for PostCSS in WebStorm and other JetBrains IDEs you need to installthis plugin.

Security Contact

To report a security vulnerability, please use theTidelift security contact.Tidelift will coordinate the fix and disclosure.

For Enterprise

Available as part of the Tidelift Subscription.

The maintainers ofpostcss and thousands of other packages are workingwith Tidelift to deliver commercial support and maintenance for the open sourcedependencies you use to build your applications. Save time, reduce risk,and improve code health, while paying the maintainers of the exact dependenciesyou use.Learn more.


[8]ページ先頭

©2009-2025 Movatter.jp