본문으로 건너뛰기
cccskills
무료GitHub에 공개

setup-sparkle-design

**未導入プロジェクト向け**の sparkle-design 初期導入・セットアップを支援するスキル。

npm インストール、sparkle-design-cli による初回 CSS 生成、sparkle.config.json の 新規作成、AI ガード(Sparkle Design Guard)の導入、コンポーネント選択ガイドまでをカバー。

**導入済みプロジェクトでテーマ(primary / font / radius)を変えたい場合は `change-sparkle-config` スキルを使うこと** — この setup スキルは初期導入専用。

「Sparkle Design を導入」「sparkle-design をインストール」「デザインシステムをセットアップ」 「コンポーネントライブラリを追加」「どのコンポーネントを使えばいい」で発動。

English: "install sparkle-design", "add sparkle design", "set up sparkle design", "which component should I use"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Figma
설치 방법 보기

포함된 파일(6)

  • SKILL.md13.6 KB
  • references/component-catalog.md12.5 KB
  • references/component-selection.md3.4 KB
  • references/config-reference.md1.5 KB
  • references/troubleshooting.md2.1 KB
  • references/update-workflow.md3.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Skill: setup-sparkle-design

プロジェクトに sparkle-design を npm パッケージとして導入し、コンポーネントを利用できる状態にするためのスキル。

社内版との違い: 社内版 @goodpatch/sparkle-design-internal を導入する場合は install-sparkle-design スキルを使ってください。こちらは公開版 sparkle-design 用です。


<!-- ========== AI アシスタント向け指示(ユーザーにそのまま見せない) ========== -->

AI アシスタントへの指示

実行方針

  1. プロジェクト状態を確認する

    • パッケージマネージャを特定(package.json や lockfile から)
    • sparkle.config.json の有無を確認
    • Tailwind エントリ CSS(globals.css / index.css 等)の場所と内容を確認
  2. 不足しているステップのみ案内する

    • 既に完了しているステップは省略してよい
    • エラーが出たときはトラブルシューティングセクションを参照

参照ドキュメント

ドキュメントいつ参照するか
この SKILL.md導入・基本設定(常に利用可能)
references/config-reference.mdprimary/radius の選択肢確認・複数テーマ運用の相談時
references/update-workflow.mdアップデートが求められたとき
references/component-catalog.mdコンポーネント選択の相談時
references/component-selection.mdコンポーネント置き換え・統一の依頼時
references/troubleshooting.md導入エラー発生時
<!-- ========== ここからユーザーに案内するコンテンツ ========== -->

バージョンの選び方

プロジェクトの React使うバージョンインストール
192.x(現行。現在は beta で、latest はまだ 1.x)npm install sparkle-design@beta(CLI も npx --yes sparkle-design-cli@beta)
181.x(非推奨のメンテナンスライン)npm install sparkle-design@1

2.x は ref を通常の props として受け取る React 19 の方式のため、React 18 では ref や Radix の asChild 経由の組み合わせが正しく動かない(npm では peer 依存の衝突で止まる)。詳細は README の「バージョンと React・CLI の対応」を参照。

Quick Start(1 コマンド)

npx --yes sparkle-design-cli setup --assistant claude

2.x(React 19)を beta で使う間は、この SKILL.md に出てくる sparkle-design-cli をすべて sparkle-design-cli@beta に読み替える(setup / generate / check とも)。タグなしは 1.x 向けの安定版 CLI を解決し、2.x と噛み合わないトークンを生成する。

