OSS探訪GitHubでログイン

CSSをASTへ変換し、JavaScript pluginでbuild時のstyle処理を組み立てる

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
28,974
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

PostCSSはCSSをAbstract Syntax Treeへparseし、JavaScript pluginからrule・declaration・at-rule等を解析・変更できる処理基盤です。vendor prefix、future syntax、lint、minifyなどをpluginとして組み合わせられます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

CSSをASTへparseしてpluginからruleやdeclarationを変換する

PostCSSはstylesheetをASTへ変換し、plugin APIからselector、declaration、at-rule等を走査・変更してCSSとして再出力できます。

出典:[1]

200以上のplugin ecosystemからbuild処理を組み合わせる

Autoprefixer、Stylelint、cssnano、postcss-preset-env、postcss-nested等を用途ごとに組み合わせ、prefix付与・lint・minify・syntax変換を一つのpipelineへ載せられます。

出典:[1]

CSS以外のsyntaxへparser/stringifierを差し替えられる

SCSS、Less、SugarSS、CSS-in-JS等を扱うsyntax adapterがあり、default CSS parser以外へ拡張できます。

出典:[1]

向いている用途

frontend build pipelineでCSS処理をplugin単位に選びたい場合に向く

特定frameworkへ固定せず、必要な変換だけを追加したいVite・Webpack・CLI等のasset pipelineで基盤として使えます。

出典:[1]

導入前の確認

PostCSS単体ではprefix・minify・future syntax変換を行わない

実際の変換内容はpluginで決まります。PostCSSをinstallしただけではAutoprefixerやcssnano相当の処理は有効になりません。

出典:[1]

source mapを扱う処理ではfromを明示する

8.5.23ではsecurity理由からopts.fromなしでsource mapをloadしない変更が入っています。programmatic APIではinput sourceの識別情報を適切に渡してください。

出典:[3]

参考にした公式資料

  1. [1]PostCSS 8.5.29 README(2026-10-05)
  2. [2]PostCSS 8.5.29 package metadata(2026-10-05)
  3. [3]PostCSS 8.5.29 changelog(2026-10-05)
  4. [4]PostCSS 8.5.29 release(2026-10-05)
  5. [5]PostCSS MIT license(2026-10-05)
編集部からの補足

PostCSS自体は完成済みCSS frameworkではなく、CSSをASTへ変換してpluginへ渡す処理基盤です。Autoprefixer・Stylelint・cssnanoなど、導入目的に必要なpluginを明示してbuild pipelineを構成します。

3ステップで試す

  1. 1

    PostCSS 8.5.29を一時projectへ導入する

    review対象releaseを固定し、既存projectから分離した一時directoryでplugin APIを確認します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/postcss.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact postcss@8.5.29
  2. 2

    最小custom pluginと入力CSSを作る

    Declaration visitorでAST上のcolor値を変更する最小pluginを作り、from/toも明示します。

    printf "%s\n" '.card { color: rebeccapurple; }' > input.css && printf "%s\n" "import fs from 'node:fs';" "import postcss from 'postcss';" "const plugin = { postcssPlugin: 'demo-color', Declaration(decl) { if (decl.prop === 'color' && decl.value === 'rebeccapurple') decl.value = '#663399'; } };" "const css = fs.readFileSync('input.css', 'utf8');" "const result = await postcss([plugin]).process(css, { from: 'input.css', to: 'output.css' });" "fs.writeFileSync('output.css', result.css);" > demo.mjs
  3. 3

    pluginを実行して変換結果を確認する

    PostCSSがCSSをparseし、custom pluginによるAST変更をCSSへserializeできることを確認します。

    node demo.mjs && grep -q "#663399" output.css
公式READMEで確認

成長

成長の推移 · 直近30日

28,974 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • ast
  • css
  • framework
  • parser
  • postcss
Stars
28,974
Forks
1,648
Watchers
498
Open Issues
26
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?