원클릭으로
figma-to-tailwind
Figma ファイル URL からすべての変数を読み取り、Tailwind CSS v4 の @theme トークンとして src/index.css に書き出す。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Figma ファイル URL からすべての変数を読み取り、Tailwind CSS v4 の @theme トークンとして src/index.css に書き出す。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Google の design.md 仕様に沿って DESIGN.md をプロジェクトルートに生成する。コードベース探索・Figma URL・既存 DESIGN.md URL の3つのソースモードに対応し、design.md リンターで検証する。
UIモックアップを作成するスキル。ユーザーが「モックアップを作りたい」「新しいページを作って」「UIデザインを実装したい」「サイトの画面を作りたい」「LP/トップページを作って」「デザインを実装して」などと言った場合は必ずこのスキルを使う。サイト種別・デザインテイスト・ページ種別の3つをヒアリングしてから、このプロジェクトのCLAUDE.md仕様に沿って実装する。Figma URLがない状態でUIを作る場合に特に有効。
Tailwind CSS コードのレビュー・最適化・移行、および HTML アクセシビリティチェックを行うスキル。 以下の場合に必ず使用する: · Tailwind クラスを「レビューして」「きれいにして」「確認して」「見て」と依頼された場合 · `space-y-*`、`space-x-*`、`flex-shrink`、`shadow-sm`、`bg-opacity-*` などの v3 クラスが存在する場合 · `text-[#1e40af]` や `w-[320px]` のようなハードコードされた任意値が使われている場合 · 同一要素に `flex` と `block` など、競合・重複クラスが見つかった場合 · `cn()` / `clsx` の使用可否や `*:` バリアントへの統合を相談された場合 · v3 から v4 への移行・書き直しを依頼された場合 · `aria-label`、`ul/li`、`button type`、`label` など HTML アクセシビリティ構造の確認を依頼された場合 · Tailwind が使われている `.html`、`.tsx`、`.jsx`、`.vue`、`.astro` ファイルのレビューを依頼された場合 フレームワーク非依存(HTML / React / Vue / Svelte / Astro など)。 「クラスがなんかおかしい」「v4 にアップグレードしたらデザインが変わった」「CSS モジュールから移行したい」といった曖昧な依頼にも使用する。
src/index.css の Tailwind CSS v4 @theme トークンを読み取り、型別に適切なコレクションへ整理して Figma ファイルに変数として書き出す。
ベースフォントサイズとスケール比率名(typescale.com 準拠)を選択して、 Tailwind CSS v4 プロジェクトに調和のとれたタイプスケールを適用する。 `@theme` に `--text-xs` ~ `--text-9xl` を設定し(Tailwind の全テキストサイズクラスに対応)、 `@layer base` で h1〜h6 のフォントサイズをマッピングする。 以下の場合に使用する: "タイプスケール変えたいんだけど"、 "フォントサイズを整えたい"、 "見出しのサイズをちゃんとしたい"、 "タイポグラフィのスケールを設定して"、 "apply a type scale"、"set up typography scale"、"change font sizes"
| name | figma-to-tailwind |
| description | Figma ファイル URL からすべての変数を読み取り、Tailwind CSS v4 の @theme トークンとして src/index.css に書き出す。 |
| argument-hint | <figma-url> |
| allowed-tools | mcp__plugin_figma_figma__use_figma, Read, Edit, Bash |
$ARGUMENTS で指定された Figma ファイル URL からすべての変数を取得し、Tailwind CSS v4 の @theme カスタムプロパティとして src/index.css に書き出す。
出力言語: このスキルを呼び出したユーザーと同じ言語で応答する。
$ARGUMENTS から fileKey を抽出する:
figma.com/design/:fileKey/... → :fileKey を取得?node-id= クエリパラメータは無視してよい(変数はファイル全体に属するため)use_figma と Plugin API を使用して、未使用のものを含むファイル内のすべての変数を取得する:
const collections = await figma.variables.getLocalVariableCollectionsAsync();
const variables = await figma.variables.getLocalVariablesAsync();
const result = collections.map(col => ({
id: col.id,
name: col.name,
modes: col.modes,
defaultModeId: col.defaultModeId,
variables: col.variableIds.map(varId => {
const v = variables.find(x => x.id === varId);
if (!v) return null;
return {
id: v.id,
name: v.name,
type: v.resolvedType,
valuesByMode: v.valuesByMode
};
}).filter(Boolean)
}));
return result;
注意:
get_variable_defsはノードに適用済みの変数しか返さない。未使用の変数を含むすべての変数を取得するには、必ずuse_figma+ Plugin API を使用すること。
Figma 変数を Tailwind v4 CSS カスタムプロパティに変換する。
Figma の変数名(スラッシュ区切り)を kebab-case に変換する:
colors/brand/500 → brand-500)font/size/xl → text-xl)0-5、1-5)、CSS ではアンダースコアに変換する(0_5、1_5)| Figma 型 | コレクション/変数名のヒント | CSS カスタムプロパティプレフィックス | 例 |
|---|---|---|---|
COLOR | colors/* | --color- | --color-brand-500 |
FLOAT | size/* | --spacing- | --spacing-4 |
FLOAT | radius/* | --radius- | --radius-md |
FLOAT | border/* | --border- | --border-2 |
FLOAT | font/size/* | --text- | --text-base |
FLOAT | font/weight/* | --font-weight- | --font-weight-bold |
STRING | font/family/* | --font- | --font-base |
STRING | その他 | -- | --easing-default |
{ r, g, b, a } として返されるr, g, b を 0〜255 の整数に変換し、2桁の16進数でフォーマット: #rrggbbrgba(r, g, b, a) 形式を使用(r, g, b は 0〜255 の整数){ r: 0.533, g: 0.414, b: 0.347, a: 1 } → Math.round(0.533*255) = 136 = 0x88 → #886a590 → 0; px 型変数名で値 1 → 1pxdefaultModeId モードの値を使用するsrc/index.css を読み込み、@theme ブロックが既に存在するか確認する。
ケース A: @theme ブロックが既に存在する場合
既存の @theme ブロック内に変数を追記する。キーが既に存在する場合は上書き(更新)する。
ケース B: @theme ブロックが存在しない場合
@import "tailwindcss"; の直後に新しい @theme ブロックを挿入する:
@import "tailwindcss";
@theme {
/* Colors */
--color-brand-500: #886a59;
}
コレクション/グループごとにコメントでセクションを区切る:
@theme {
/* Brand */
--color-brand-50: #fff2ea;
--color-brand-500: #886a59;
/* Spacing (primitives/size) */
--spacing-0: 0;
--spacing-px: 1px;
--spacing-4: 1rem;
/* Border Radius (primitives/radius) */
--radius-none: 0;
--radius-md: 0.375rem;
--radius-full: 9999px;
/* Font Size (primitives/font/size) */
--text-base: 0.9375rem;
--text-xl: 1.25rem;
/* Font Family (primitives/font/family) */
--font-base: "Noto Sans JP", sans-serif;
/* Font Weight (primitives/font/weight) */
--font-weight-bold: 700;
}
以下を報告する:
src/index.css のパスsrc/index.css が見つからない場合: 現在のディレクトリにファイルが存在しないことを報告し、出力パスをユーザーに確認するuse_figma がエラーを返した場合: リトライ前にエラーメッセージを確認する(操作はアトミックのため、部分的な書き込みは発生しない)