Community画像github.com

YuukiFST/stageshow

実際の製品のように見えるフェイクUIを、静止画またはカーソル付きアニメーションデモとして構築します。ブラウザやアプリウィンドウ、ダッシュボード、電話、通知、ターミナル、ベントーグリッド、カーソルウォークスルーなど、マーケティングページや機能カード、ドキュメントのヒーロー画像に必要な形でフレーム、マスク、クロップを行います。ReactとプレーンCSSで動作します。

stageshow とは?

Stageshowは、あたかも実際の製品であるかのような説得力のあるフェイクUIを、静止画または短いアニメーションとして作成するためのAIエージェントスキルです。このスキルは、単なるモックアップ作成ではなく、マーケティングページのヒーロー画像や機能カード、製品デモなどに最適な、洗練された「プロダクトショット」を生成することに重点を置いています。ユーザーは「フェイクUI」と明示的に言わなくても、アプリのプロモーション画像やデモウォークスルーアニメーション、カーソルによる操作デモが必要な場合にこのスキルを活用できます。 Stageshowは、ReactとプレーンCSSで構築されており、細部にまでこだわったUI表現が可能です。主要な機能として、ウィンドウ、ダッシュボード、スマートフォン、通知、ターミナル、ベントーグリッドなど、多様なUIコンポーネントをサポートします。また、カーソルの動きを含むアニメーションデモ、フレームやマスクを使ったトリミング、製品のスタイルに合わせたテーマ設定など、プロダクトデザイナーが実際のローンチページを制作するのと同様の高い品質基準でUIを構築します。 このスキルは、プロンプトに対して「やりすぎ」「ワイヤーフレーム的」「箱詰め」「平面的」「退屈」といったよくある失敗を回避しながら、視認性が高く魅力的なUIを生成するための詳細なガイドラインを提供します。具体的なワークフローとして、プランの策定、ルック&フィールの定義、ストーリーボードの作成、既存のゴールド例からの出発、画面の構築、動きの振り付け、リハーサルと検証の7つのステップを推奨しています。また、品質を維持するためのチェックリストや、多様なユースケースに対応した50以上の参考例(ゴールド例)が用意されており、開発者やデザイナーが迅速に高品質な成果物を生み出せるよう設計されています。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/YuukiFST/agent-dotfiles/tree/HEAD/skills/stageshow

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

stageshow は何をしますか?

ミニチュア製品UI:信頼性のあるインターフェースを、その空間に収め、1つの静止画、または1つの動作が起こる短いアニメーションとして表現します。見る人は画面を認識し、その動作を理解します。

たった一つのアイデア

それは、実際の製品として読まれ、視聴者が必要とするものだけに簡略化され、意図を持ってフレームされ、すべての動きに理由があることです。

失敗する5つのパターン:

  • やりすぎ。 すべての行に実際のテキスト、あらゆる場所に数字、すべてが詰め込まれている。詳細が多ければ多いほど、生成されたように見えます。
  • ワイヤーフレーム。 灰色の2つの塊とボタン。小さすぎる、または認識可能だった要素が削ぎ落とされている。
  • 箱詰め。 ウィンドウ全体が均等な余白でカードに縮められている:貼り付けられたスクリーンショットであり、プロダクトショットではありません。
  • 平面的。 すべてのオブジェクトが同じ枠線のカード内で同じ重みを持つ。視線の着地点がありません。
  • 退屈。 灰色のウィンドウにカーソル、要件が何であれ。要件のルック&フィール(青写真、色上のガラス、Dynamic Island、マスコット)が肝心です。それを取り入れてルールに従って構築しましょう。examples/hero-demo が、タイプされるポップアップとターミナルサテライト(サテライトとは、レシート、電話、詳細カードなど、ヒーローの端にまたがる、より小さな2つ目のオブジェクトです)で行っているように。

修正方法:静かなグレーで構成された、完全で構造化された画面。ストーリーの対象となる部分にのみ実際の単語を使用し、残りはプレースホルダーの行。余白を持たせ、視線をストーリーに集中させるクロップ。単語を簡略化し、コンテキストは残す。空の隅、リストの下の空白、ペインを埋めるために広げられた行、プレート(その背後にある背景や色付きフィールド)に浮かぶウィンドウ:未完成であり、落ち着いていない。

これらは、ブラウザの自動化ではなく、作成者が手掛けるイラストです:a.click() はカーソルが押す動作を描き、a.set() はシーンを変更します。

どこまで作り込むか

