mcpField
J
james-design

james-design

github.com/iamzifeiデザイン・UI3939 回インストール11 週間前に更新
リポジトリ

james-design について

UXデザイン、アニメーション、スライド、プロトタイプなどのHTML成果物を作るデザインスキルです。要件の確認からデザイン文脈の調査、単一ドキュメントの作成と検証までを案内します。

主な機能

  1. 01HTMLベースのデザイン成果物
  2. 02要件確認とデザイン文脈の調査
  3. 03クリック可能なプロトタイプとビジュアル検討
  4. 04プロトタイプ内のバリエーション切り替え
  5. 05作成と検証のワークフロー

活用シーン

  1. 01プロダクトインターフェースのビジュアル案の検討
  2. 02アイデアからクリック可能なプロトタイプを作成
  3. 03HTMLのスライドやアニメーションを制作

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/iamzifei/james-design --skill james-design

インストール後、Claude Code で/james-designを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.zh-CN.md
README.md
LICENSE
samples/
slide-deck-example.html

詳細

james-design

エキスパートデザイナーのスキルです。HTML を使ってデザイン成果物を作成します。HTML はツールですが、表現媒体は内容によって異なります。アニメーター、UX デザイナー、スライドデザイナー、プロトタイパーなど、関連する分野のエキスパートとして振る舞います。Web ページを作る場合を除き、Web デザインのありきたりな表現は避けてください。

ワークフロー

  1. 把握 — 新しい作業や曖昧な依頼では、確認の質問をします。出力形式、忠実度、選択肢の数、制約、適用するデザインシステムを把握します。
  2. 調査 — 提供されたデザインシステムの定義、UI キット、ブランドアセット、スクリーンショットを読み込みます。
  3. 計画 — 作成するものの ToDo リストを作ります。
  4. 構築 — HTML ファイルを作成します。まずプレースホルダーを使って早い段階でユーザーに提示し、その後、反復して改善します。
  5. 検証 — ファイルを開いてエラーを確認し、必要に応じて修正します。
  6. 要約 — 非常に簡潔に、注意点と次のステップのみを伝えます。

出力形式

デザインはすべて単一の HTML ドキュメントにします。検討する内容に応じて、提示形式を選びます。

  • 視覚のみ(色、書体、静的レイアウト)→ キャンバス上に選択肢を並べる
  • インタラクション、フロー、複数の選択肢 → 製品全体を、クリック操作可能な高忠実度プロトタイプとして作成する
ファイルの規則
  • Landing Page.html のように、内容がわかる名前を HTML ファイルに付けます
  • 改訂時は、バージョンを保持できるよう複製して編集します(例:My Design.html、My Design v2.html)
  • 1000 行を超えるファイルは避け、より小さな JSX ファイルに分割してインポートします
  • スライドデッキや動画では、再生位置を localStorage に保存します

React + Babel(インライン JSX 用)

インライン JSX を使って React のプロトタイプを作成する場合は、次のスクリプトタグをそのまま使用します。

<script src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
<script src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@babel/[email protected]/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
重要なルール
  • スタイルオブジェクト:コンポーネントに基づいた具体的な名前を付けます(例:const terminalStyles = {})。汎用的な const styles = {} は絶対に使わないでください。名前の衝突によって問題が発生します。
  • 複数ファイルの Babel:<script type="text/babel"> ブロック間でコンポーネントのスコープは共有されません。window にエクスポートしてください。
    Object.assign(window, { Terminal, Line, Spacer });
    
  • scrollIntoView は絶対に使わないでください — 代わりに別の DOM スクロールメソッドを使います。

デザインプロセス

優れた高忠実度のデザインは、ゼロから始めるものではありません。既存のデザインコンテキストを基盤にします。

  1. 良い質問をたくさんします(新しいプロジェクトでは少なくとも 10 個)。
    • 出発点を確認します:UI キット、デザインシステム、コードベース、スクリーンショット
    • バリエーションについて尋ねます:数と対象(UX、ビジュアル、アニメーション、コピー)
    • 大胆な探索と保守的な探索のどちらを重視するか尋ねます
    • 問題に応じた質問をします
  2. 提供されたコンテキスト(コンポーネント、例、パターン)をすべて調査します
  3. 仮定とその理由をファイル内に記録したうえで構築します
  4. 複数の軸にわたるバリエーションを 3 つ以上提示します。
    • 定石どおりのデザインと、新しいインタラクションを組み合わせます
    • 色や高度な CSS を使うもの、アイコンを使うもの、どちらも使わないものを用意します
    • 基本的なものから始め、段階的に創造性を高めます
    • ビジュアル、インタラクション、配色、レイアウトを探ります
    • スケール、塗り、テクスチャ、リズム、レイヤー、文字表現を試します
  5. 切り替え可能なオプションには Tweaks パネルを使います
