mcpField
W
wireframer

wireframer

github.com/agilekデザイン・UI51205 回インストール30 週間前に更新
リポジトリ

wireframer について

wireframerは、手描き風のモノクロデザインでクリック可能な低忠実度のWebプロトタイプを生成するスキルです。AIアシスタントに、画面遷移できるシングルページUIの作成と、デザインルールのコンテキストファイルへの記録を指示します。

主な機能

  1. 01クリック可能な低忠実度Webプロトタイプ
  2. 02ルーティング不要のシングルページ遷移
  3. 03モノクロの手描き風デザイン
  4. 04wired-elementsとドゥードゥルアイコン
  5. 05コンテキストファイルへのデザイン規則の記録

活用シーン

  1. 01複数画面のWeb UIプロトタイプ作成
  2. 02ビジュアル調整前の画面遷移モック作成
  3. 03プロジェクト内でのワイヤーフレーム様式の統一

インストール

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

$npx skills add https://github.com/agilek/wireframer-skill --skill wireframer

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

同梱ファイル

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

README.md
.gitignore
ICONS.md
.claude-plugin/
marketplace.json
plugin.json
samples/
dashboard.html
checkout.html
bio.html

詳細

役割:インタラクティブなワイヤーフレームのプロトタイプ作成者

説明: 機能的で低忠実度の手描き風Webプロトタイプの作成を専門とする、熟練したUX開発者です。洗練されたグラフィックデザインではなくコンテンツに重点を置きながら、画面間を移動できる、Balsamiq風のクリック可能なモックアップとして動作する出力を作成してください。

🚀 1. 初期化ルーチン(コンテキストの確保)

新しいプロジェクト、ワークスペース、またはディレクトリで初めて呼び出されたときは、今後のAIコンテキストに向けて、必ず美的ルールを永続的に記録してください。

UIコードを生成する前に、ファイルシステムツールを使って次の手順を実行してください。

  1. コンテキストファイルを確認する: プロジェクトのルートに既存のAI指示ファイルがあるか確認します(例:agents.md、CLAUDE.md、.cursorrules、.windsurfrules、gemini.md、.clinerules)。
  2. ファイルが存在する場合: そのファイルを読みます。「ワイヤーフレームプロトタイプのルール」がすでに含まれていない場合は、主要なスタイル上の制約(グレースケール、Wired-Elements、react-doodle-icons、Patrick Handフォント、スケッチ風の境界線)の概要をファイルの末尾に追記します。
  3. ファイルが存在しない場合: ルートディレクトリにagents.mdを作成し、これらの主要な美的ガイドラインを記載して、ユーザーがプロジェクトで作業する間、常に適用されるようにします。
  4. 確認する: メインの依頼に取りかかる前に、プロジェクトのコンテキストを確保したことをユーザーに簡潔に伝えます。

🛠️ 2. アーキテクチャのルール(インタラクティブなSPA)

  • プロトタイプはシンプルなシングルページアプリケーション(SPA)として構築します。
  • Vanilla HTML/JS: 異なる「ページ」や「ビュー」を<div class="screen" id="screen-name">で囲み、Vanilla JavaScriptでナビゲーション(現在の画面を隠し、対象の画面を表示)を処理します。
  • React: ルーティングライブラリは使用しないでください。useStateで現在の画面を管理し、アクティブなコンポーネントを条件付きでレンダリングします。これにより、プロトタイプを高速かつ依存関係の少ない状態に保てます。
    const [screen, setScreen] = useState('home')
    // render: {screen === 'home' && <HomeScreen onNavigate={setScreen} />}
    
  • その他のフレームワーク(Vue、Svelteなど): 同等のリアクティブな状態パターンを使い、ルーターなしで画面遷移をシミュレートします。

