install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/design-ui" ~/.claude/skills/majiayu000-claude-skill-registry-design-ui && rm -rf "$T"
manifest:
skills/data/design-ui/SKILL.mdsource content
[デザイン] 2. SSOT → 静的UI骨格(見た目のみ)を生成
コマンド: /design-ui [$TARGET] [$PAGE_KEY]
設計JSON(tokens/components/design_context)を参照し、静的UI骨格のみ生成。 ロジック/状態/データ取得は入れない。ターゲットは doc/input/rdd.md の技術スタックを既定とし、引数で上書きする場合は ADR-lite承認必須。
いつ使う?(位置づけ)
または/design-ssot
で SSOT(tokens/components/context) が揃ったあと/design-mock- 「実装スタック準拠のファイル配置」で 見た目だけの骨格を先に作りたいとき(後で分割・結合する前提)
次に何をする?
- 重複UIを減らして保守しやすくする →
/design-components - variantsを型付きprops/属性に落として再利用UIにする →
/design-assemble
共通前提(参照)
- 口調・出力規約・差分出力の方針は
に従う。CLAUDE.md
を読み、該当するdoc/input/rdd.md
を適用して判断軸を揃える。.claude/skills/*- 例(ロール):
/frontend-implementationaccessibility-engineer - 例(tech):
/react
/astro
/svelte
(※テンプレートでは固定せず、RDDのスタックに合わせて選ぶ)tailwind
- 例(ロール):
- 詳細運用(サンプル運用/依存評価補助/ADR-lite)は
を参照。doc/guide/ai_guidelines.md
見た目の基準(ビューポート)について
- まず
の「ターゲット表示環境(事実)」を参照し、プレビュー/Story等の確認は そのビューポートを基準に行うdoc/input/rdd.md - 未記入の場合は、以下を 推奨デフォルトとして仮置きする:
- desktop: 1440x900
- mobile: 390x844
- tablet: 834x1194
入力
- $TARGET(任意): react | vue | svelte | swiftui | flutter | web-components | plain-html など
- $PAGE_KEY(任意): 画面キー(
のdoc/input/design/design_context.json
)pages[].key- 省略時: 全ページを対象に生成する(複数ページ対応の既定)
出力(差分のみ)
- スタック別の標準配置へ静的UIファイル一式
- 例: React →
,src/components/*
,src/stories/*
(tokens反映)tailwind.config.js - 例: Vue →
,src/components/*.vuesrc/stories/* - 例: SwiftUI →
Sources/UI/*
- 例: React →
- Storybook/プレビュー(対応スタックのみ)
前提(入力ファイル)
doc/input/design/design-tokens.jsondoc/input/design/components.jsondoc/input/design/design_context.json
(文言のSSOT。一字一句固定)doc/input/design/copy.json
(任意。存在する場合は必ず参照して画像を配置する) (通常はdoc/input/design/assets/assets.json
の成果物)/design-ssot
参照(スキーマ)
- constraints/resizing/autoLayout の解釈とレスポンシブ対応表は
を参照するdoc/input/design/ssot_schema.md
レスポンシブ適用規則(Figma→CSS/スタイル)
- Auto Layout →
等 + tokens のflexgap/padding - constraints/resizing マッピング
- horizontal: SCALE →
/w-full
等flex-grow - vertical: TOP_BOTTOM →
(文脈でcol)h-full - resizing: FILL →
/flex-1w-full - resizing: HUG →
/inline-size: max-contentinline-block
- horizontal: SCALE →
- breakpoints →
のdoc/input/design/design-tokens.json
準拠primitives.breakpoints - tokens外の値禁止 / magic number禁止
禁止
- 状態/ロジック/フェッチの追加
- RDD逸脱スタックの導入($TARGET指定時はADR-lite要)
の文言を推測/言い換えして埋めること(不足は不足として止める)copy.json
クリック等でボタン/リンク相当を作ること(セマンティック要素を優先し、必要最小限のWAI-ARIAに限定する)div
文言(copy)の適用ルール
の text ノードはdesign_context.json
を持つ前提で、対応する文言をcopyKey
から参照して埋め込むdoc/input/design/copy.json
が未定義/不足している場合は、推測で生成しない。ユーザーに以下を依頼して停止する:copyKey
を再提示してFIGMA_REF
をやり直す/design-ssot- または
の差分(追加すべきキーと文言)を提供してもらうcopy.json
画像アセット(assets.json)の適用ルール
が存在する場合は、doc/input/design/assets/assets.json
配下にある画像を参照してUI骨格に反映するbaseDir- 例: Next/Astro/React →
public/design-assets/* - 例: SvelteKit →
static/design-assets/*
- 例: Next/Astro/React →
のcomponents.json
やslots
情報と照合し、画像が必要な箇所(ロゴ/アイコン/イラスト/写真)の取りこぼしを防ぐusedBy- 画像の最適化(次世代フォーマット変換/圧縮/レスポンシブ画像生成等)は、この工程では必須にしない(まず再現性を優先)
にassets.json
がある場合は、必ずユーザーに不足(動画/画像等)を報告し、手元提供またはFigma Export設定の依頼をして停止する(推測で代替しない)status: "failed"
ゲート
- 見た目一致(主要variantsのプレビュー/Story)
- tokens外の値0件 / Lint/Type green
Agent Browser利用可能時(自律確認):
# Storybook または開発サーバーを起動後 agent-browser open http://localhost:6006 # Storybook # または agent-browser open http://localhost:3000/{対象パス} # スナップショットで要素構造を確認 agent-browser snapshot -i # 主要breakpointsでの表示確認(viewport変更) # 問題発見時は修正後に再スナップショット
-
デザインとの差異(余白/色/タイポ)を目視確認
-
レスポンシブ崩れがないか確認
-
ここで停止