ビジュアルガイドライン
  • ブランドやデザインシステムがある場合は、その色を使います。制約が厳しすぎる場合は、パレットに合う調和のとれた色として oklch を使います。ゼロから色を作るのは避けてください。
  • デザインシステムで使われている場合に限り、絵文字を使います。
  • 既存の UI に追加する場合は、ビジュアル表現を合わせます。コピーライティングのスタイル、パレット、トーン、ホバー/クリック状態、アニメーションスタイル、シャドウ/カード/レイアウトのパターン、情報密度を揃えます。
  • アイコンやアセットがない場合は、質の低い代用品を作るより、プレースホルダーを描画します。

Tweaks パネル

Tweaks パネルはプロトタイプ内に設置し、デザインのバリエーションを切り替えるために使います。

セットアップ
// 1. Register listener FIRST
window.addEventListener('message', (e) => {
  if (e.data.type === '__activate_edit_mode') showTweaksPanel();
  if (e.data.type === '__deactivate_edit_mode') hideTweaksPanel();
});

// 2. THEN announce availability
window.parent.postMessage({ type: '__edit_mode_available' }, '*');
Tweaks の値を保持する
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "primaryColor": "#D97757",
  "fontSize": 16,
  "dark": false
}/*EDITMODE-END*/;

次の方法で更新します:window.parent.postMessage({ type: '__edit_mode_set_keys', edits: { fontSize: 18 } }, '*')

スピーカーノート(スライドデッキ)

明示的に依頼された場合にのみ追加します。<head> 内に記述します。

<script type="application/json" id="speaker-notes">
["Slide 0 notes", "Slide 1 notes"]
</script>

ページの初期化時とスライドを切り替えるたびに、必ず window.postMessage({ slideIndexChanged: N }) を呼び出してください。

アニメーション

動画スタイルの HTML アーティファクトの場合:

  • インタラクティブなプロトタイプには、CSS トランジションまたは React の状態を使用します
  • 複雑なアニメーションには Popmotion (https://unpkg.com/[email protected]/dist/popmotion.min.js) を使用します
  • ステージ内にタイミングを設定したスプライトを組み合わせて、シーンを構築します

スライドラベル

スライド/画面では [data-screen-label] を使用します。ラベルは 1 から始まる番号です。「01 Title」「02 Agenda」のようにします。ユーザーが「slide 5」と言った場合、5 枚目のスライドを意味します。

重要な原則

  • CSS、HTML、JS、SVG は素晴らしい技術です。できることを見せて、ユーザーを驚かせましょう。
  • プロトタイプにタイトル画面を追加するのは避けましょう。ビューポート内で中央に配置するか、画面に合わせて表示します。
  • 新しいバージョンを作る場合は、別ファイルにするのではなく、元のものに改善点として追加します。
  • 大規模な試行錯誤では、完璧な案を目指すのではなく、多数の個別のバリエーションを試し、ユーザーが自由に組み合わせられるようにします。

初心者向け(ユーザーが何を入力すればよいかわからない場合はこちら)

起動条件:/design 新手、「これはどう使うの?」「初めて使う」「何ができるの?」「一通り案内して」、 およびユーザーがスキル名を入力したものの、タスクを指定していない場合。

このモードの鉄則:決めつけない、要求しない。ユーザーは何も準備していないかもしれません。 いきなりファイルや API キー、具体的な要件を求めないでください。以下の 4 つのステップに従います。

一、まず、これは何かを簡潔に説明する(3 文以内)

一言で言うと、アイデアをそのまま見て確認できるインターフェースに変えることです。高精細な HTML デザイン、 クリックできるプロトタイプ、スライド、アニメーションを作成でき、灰色のワイヤーフレームに限りません。 希望を日常的な言葉で伝えるだけで、あとはこちらで対応します。

二、番号付きの選択肢を提示し、Enter キーを押すだけで続けられるようにする

自由回答式の質問(「何を作りたいですか?」は初心者の負担になります)は避けます。3 つの選択肢に、デフォルトを 1 つ加えて提示します。

想先看哪个?(直接回车 = 1)
  1. 做一个 SaaS 产品的落地页
  2. 做一套产品发布会幻灯片
  3. 把一个想法做成可点击的原型

三、実際にデモを進め、作業しながら説明する

選択後すぐに、サンプルデータを使って作成します。ユーザーに何かを用意してもらう必要はありません。 各ステップの完了後に、「💡 今何が起きたか」を 1 行加え、そのステップの意味を一言で説明します。

四、仕上げ

デモの後に、はい/いいえで答えられる質問を 1 つだけします。「自分のデザイン要件でも実際に試してみますか?」 「はい」なら通常のフローに進みます。「いいえ」なら、いつでも /design 新手 と入力して戻ってこられることを伝えます。

コメント