プロダクトデザイナーが、評価されるローンチページを構築するのと同じ方法で構築します。examples/ のゴールド例が基準です。あなたの作品が最も近いゴールド例と比べて、より空っぽで、平坦で、小さければ、それが最初の修正点です。次に、あなたが知る中で最も厳しいデザイナー、つまり間違ったことをスクリーンショットして「これは何だ?」と送り返してくる人のようにフレームを見てください:アバターから外れた点、単独の行にある単位、Dynamic Islandの下のグラバー、カードに触れるコピー。そのスクリーンショットが想像できれば、次の修正点が見つかっています。

ワークフロー

品質のほとんどは、コードを書く前に決まります。最初に計画を書きましょう。どこに配置するか、焦点となるオブジェクト、アクション、結果、何を省略できるか。

  1. 媒体と場所。 静止画またはアニメーション(ループ、一度ビューに入ったら、またはホバー)。ページ、その背景、その幅。表示されるサイズでデザインします。コピーと並ぶヒーロー(hero-demo)の場合は約720×340、全幅ヒーロー(linear)の場合は900~1100幅、カードの場合は400×300、1:1で表示。デモの場合は約320幅を下回らないこと。ただし、ベントータイルやサテライトカードはこれより小さくてもかまいません。電話のカラムに収まるすべてのデモは、そのカラムの幅(358)に合わせた compact デザインを提供します。これは単なる縮小ではなく再設計です(references/framing.md、Small formats and the page)。タイルのグリッドは1つのセットとして計画します:references/bento.md を参照。
  2. ルック。 製品のコードやサイトを手元に置き、そのトークンをキットのトークン(references/looks.md)にマッピングします。開発者が独自のコンポーネントを要求した場合は、キットの小さな部品の代わりにステージ内でそれらを使用します。それ以外の場合は、テーマ(ライト、ダーク、青写真、ガラス)、パレット(アクセント、モノ)、および忠実度を選択します。minimal はすべてバー、standard は意味を持つ場所に単語、それ以外はバー、realistic はすべて実際のコンテンツ。デフォルトはライト、アクセント、standard。ヒーロースケール、名前付きの実際の製品、またはリストやページを主題とする静止画の場合はrealisticにします。フィラーは Text filler で一度書き、忠実度で決定します。製品独自のアイコン、実際のクローム、それを認識可能にするコンテンツ。スタイル(かわいい、紙、ポスターカラー)を持つ要件は、そのスタイルを完全に採用し、それでもこれらのルールに従って構築します。
  3. ストーリー。 その形状(references/motion.md、Story):使い心地、フロー、またはシステムが行うこと。3~5ビートと結果、10~16秒。説明できないカーソルの動きは禁止。データが視界内で理由なく巻き戻されることはありません。より豊かなストーリーとより落ち着いたフレームの間では、フレームを選びます。
  4. 例から始める。 最も近いゴールド例(下のGoldの表)を見つけ、それを録画します(node scripts/film.mjs "<preview>/?capture=<gold>" --select '#example' --still --out gold.png;npm run dev でプレビューが起動します)。そのフォルダをプロジェクトにコピーし、開始点とします。一目で書き直さないでください。最も迅速なループ:ここで examples/<yours>/ にコピーします。プレビューがそれを拾い、?capture=<yours> で録画します。その後、テストに合格したらホストに移動し、キットのインポートパスを修正します。構造を維持する:ステージサイズ、クロップとブリード、行とタイプのサイズ、スペーシング、スクリプトのビート、キットパーツ。次に、references/craft.md をすべて読みます。短く、ゴールド例では示せない静止画ルール、あなたのゴールド例にたまたま含まれていないケースが書かれています。その後、そのルックとコンテンツを要件の製品のものに置き換えます:ステップ2からのトークン、製品独自のアイコン、クローム、単語。名前だけを変更したコピーは完成ではありません。要件の製品として読まれるべきであり、ゴールド例の製品としてではありません。どのゴールド例もあなたのストーリーを語っていない場合、2つの部分で選択します:最初にレイアウト(references/framing.md の表から選択。各レイアウトはその例を命名しています。)、ストーリーが異なっていてもその例をコピーします。次に、ストーリーが最も近い例からあなたのビートのための動きを借用し、どちらにもないものを同じスタイルで構築します。次に、フレーミング:ストーリーが展開されるパネルにクロップし、最終的な表示クロップで判断します(references/framing.md にルールとレイアウト表があります)。簡潔な形式:1つのガター、完全なガター、またはそれを超える。フィラーのみがはみ出す。開いたものはそのまま残る。ウィンドウは形状を保つ。ページが地面であるため、白または暗いページ上のヒーローの下にプレートはなく、四方に余白のある完全なウィンドウもない。unframed は開発者が要求した場合のみ。デッドコーナーなし。両方の幅で1枚の静止画を、ゴールド例の隣で録画します。あなたのものがより空っぽで、平坦で、箱詰めであれば、動きの前にフレームを修正します。
  5. 画面。 実際の文字列を数えます。通常は3~7(references/craft.md、Restraint):要素ではなく単語の予算。キットのトークン、Bar、Text、Row を使用して構築します。すべてのコントロールのテキストを、それが動く前に収めます。カーソルが触れるものを data-target と data-cursor でマークします。rect() で測定し、ハードコードは禁止。
  6. 振り付け。 Act API。マウントされたままに見えるものを維持し、終了アニメーションのためにトグルします(Bubble と Fly は明示的にハンドオフします)。オブジェクトだけでなく、関係性をアニメーション化します。新しい行はその下の行を運び、リサイズするサーフェスはそのテキストを引き伸ばしません。ビートはオーバーラップし、グループはスタッガーし、結果は保持され、ループは開始した場所で終了するか、目に見える原因でリセットされます。
  7. リハーサル。 最初に poster を設定します。ほとんどの人はそのフレームだけを見ます(サムネイル、動作の縮小、スクリーンショット)。そのため、それはそれ自体でストーリーを語るビートであり、変更途中のものではなく、結果が画面上に残され、片付けられていないものにします(references/motion.md、Story)。次に、静止画だけでなくループも録画します。表示されている幅と390での連続写真を作成し、すべてのプレス、メニュー、モーフ、ループの継ぎ目をステップ実行します(references/rehearse.md)。静止画ではポップは表示できません。すべてのフレームを読み、最も大きな目に見える欠陥から修正します(フレーミング、次に階層、次に動き、次にポリッシュ)、再録画。次に、それを最も近いゴールド例の隣に置き、references/teaching.md の全体構成とスタイルのペアについて、あなたの静止画に関する質問として答えます(視線が最初に着くのはどこか、そしてそれは結果か? 1つのウィンドウ、タイル、またはデバイスが明確にリードしているか?)。「いいえ」が最も大きな欠陥です。film.mjs --gate が rehearsal passed で終了することは、必要条件であり、十分条件ではありません。次に、references/rehearse.md の最後のパスを実行します。新鮮な目のレビュー(references/review.md)と、コンポーネントの隣にある REHEARSAL.md(テンプレートは references/verify.md、Hand over)。コピーしたゴールド例、変更点、確認しなかった点。