このコマンド 1 つで以下が全て実行される:

  1. パッケージマネージャー検出 -- pnpm / yarn / bun / npm を lockfile から自動判定
  2. パッケージインストール -- sparkle-design を dependencies、tailwindcss + @tailwindcss/postcss を devDependencies に追加(既に入っていればスキップ)
  3. 初期ファイル生成 -- sparkle.config.json / postcss.config.mjs / Tailwind エントリ CSS(Next.js: globals.css、Vite: index.css)が無ければ作成(既存ファイルは保持)
  4. AI ガード設定 -- CLAUDE.md に Sparkle Design Guard ブロックと lint:sparkle スクリプトを追加(既存 AGENTS.md があれば併用書き込み)
  5. Stop hook 自動設定 -- --assistant に応じて .claude/settings.json / .cursor/hooks.json / .codex/hooks.json に lint:sparkle --strict || exit 2 の Stop hook を投入。findings があれば応答終了をブロックする
  6. generate 実行 -- sparkle-design.css と SparkleHead.tsx を生成(Vite プロジェクトは index.html の <head> に font <link> の managed block も自動注入)

--assistant は claude / cursor / codex / generic から選択可能。部分的に実行したい場合は --skip-install / --skip-scaffold / --skip-generate を使う。CI では --strict を付けて silent failure を exit 1 に昇格できる。

実行前後の確認

  1. 実行前に --dry-run を付けて変更予定を確認する(既存プロジェクトでは特に)
  2. 実行後に git status --short で新規作成されたファイル(sparkle.config.json・生成 CSS など)を、git diff で既存ファイル(package.json・CLAUDE.md・.claude/settings.json など)の変更を確認し、ユーザーに要約して伝える
  3. lint:sparkle を 1 回実行し、通ることを確かめる

生成されるファイル

  • sparkle.config.json -- デザインテーマ設定(初期値: blue / BIZ UDPGothic / BIZ UDGothic / md)
  • postcss.config.mjs -- PostCSS 設定(@tailwindcss/postcss プラグインを有効化)
  • src/app/globals.css / src/globals.css / src/index.css -- Tailwind エントリ CSS(プロジェクト構成から自動判定。@import "tailwindcss"; 不在時は canonical な import を自動 prepend)
  • src/app/sparkle-design.css -- デザイントークン(プリミティブ :root + セマンティック :root + @theme inline)
  • src/app/SparkleHead.tsx -- フォント読み込み用 React コンポーネント(Next.js 等のレイアウト用)
  • index.html(Vite のみ) -- <head> 内に <!-- sparkle-design-cli:fonts:start --> ... end --> の managed block で font <link> を upsert
  • CLAUDE.md / AGENTS.md(後者は既存があるときのみ) -- AI ガードブロック(<!-- sparkle-design-cli:setup:start --> で囲まれた部分)
  • .claude/settings.json / .cursor/hooks.json / .codex/hooks.json -- assistant 別の Stop hook(--assistant claude / cursor / codex 時にそれぞれ生成)

SparkleHead の配置

生成された SparkleHead をルートレイアウトの <head> 内に配置する:

import { SparkleHead } from "./SparkleHead";

export default function RootLayout({ children }) {
  return (
    <html>
      <head>
        <SparkleHead />
      </head>
      <body>{children}</body>
    </html>
  );
}

TailwindCSS v4 との互換性: CLI が Tailwind エントリ CSS に @source ディレクティブを自動挿入するため、TailwindCSS v4 でも node_modules 内のクラスが正しく検出されます。追加パッケージがある場合は extend.source-packages 配列に追加してください。

Tailwind エントリ CSS がアプリのエントリで import されていることを確認する(Next.js: src/app/layout.tsx や _app.tsx、Vite: src/main.tsx 等)。

初期導入時にテーマを決める

初期導入の流れの中で sparkle.config.json を編集した場合は、再生成する。導入済みプロジェクトでテーマを変える場合は change-sparkle-config スキルを使う。

npx --yes sparkle-design-cli generate

拡張設定(extend)

フォントのウェイト個別指定やカスタム CSS トークンの読み込みが可能。

