OSS探訪GitHubでログイン

Rust製compilerでCSSのparse・transform・minify・browser compatibility処理をまとめる

スコアの見方

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

Stars
7,695
主要言語
Rust
ライセンス
MPL-2.0
リポジトリ最終更新
2026/09/29
ページ内ナビ

概要

Lightning CSSはRustで実装されたCSS parser・transformer・bundler・minifierです。browser targetを基にvendor prefixやsyntax loweringを行い、CSS Modulesやcustom transform APIも提供します。

特徴と向いている用途

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

主な特徴

Rust製parserでCSS property valueまで型付きで解析する

CSS spec grammarに沿ってproperty valueをtyped representationとして扱い、transformごとの重複parseを減らす設計です。

出典:[1]

minify・vendor prefix・syntax loweringをbrowser targetからまとめて行う

不要prefixの削除、必要prefixの追加、modern CSS syntaxのlowering、rule mergeやcolor短縮等を一つのtransform pipelineで実行できます。

出典:[1]

CSS Modules・bundling・custom visitorにも対応する

local scope、composes等のCSS Modules subset、@import bundling、visitor APIによる独自transformを利用できます。

出典:[1]

向いている用途

CSS buildを高速化しつつcompatibility処理とminifyをまとめたいfrontend projectに向く

Parcelだけでなくstandalone JavaScript libraryやCLI、他toolのplugin wrapperとして利用でき、build stepの統合候補になります。

出典:[1]

導入前の確認

Node packageはnative binaryを利用しNode 12以上を要求する

1.33.0のpackage metadataはNode >=12.0.0を宣言し、platform向けnative bindingを利用します。deployment/CI platformで対応binaryが利用できるか確認してください。

出典:[2]

PostCSS plugin ecosystem全体のdrop-in replacementではない

built-in transformは多い一方、PostCSSの任意plugin APIと同じ互換層ではありません。既存pluginへ依存するpipelineは個別に置換可否を確認してください。

出典:[1]

参考にした公式資料

  1. [1]Lightning CSS v1.33.0 README(2026-10-05)
  2. [2]Lightning CSS v1.33.0 package metadata(2026-10-05)
  3. [3]Lightning CSS v1.33.0 release(2026-10-05)
  4. [4]Lightning CSS MPL-2.0 license(2026-10-05)
編集部からの補足

Lightning CSSはminifyだけでなく、browser targetに応じたvendor prefixの追加・削除やmodern CSS syntaxのloweringも行えます。既存PostCSS chainの全pluginを置き換えるものではないため、必要なcustom transformやplugin互換性を確認してください。

3ステップで試す

  1. 1

    Lightning CSS 1.33.0を一時projectへ導入する

    review対象releaseを固定し、既存projectへ影響しない一時directoryで確認します。

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

    transform APIでCSSをminifyするscriptを作る

    Rust native binding経由のtransform APIでCSS-aware minificationを行う最小例を用意します。

    printf "%s\n" "import { transform } from 'lightningcss';" "const input = '.card { color: #ff0000; margin: 0px 0px 0px 0px; }';" "const result = transform({ filename: 'style.css', code: Buffer.from(input), minify: true });" "process.stdout.write(result.code);" > demo.mjs
  3. 3

    変換を実行してoutputが小さくなることを確認する

    color・zero・whitespace等が圧縮され、短いCSSが生成されることを確認します。

    node demo.mjs > output.css && grep -Eq '(red|#f00)' output.css && test "$(wc -c < output.css)" -lt 60
公式READMEで確認

成長

成長の推移 · 直近30日

7,695 Stars

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

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

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

GitHub Topics

  • build-tool
  • compiler
  • css
  • minifier
  • parser
  • rust
Stars
7,695
Forks
309
Watchers
23
Open Issues
422
所有者種別
Organization
主要言語
Rust
ライセンス
MPL-2.0
リポジトリ最終更新
2026/09/29

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

情報の誤りを報告

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

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