毎回繰り返される欠陥とそのルール。引き渡す前に確認してください:

  • スワップするコンテンツ 移動する代わりに(references/motion.md、Changing text and values)。
  • 視線が着く灰色のバー。 フィラーは端に属します(references/craft.md、Restraint)。
  • ウィンドウの背後にあるプレート、または四方に余白のある浮遊ウィンドウ。 ウィンドウまたは電話はステージの少なくとも3分の2を占め、端まで達しているか、エッジにかかっている(references/framing.md、rule 5 and Small formats and the page)。
  • 空の帯、カットされたコントロール、シャドウ(references/craft.md、Restraint; references/framing.md、rule 4)。
  • ストックAIやでっち上げのロゴ。 キラキラ、紫、色付きの四角の中の文字(references/craft.md、Icons and logos)。
  • 込み入った行と不均一なインセット(references/craft.md、Restraint and Spacing and alignment)。
  • 長いホールドと原因のないリセット(references/motion.md、Loops)。
  • Iビームの下にない選択範囲(references/motion.md、Drags and selection)。
  • 手描きのステータスバーやホームインジケーター。 Phoneは両方を描画します(references/craft.md、Chrome and devices)。
  • 中央揃えされた金額がその記号と共に中央揃えされている(references/craft.md、Spacing and alignment)。

例

開始する前に最も近いものを録画します(ステップ4)。ゴールド例は品質の基準です。プロダクトスタディは、インタラクションを借用するためのものであり、決して別の製品のアイデンティティを借用するためのものではありません。標本シートはカタログであり、構成ではありません。すべてを npm install と npm run dev で実行します。teaching/ には、問題を診断するための悪い/良いペア(references/teaching.md)が含まれています。悪い半分は決して開始点にしてはいけません。

Gold