{
  "primary": "blue",
  "font-pro": "Montserrat",
  "font-mono": "Roboto Mono",
  "radius": "md",
  "extend": {
    "fonts": {
      "pro": [
        { "family": "Montserrat", "weights": [500, 600, 700] },
        { "family": "Noto Sans JP", "weights": [400, 500, 600, 700] }
      ],
      "mono": [
        { "family": "Roboto Mono", "weights": [400, 700] }
      ]
    },
    "source-packages": [],
    "custom-css": "./src/app/custom-tokens.css"
  }
}
フィールド説明
extend.fonts.pro / extend.fonts.monoフォントファミリーごとにウェイトを指定。font-pro / font-mono より優先
extend.source-packages@source で追加スキャンする npm パッケージ名の配列
extend.custom-cssプロジェクト固有のカスタムトークン CSS ファイルパス

extend にはファイルパスも指定可能(例: "extend": "./sparkle.extend.json")。

コンポーネントを使う

import { Button, Card, Input } from "sparkle-design";

export function MyPage() {
  return (
    <Card>
      <Input placeholder="名前を入力" />
      <Button>送信</Button>
    </Card>
  );
}

どのコンポーネントを使うか迷ったら references/component-catalog.md を参照。


sparkle.config.json リファレンス

primary / radius の選択肢一覧・必須および型検証の挙動・複数テーマ運用したい場合の案内は references/config-reference.md を参照。

設定ファイルは Sparkle Design Theme Settings Figma プラグインからも書き出せる。


部分的な setup 実行

フルセットアップではなく特定のステップだけ実行したい場合:

# 既存プロジェクトに AI ガードだけ追加する(パッケージ導入・ファイル生成・generate をスキップ)
npx --yes sparkle-design-cli setup --assistant claude --skip-install --skip-scaffold --skip-generate

# パッケージは別途インストール済みで、scaffold と generate だけやりたい
npx --yes sparkle-design-cli setup --assistant claude --skip-install

# Cursor の rules ファイルだけ追加
npx --yes sparkle-design-cli setup --assistant cursor --skip-install --skip-scaffold --skip-generate

--dry-run で変更内容のプレビュー、--target <path> で lint 対象ディレクトリの明示指定が可能。

アンチパターン検査

# テキスト出力
npx --yes sparkle-design-cli check src

# 厳格モード(違反があれば exit 1、CI 向け)
npx --yes sparkle-design-cli check src --strict

# JSON 出力(AI 連携向け、manualReviewReminders も含む)
npx --yes sparkle-design-cli check src --format json

検出ルールの一覧は CLI の help で確認する(件数やルール名をここに書き写さない)。lint:sparkle があるプロジェクトでは、個別ルールを毎回列挙するより先にコマンドを回す。


トラブルシューティング

エラー原因対処
CSS が反映されないglobals.css が import されていないルートレイアウトで import "./globals.css" を確認
CSS 再生成でデザインが崩れるsparkle-design.css にカスタムトークンを直接追加していたカスタムトークンは別ファイルに移動し、sparkle.config.json の extend.custom-css で指定する
フォントウェイトが足りないデフォルトでは [400, 700] のみsparkle.config.json の extend.fonts でフォントごとにウェイトを指定する
createContext is not a functionbarrel export で client boundary が崩れる"use client" 付きの re-export file を作る(references/troubleshooting.md 参照)

詳細は references/troubleshooting.md を参照。

<!-- ========== AI アシスタント向け補足(ユーザーにそのまま見せない) ========== -->

AI アシスタント補足

AI ガード(Sparkle Design Guard)の浸透

setup を使った場合は、CLI が CLAUDE.md(既存の AGENTS.md があれば併記)に Guard ブロックを自動で入れるので、手動の追記は不要。setup を使わずに導入した場合に限り、同じ規則で CLAUDE.md(既存の AGENTS.md があれば併記)へ最低限以下を追記する:

## Sparkle Design Guard

- Sparkle Design を触った PR では `lint:sparkle` を実行する
- `lint:sparkle` が未設定なら `npx --yes sparkle-design-cli check src --strict` を script 化する。AI が直接確認する場合は `npx --yes sparkle-design-cli check src --format json` を優先する
- 機械検出できない使い分けは Sparkle Design の docs / JSDoc を参照する