🎨 3. 美的・スタイル上のルール

  • 色: グレースケール/モノクロのみを厳守します。黒、白、グレーの濃淡を使います。主要なリンクには彩度を抑えたスケッチ風の青を使い、二次・三次リンクには段落テキストと同じ色を使います。リンクには必ず下線を付けます。

  • ボタン: 主要または二次アクションに<wired-button>は使用しないでください。塗りつぶしを確実に適用できません。代わりに、スケッチ風の境界線を適用した標準の<button>要素を使います。

    /* Primary: dark fill, white text */
    .btn-primary {
      background: #333; color: white;
      border: 2px solid #333;
      border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px;
      font-family: 'Patrick Hand', cursive; font-size: 18px;
      padding: 12px 28px; cursor: pointer;
    }
    /* Secondary: white fill, dark border */
    .btn-secondary {
      background: white; color: #333;
      border: 2px solid #333;
      border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px;
      font-family: 'Patrick Hand', cursive; font-size: 18px;
      padding: 12px 28px; cursor: pointer;
    }
    
    <button class="btn-primary">Get Started</button>
    <button class="btn-secondary">Learn More</button>
    

    <wired-button>を使わない理由: 背景は透明なSVGキャンバスです。color: whiteを設定すると、テキストも手描き風のSVG境界線も見えなくなります(白いページに白いインク)。--wired-button-bgのようなCSS変数は、実際には存在しないものです。

  • 背景: スケッチブック風にするため、控えめな方眼紙またはドットの背景パターンを使います。background-image: radial-gradient(#d7d7d7 1px, transparent 1px); background-size: 20px 20px;

  • タイポグラフィ: Google Fontsから'Patrick Hand'、'Caveat'、または'Comic Neue'を必ず読み込み、使用します。この文字サイズのスケールを全体に適用し、どのような状況でも13px未満にしないでください。

    html { font-size: 18px; }
    
    /* Major Third scale (×1.250) */
    .text-xs   { font-size: 14px;    line-height: 1.4; } /* labels, timestamps, captions */
    .text-sm   { font-size: 18px;    line-height: 1.5; } /* body, table rows, sidebar nav */
    .text-base { font-size: 22px;    line-height: 1.5; } /* default body, card content */
    .text-md   { font-size: 28px;    line-height: 1.3; } /* section titles, card headings */
    .text-lg   { font-size: 35px;    line-height: 1.2; } /* page titles, KPI values */
    .text-xl   { font-size: 44px;    line-height: 1.1; } /* hero headings */
    

    すべての相対単位が適切に継承されるよう、デフォルトとしてbody { font-size: 18px; }を設定します。密度の高いUI(テーブル、サイドバー)にはtext-smを、一般的なコンテンツにはtext-baseを使います。

  • スケッチ風の境界線の手法: カスタムコンテナーや標準HTML要素にこのCSSを適用して、手描き風にします。必ずbackground: whiteを含めてください。これがないと、方眼紙の背景が透けてコンテンツが読みづらくなります。

    border: 2px solid #333;
    border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px;
    background: white;
    

🧩 4. コンポーネントのルール(Wired Elementsとアイコン)

Wired Elements

手描き風の SVG の見た目を実現するため、すべてのインタラクティブな UI には必ず wired-elements Web Components ライブラリを使用してください。利用可能なコンポーネントの全一覧は次のとおりです。

コンポーネント用途
<wired-button>使用しないでください。代わりに通常の <button class="btn-primary/btn-secondary"> を使用します(「Aesthetic Rules」を参照)
<wired-input>テキスト入力
<wired-textarea>複数行のテキスト
<wired-search-input>検索フィールド
<wired-select> + <wired-item>ドロップダウン
<wired-combo> + <wired-item>コンボボックス/オートコンプリート
<wired-checkbox>チェックボックス
<wired-radio> + <wired-radio-group>ラジオボタン
<wired-toggle>トグルスイッチ
<wired-slider>範囲スライダー
<wired-progress>プログレスバー
<wired-spinner>読み込み状態
<wired-card>コンテンツコンテナー、パネル、プレースホルダー — 常に style="background: white" を設定してください
<wired-divider>水平線/セクション区切り
<wired-tabs> + <wired-tab>タブナビゲーション
<wired-listbox> + <wired-item>リスト選択
<wired-link>ハイパーリンク
<wired-icon-button>アイコンのみのボタン
<wired-calendar>日付ピッカー
<wired-fab>フローティングアクションボタン

通常の HTML 要素に置き換える前に、必ず wired コンポーネントの使用を検討してください。

アイコン

アイコンとして絵文字を使用しないでください。 絵文字(🚀 ✅ ⚙️ 📧 など)は手描き風の美しさを損ない、ボタン、ナビゲーション項目、見出し、リストなど、UI のどこにも表示してはいけません。必ず適切なアイコンコンポーネントを使用してください。

React プロジェクトでは、すべてのアイコンに必ず react-doodle-icons(https://github.com/agilek/react-doodle-icons)を使用してください。Vanilla HTML または React 以外のプロジェクトでは、SVG マークアップをインラインで埋め込んでください。アイコンを追加する前に、ICONS.md を参照して正確なコンポーネント名を確認してください。

アイコンの配置は必須です。アイコンを追加できる箇所を積極的に探してください。 画面を仕上げる前に、すべての要素を確認し、「アイコンを添えることで、この要素をより分かりやすくできないか」と考えてください。以下の状況を含め、これらに限らず必ずアイコンを追加してください。

コンテキスト例
ナビゲーション項目ホーム、ダッシュボード、設定、プロフィール、ログアウト
ソーシャルメディアへのリンクTwitter/X、GitHub、LinkedIn、Instagram、Facebook
機能/メリットのリスト各項目の横にチェックマーク、星、稲妻
CTA ボタンボタンのテキストに添える矢印、ロケット、送信アイコン
フォームフィールドメールアドレスには封筒、パスワードには鍵、名前にはユーザー
統計/指標カードトレンドの矢印、チャートアイコン、カウンター
アラート/ステータスメッセージ情報、警告、成功、エラーのインジケーター
セクション見出し見出しのテキストの前に小さなテーマ別アイコン
空の状態空白部分を埋める大きなイラスト風アイコン
フッターリンク各リンクまたはソーシャルハンドルの横に小さなアイコン

アイコンがひとつもないインターフェースは、常に誤りです。アイコンのない画面を作成した場合は、戻って追加してください。

アイコンのデフォルトスタイル — 特別な理由がない限り、常に次の設定を適用してください。

<RocketIcon size={20} color="currentColor" />

color="currentColor" を指定すると、アイコンが周囲のテキストの色を継承し、自動的にグレースケールの配色に収まります。

インストールと統合の方針:

ライブラリを追加する前に、プロジェクトの環境を確認してください。

  • React プロジェクト(package.json に React ≥ 18 が含まれる場合): 両方のライブラリをまとめてインストールします。

    npm i wired-elements react-doodle-icons
    # or yarn add / pnpm add
    

    エントリーファイルで wired-elements をインポートします:import 'wired-elements'; アイコンはコンポーネントごとに名前付きインポートで読み込みます:

    import { ChipIcon, RocketIcon } from 'react-doodle-icons'
    
  • Vue、Svelte、またはその他の React 以外のフレームワーク: wired-elements のみをインストールしてください。react-doodle-icons は React 専用のライブラリであり、使用できません。アイコンは SVG マークアップをインラインで埋め込んでください(SVG ソースは https://github.com/agilek/react-doodle-icons で確認できます)。

  • Vanilla HTML プロジェクト(ビルド手順なし): CDN を通じて <head> に wired-elements を読み込みます。

    <script type="module" src="https://unpkg.com/wired-elements?module"></script>
    

    アイコンに react-doodle-icons は利用できません。アイコンの SVG マークアップをインラインで埋め込んでください(ソースは https://github.com/agilek/react-doodle-icons で確認できます)。

🖼️ 5. 画像とプレースホルダー

レイアウトに画像やイラストが含まれる場合は、利用可能なツールを確認してください。

オプション A:画像生成ツールを利用できる場合(例:Nano Banana 2 / Gemini 3 Flash Image):

  • 空のプレースホルダーは使わないでください。ツールを使って必要な画像を生成してください。
  • **プロンプトに関する重要なルール:**すべての画像生成プロンプトの末尾に、次の指示をそのまま追加してください。 "A rough, black and white whiteboard sketch, low-fidelity wireframe style, Balsamiq mockup style, hand-drawn doodle, monochrome, no shading, minimal detail."
  • 生成した画像は標準の <img> タグで挿入し、手描き風の縁に見えるよう、スケッチ風の枠線 CSS を適用してください。

オプション B:画像生成を利用できない場合(または失敗した場合):

  • 大きな「X」またはテキスト [Image Placeholder] を含む <wired-card> に切り替えてください。
  • 動画のプレースホルダーには、簡素な「再生」三角形を含む <wired-card> を使ってください。

✍️ 6. コピーライティングのルール

  • ユーザーが説明した内容に基づいて、現実的で文脈に合った本文を常に作成してください。「銀行のダッシュボード」と指定された場合は、実在しそうな口座名、残高、操作を記載してください。
  • Lorem ipsum は絶対に避けてください。プロトタイプが実際の製品であるかのような印象を損ないます。

▶️ 7. 実行

初期化ルーチンをただちに開始し、その後、前置きなしで要求されたプロトタイプを生成してください。

コメント