Package Exports
- sparkle-design-cli
- sparkle-design-cli/lib/generate-css.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sparkle-design-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Sparkle Design CLI
デザインシステム CSS の生成と、Sparkle Design のアンチパターン検査を行う CLI ツールです。
インストール
npm install -g sparkle-design-cli使用方法
サブコマンド
# CSS を生成
npx sparkle-design-cli generate
# アンチパターンを検査
npx sparkle-design-cli check src --strict後方互換モード
既存の npx sparkle-design-cli も引き続き動作し、内部的には generate として扱われます。
ただし後方互換のための動作なので、新規利用やドキュメント上の案内では sparkle-design-cli generate を使用してください。
generate: 基本的な使用方法
- プロジェクトのルートディレクトリに
sparkle.config.jsonファイルを作成または配置します:
{
"primary": "blue",
"font-mono": "BIZ UDGothic",
"font-pro": "BIZ UDPGothic",
"radius": "md"
}- CLI ツールを実行します:
npx sparkle-design-cli generate既存プロジェクトでサブコマンドなしの呼び出しを使っている場合も、後方互換として次の実行方法を継続利用できます:
npx sparkle-design-clisrc/app/sparkle-design.cssに CSS ファイルが生成されます。
generate: コマンドオプション
# ヘルプを表示
sparkle-design-cli generate --help
# カスタム設定ファイルを指定
sparkle-design-cli generate --config ./config/design.json
# カスタム出力先を指定
sparkle-design-cli generate --output ./styles/design.css
# 設定ファイルと出力先を両方指定
sparkle-design-cli generate -c ./config/custom.json -o ./dist/styles.cssgenerate オプション一覧
-h, --help: ヘルプメッセージを表示-c, --config <パス>: 設定ファイルのパス(デフォルト:./sparkle.config.json)-o, --output <パス>: 出力ファイルのパス(デフォルト:./src/app/sparkle-design.css)
check: アンチパターン検査
sparkle-design-cli check は、導入先プロジェクトで発生しやすい Sparkle Design のアンチパターンを検出します。
# src を検査
sparkle-design-cli check
# 特定ディレクトリを strict モードで検査
sparkle-design-cli check src/components src/features --strict
# check のヘルプを表示
sparkle-design-cli check --helpcheck オプション一覧
-h, --help: ヘルプメッセージを表示--strict: 違反が見つかった場合に exit code 1 で終了
現在検出するルール
- フォーム入力に Dialog を使わない
- DialogCancel/DialogAction を Button で二重ラップしない
- shadcn/ui 既定 token を Sparkle Design 内へ持ち込まない
導入先での推奨設定
{
"scripts": {
"lint:sparkle": "sparkle-design-cli check src --strict"
}
}AI エージェントや CI からこの lint:sparkle を呼ぶ運用にすると、ガイドラインの注意書きだけに頼らず機械的に検査できます。
設定ファイル (sparkle.config.json)
設定ファイルの作成
設定ファイルは専用のプラグインから自動生成することを推奨します。プラグインを使用すると、デザインシステムに基づいた適切な設定が自動で生成されます。
設定ファイルは以下の場所に配置してください:
- プロジェクトのルートディレクトリ(推奨)
- または
-cオプションで指定した任意の場所
設定オプション
primary: プライマリカラー(blue, red, orange など)font-pro: プロポーショナルフォント(Google Fonts の名前)font-mono: モノスペースフォント(Google Fonts の名前)radius: 角丸設定(sm, md, lg など)source-packages: (オプション)@sourceディレクティブで追加スキャンする npm パッケージの配列
source-packages オプション
@goodpatch/sparkle-design を npm パッケージとして利用するプロジェクトでは、TailwindCSS v4 がパッケージ内のユーティリティクラスを検出できるように @source ディレクティブが必要です。
source-packages を設定すると、CLI が globals.css に @source ディレクティブを自動挿入します。@goodpatch/sparkle-design は常にデフォルトで含まれます。
{
"primary": "blue",
"font-mono": "BIZ UDGothic",
"font-pro": "BIZ UDPGothic",
"radius": "md",
"source-packages": []
}追加の npm パッケージ(拡張リポジトリなど)をスキャン対象にする場合:
{
"source-packages": ["@scope/my-extension-design"]
}生成される globals.css:
@import 'tailwindcss';
/* npm パッケージのコンテンツスキャン(Tailwind がクラスを検出するために必要) */
@source "../node_modules/@goodpatch/sparkle-design/dist";
@source "../node_modules/@scope/my-extension-design/dist";
/* Sparkle Design のカスタム定義(Tailwindの後にインポート) */
@import './sparkle-design.css';注意:
source-packagesを指定しない場合、@sourceディレクティブは生成されません。
出力
- デフォルト出力先:
src/app/sparkle-design.css - カスタム出力先:
-oオプションで指定可能 - 実行場所を基準として相対パスで処理されます
自動フォント管理
v1.2.0 以降の新機能
CLI は自動的にフォント管理を行います:
- フォント検出:
sparkle-design.cssから Google Fonts の@import文を検出 - globals.css への移動: フォントの
@importをglobals.cssの先頭に移動 - sparkle-design.css から削除: 元のファイルからフォント
@importを削除
なぜこの処理が必要なのか?
CSS の仕様では、@import 文は @charset と @layer 以外のすべてのルールより前に記述する必要があります。Tailwind CSS v4 と組み合わせた場合、この順序が正しくないとビルド時に警告が発生します。
この機能により、以下の警告が自動的に解決されます:
⚠️ @import rules must precede all rules aside from @charset and @layer statements動作条件
globals.cssがsparkle-design.cssと同じディレクトリに存在する場合のみ実行されますglobals.cssが存在しない場合は、フォント管理処理はスキップされます
出力例
📦 フォント管理処理を開始します...
📝 3個のフォントimportを検出しました
✅ globals.css にフォントimportを追加しました
✅ sparkle-design.css からフォントimportを削除しました開発
セットアップ
# 依存関係をインストール
npm install
# パッケージをローカルでリンク
npm link開発用コマンド
# テスト実行
npm test
# テスト監視モード
npm run test:watch
# Lint実行
npm run lint
# Lintエラーを自動修正
npm run lint:fix
# コードフォーマット
npm run format
# フォーマットチェック
npm run format:checkCLI実行テスト
# CSS生成
sparkle-design-cli generate
# 既存呼び出しの後方互換モード
sparkle-design-cli
# ヘルプ表示
sparkle-design-cli generate --help
# 検査
sparkle-design-cli check src --strictライセンス
MIT License - 詳細は LICENSE ファイルを参照してください。