ニーズ例学ぶべきこと
静止画または機能カードstatic-card静かな階層、ハードクロップ、1つのサテライト、選択された顧客、その隣接、および合計にのみ実際の単語
ダークな静止画dark-bento1つのシグナルを1回だけ伝える。アルバムアートが音楽アプリであることを示す
アニメーションヒーロー、ジェスチャーhero-demo5ビート、名前付きターゲット、アノテーション、前方に出てくるターミナル
振り付け、カーソルなしpayout-flowゆっくりと重なる到着、読み時間、保持される結果
その場で変化するコンテンツchoreography保持されたトラック、ソフトマスク、依存するタイミング
AI回答ai-chat送信された質問、思考中、高さと共にストリーミングされる回答、最後にソース。キラキラなし、紫なし
AIとカードai-cards回答されレコードとして保持される多肢選択カード、スレッド内で開くオプションのカード、自身のボタンから予約される
フォームバリデーションform-error原因となったフィールドのエラー、修正によるクリア、その後ボタンが自身で確認
ドラッグして並べ替えreorderグリップで持ち上げられた行、他の行がスペースを作り、所定の位置にドロップ
チャートスクラブchart-scrubポインターを追従するヘアラインとドット、その日の下でロールするヘッドライン値
テーブル内の編集table-editその場で編集されるセル、その後それが供給する合計が1ビート遅れてロール
ローディングからコンテンツへloadingコンテンツ自身の形状のスケルトン、上から下に解決される行、全体を通して実際のクローム
ダークヒーローdark-hero黒の上でのサーフェスステップによる奥行き、1つの色付きカラー、独自のピルで変化するステータス
ライブ共同編集者presence各人物がどこでも1つの色、カーソルに乗る名前、ドキュメント自身のマークで示される作業
システムストーリーsubscriptionsチップが行に飛び込み、MRRがロールし、2つ目のシーンがリセット
クローズアップclose-upウィンドウのクロームと共に1.4倍の1つのコントロール、行全体、一致する大きなカーソル
多くのうちの1つmany-of-oneすべての端からはみ出す1つのもののグリッド、奥行きによって焦点が合う1つのタイル、単語を持つ唯一のもの
フェードクロップfade-crop端からはみ出す代わりに、フィラーの上で、その足元でフェードアウトするウィンドウ
製品上のパネルpanel-annotation製品のマージン上の設定パネル、設定から変更されたものへの1つのリーダー
重なるウィンドウoverlapウィンドウの前にあるカード、その端がウィンドウのサイドバーライン上にある
積み重ねられたカードstacked-cards1つの幅の2つのコンポーネント、小さなギャップ、下部のものは底からはみ出している
反対側の角opposite-cornersベントータイル:左下にコピー、右上隅から吊り下げられた製品
傾いたスタックtilted-stack紙のゆるい山、小さな交互の角度、一番上のカードのみに単語がある
コーナーチップcorner-chipウィンドウの角に中央揃えされた小さなチップ、半分は外側
モノクロームmonochrome他社の製品を並べたもの、グレースケール、足元でフェード
ウィンドウの列window-row1つの高さで並んだセッション:奥行きによる焦点、ステージによってカットされた隣接、クロップされたのはフィラーのみ
ウィンドウと電話device-pair1つのイベントを伝えるダッシュボードとロック画面。電話はマージンにまたがり、決してフィギュアの上にはない
関連オブジェクトstory請求書、計画、コネクタ、ロールする合計
カレンダードラッグcalendar埋められた週、1つの焦点イベント、測定されたピックアップ
フリードラッグfreeform-dragグラブオフセット、測定されたグリッド、スナップするドロップスロット
電話アプリphone-touchカードが1つのオブジェクトとして画面に開き、ループが折り返す
Dynamic Islanddynamic-island1つの黒い形状、そのコンテンツは別のレイヤー
メッセージmessagesコンポーザー、タイピング、レシート、バブルのライフタイム
カーソルcursors、cursor-morph、cursor-resize5つのスタイル、要素駆動の種類、リサイズの端と角、カーソルなし
アノテーションannotationsリーダー、寸法、フロー、動くターゲット;references/annotations.md
機能グリッドbento1つのヒーロー、1つのウィンドウ、1つの統計、1つのオブジェクト、1つの図
ダークな罫線グリッドruled-bento共有された罫線と技術的なイメージ
コンシューマーグリッドstaggered-bentoオフセットタイル、グラフィックアート、物理オブジェクト
画像主導のヒーローグリッドhero-grid異なる背景、…

…(翻訳のため省略)

関連スキル