コンポーネント命名に悩む時間、ゼロにした話【Figma MCP × Claude】

はじめに

Webサイトの量産案件で、同じようなレイアウトのページが10枚、20枚、30枚と並んでいるデザインカンプを見たことはないでしょうか。

コーディングそのものよりも、「このパーツ、何て名前にしよう……」と悩む時間がじわじわ積み上がっていくことがあります。

  • section-top でいいのか、hero なのか
  • このカードは carditembox
  • 似たようなコンポーネントが3種類あるけど、どう区別するのか

命名に迷うたびに手が止まります。しかも量産案件では、同じ悩みを何度も繰り返しがちです。

さらに厄介なのが、迷った末に付けた名前をあとから見直しづらいことです。コーディングを進めるほど命名の変更コストは上がるため、最初の判断が重くなりがちです。

そんな地味なストレスを、Figma MCP × Claude の組み合わせでほぼゼロにできたので、その話をします。

Figma MCPとは?

Figma MCPは、ClaudeなどのAIツールとFigmaを直接つなぐ仕組みです。

従来は、デザインを確認するためにスクリーンショットを撮ってAIに貼り付ける必要がありました。しかしFigma MCPを使うと、ClaudeがFigmaのデータを直接読み込めるようになります。

テキスト情報、レイヤー構造、コンポーネントの階層まで取得できるため、「見た目から構造を推測してもらう」というより、構造そのものを渡すイメージです。

セットアップは、ClaudeのMCP設定画面からFigmaを接続するだけです。数分で使い始められます。

プロンプトの設計が肝だった

Figma MCPでFigmaとつながっただけでは、まだ半分です。

実際に使ってみると、どう聞くかによって出力の質がかなり変わることがわかりました。

最初は「コンポーネント名を考えて」とシンプルに投げていましたが、返ってくる命名がプロジェクトごとにバラバラで、自分の命名スタイルと合わないことも多かったです。

試行錯誤の結果、今は 役割・出力形式・命名規則の3点セット をプロンプトに含めるようにしています。

実際に使っているプロンプト

あなたはWebフロントエンドの設計に詳しいエンジニアです。

以下のデザイン情報を確認して、コンポーネントの一覧を作成してください。

【命名規則】
- BEM記法(Block__Element--Modifier)
- 英語、小文字ケバブケース
- 役割が一目でわかる名前にする
- 汎用コンポーネントと固有コンポーネントを区別する

【出力形式】
- コンポーネント名(クラス名)
- そのコンポーネントの役割(1行)
- 子要素がある場合はインデントで表示

[デザインデータ]

ポイントは「役割が一目でわかる名前」という指示です。

これを入れると、box01 のような意味が伝わりにくい命名ではなく、news-cardservice-list__item のように、意図が伝わる名前が返ってきやすくなります。

実際の出力例

上記のプロンプトを使うと、次のような形で返ってきます。

【コンポーネント一覧】

.hero(トップビジュアルエリア)
  └ .hero__title(メインキャッチコピー)
  └ .hero__lead(サブテキスト)
  └ .hero__cta(CTAボタンラッパー)

.news-card(お知らせ一覧の各アイテム)
  └ .news-card__date(投稿日)
  └ .news-card__category(カテゴリラベル)
  └ .news-card__title(記事タイトル)

.section-header(各セクションの見出しブロック)
  └ .section-header__label(英語サブラベル)
  └ .section-header__title(日本語見出し)
  └ .section-header__lead(リード文)

.btn(ボタン共通)
  └ .btn--primary(塗りつぶしタイプ)
  └ .btn--outline(枠線タイプ)
  └ .btn--sm(小サイズModifier)

命名の根拠も一緒に説明してくれるため、「なぜこの名前にしたのか」がわかり、あとからレビューしやすいのも助かっています。

CLAUDE.mdでトークンを節約する

Figma MCPとClaudeを使い込んでいくうちに、もう一つ課題が出てきました。

毎回同じ命名規則をプロンプトに書くのが手間で、トークンも無駄に使ってしまうことです。

量産案件では、同じプロジェクトで何度もClaudeに聞くことになります。「BEM記法で」「英語で」「役割を添えて」など、毎回この説明をプロンプトに含めるのは非効率です。

そこで導入したのが、CLAUDE.md です。

CLAUDE.mdとは

CLAUDE.mdは、プロジェクト固有のルールをClaudeに伝えるためのファイルです。

プロジェクトルートに CLAUDE.md を置いておくと、Claudeがその内容を読み込み、プロジェクトの前提ルールとして認識してくれます。

毎回プロンプトに書いていた命名規則や出力ルールを、このファイルに一度書いておけばOKです。