個別ルールの説明を毎回複製するより、まず lint:sparkle を回す。Badge/Tag の意味的な使い分けや CardDescription の typography など、機械検出できないものだけ docs で補う。

Progressive Disclosure

Load references as needed:

  • Always available: This SKILL.md (core workflow)
  • Load on error: references/troubleshooting.md
  • Load for component selection: references/component-catalog.md, references/component-selection.md
  • Load for update: references/update-workflow.md
  • Load for config field details / multi-theme setups: references/config-reference.md

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

WCAG 準拠のアクセシビリティチェックをチェックリスト駆動で実行するスキル。 コンポーネント・ページ・PR に対して Pass/Fail/N/A/Needs review の構造化レポートを 生成し、エビデンスと修正案を提示する。 「アクセシビリティチェック」「a11y チェック」「WCAG をチェック」「a11y レビュー」 「アクセシビリティ監査」「WCAG 準拠確認」「アクセシビリティレポート」への言及、 または PR やコンポーネントのアクセシビリティレビュー依頼で発動する。 English: "check accessibility", "a11y audit", "a11y check", "WCAG review", "accessibility report", "screen reader test", "review for a11y", "review this PR for accessibility", "axe audit"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

goodpatch/sparkle-design172026년 10월 16일 업데이트

Sparkle Design の UI コンポーネントを shadcn registry 経由でプロジェクトに追加するスキル。 パッケージマネージャの自動検出、設定バリデーション、コンポーネントインストール、 Storybook 統合、CSS セットアップ、トラブルシューティングをカバーする。 「Sparkle コンポーネントを追加」「sparkle-design のコンポーネントをインストール」 「@sparkle-design のセットアップ」「コンポーネントをどう追加する」 「registry の設定」「components.json の設定」への言及で発動する。 English: "add a sparkle button", "install sparkle-design card", "add @sparkle-design/input", "set up components from sparkle registry", "how do I install components", "registry setup"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

goodpatch/sparkle-design172026년 10월 16일 업데이트

**導入済みの sparkle-design プロジェクト**で、ユーザーが目指したい「雰囲気」を 自然言語で伝えたら、`sparkle.config.json` の primary / font-pro / font-mono / radius を 書き換えて `sparkle-design-cli generate` まで実行するスキル。選択肢は Theme Settings Figma プラグインが扱える範囲(primary 7 色 / radius 8 段階 / fonts 11 種)に揃えて おり、Figma と CLI の見た目がずれません。**未導入プロジェクトの初期セットアップは `setup-sparkle-design`(internal 環境では `install-sparkle-design`)を使うこと。** 「雰囲気を変えたい」「もっとポップに」「ビジネスライクに」「高級感を出したい」 「primary を変えたい」「角丸をもっと丸く」「フォントを変えたい」「テーマを提案して」 「テナントごとに配色を変えたい」「役割ごとに色を出し分けたい」(後者2つは複数 バリアント要望として範囲外に誘導するために発動) で発動。English: "change the vibe", "make it more playful", "make it more business-like", "adjust the theme", "change primary color".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

goodpatch/sparkle-design172026년 10월 16일 업데이트

sparkle-design(公開 npm パッケージ)の新バージョンをリリースするための手順スキル。 package.json の version bump、CHANGELOG.md の更新、リリース PR 作成、PR マージ後の npm への stage、メンテナーによる 2FA 承認(npm stage approve)、承認後の git tag・ GitHub Release 作成までを一連の手順で実行する。 CHANGELOG 更新漏れと GitHub Release 作成漏れを防ぐためのチェックリストを含む。 「sparkle-design をリリース」「sparkle-design の新バージョンを切る」「vX.Y.Z をリリース」 「sparkle-design の CHANGELOG を更新」で発動。 English: "release sparkle-design", "cut a new sparkle-design version", "publish sparkle-design", "bump sparkle-design version".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

goodpatch/sparkle-design172026년 10월 16일 업데이트

goodpatch의 스킬 모두 보기

이 스킬의 문제 신고