実際のCLAUDE.md(抜粋)

# このプロジェクトのコーディングルール

## 命名規則
- BEM記法を使用する(Block__Element--Modifier)
- クラス名は英語・小文字ケバブケース
- 汎用コンポーネントはプレフィックスなし(例:.btn, .card)
- ページ固有のセクションは `p-` プレフィックスをつける(例:.p-top-hero)
- JSフック用クラスは `js-` プレフィックス

## コンポーネント出力のフォーマット
デザイン情報からコンポーネントを洗い出す際は以下の形式で出力すること:
- クラス名
- 役割の説明(1行)
- 子要素はインデントで表示

## 使用技術
- HTML / Scss / JavaScript(素のJS)
- Scssはネストを使用、BEMに合わせた構造にする

CLAUDE.md導入後の効果

CLAUDE.mdを置いてからは、プロンプトがかなりシンプルになりました。

Before(CLAUDE.mdなし)

あなたはWebフロントエンドの設計に詳しいエンジニアです。
以下のデザイン情報を確認して、BEM記法・英語・小文字ケバブケースで
コンポーネント一覧を作成してください。汎用は…(以下100文字以上続く)

[デザインデータ]

After(CLAUDE.mdあり)

このデザインのコンポーネントを洗い出してください。

[デザインデータ]

プロンプトが短くなるだけでなく、ルールの解釈ブレがなくなるのが大きいです。

「今回BEM記法の指示を忘れた」という事故もなくなりました。

ページ間の差分整理にも使える

量産案件でもう一つ地味に大変なのが、「このコンポーネント、別ページにも似たものがある。共通クラスを使っていいのか、別物として扱うべきか」という判断です。

これもClaudeに投げています。

TOPページとサービス詳細ページのデザイン情報を確認して、
共通で使えるコンポーネントと、ページ固有のコンポーネントに分類してください。

共通コンポーネントはCLAUDE.mdのルールに従って命名してください。

[TOPページのデザイン]
[サービス詳細ページのデザイン]

複数ページをまたいだ仕様の整合性をAIが整理してくれるため、「あのページだけクラスが違う」「ここだけスタイルが重複している」といった事故が減りました。

やってみてわかったこと

よかったこと

命名の迷いがほぼなくなった

「どう呼ぶか」をAIに提案させることで、自分はその命名が適切かどうかをレビューする側に回れます。

ゼロから考えるより、提案に対してYES/NOを出す方が圧倒的に速いです。

コーディング前に設計が固まる

コンポーネント一覧を事前に作っておくと、コーディングに入る前から全体像が見えた状態でスタートできます。

途中でクラス名を変えたくなる場面も減りました。

CLAUDE.mdで品質が安定する

プロジェクトの命名ルールをファイルに書いておくことで、聞き方が多少ざっくりしていても、一定のクオリティで返ってきます。

新しいページを追加するときも同じルールで命名されるため、統一感を保ちやすくなります。

チームへの共有がしやすい

AIが出したリストをそのままドキュメントに貼れるため、「このプロジェクトでのコンポーネント定義」として共有しやすくなりました。

気をつけること

AIの命名はあくまで提案

既存サイトのリニューアル案件では、過去のクラス名との兼ね合いをAIが把握できないことがあります。

その場合は、CLAUDE.mdに「既存クラス名の一覧」を追記しておくと、ある程度ケアできます。

インタラクション絡みの命名は要調整

ホバー、アクティブ、エラー状態など、デザインカンプだけでは読み取りにくい状態変化の命名は、コーディングしながら調整することが多いです。

Figma側のレイヤー構造が荒れていると精度が下がる

レイヤー名が「Rectangle 24」「Group 5」のような状態だと、Claudeも構造を正確に読み取りにくくなります。

デザイナーと連携してレイヤーを整理できると、さらに精度が上がります。

まとめ

Figma MCP × Claudeを使うことで、量産案件の最初の壁になりがちな「コンポーネントの洗い出しと命名」をほぼ自動化できました。

さらにCLAUDE.mdでルールを一元管理することで、毎回プロンプトに命名規則を書く手間がなくなり、トークンの節約にもつながっています。

コーディング自体は人間がやる仕事ですが、設計の言語化・整理はAIが得意な領域だとあらためて感じました。

「コンポーネント名を考える時間」が「コードを書く時間」に変わるだけで、案件の体感はかなり変わります。

量産案件が多い方は、ぜひ試してみてください。

使用ツール:Claude Code(claude.ai)、Figma MCP

この記事を気に入ったら

この記事を書いた人

だいせんせー

だいせんせー

この人が書いた記事を見る >>