Day18|「そっくりUI」を本気で再現するために、AIにプロンプトを考えさせてみた/日本・予測市場サイト(個人開発)
今日は17日目。
今日はいつもより一段踏み込んで、「ユーザー周りのUIを、どこまで“そっくり”再現できるか」に挑戦してみた。
今日は「そのままお願い」じゃなく、一回立ち止まった
これまでの流れだと、
- 参考画像を貼る
- 「これとそっくり作って」とお願いする
という、かなり直球なやり方をしていた。
もちろんこれでも十分うまくいくんだけど、
今日はあえて一回立ち止まることにした。
Claudeに「Cursorに投げるプロンプト」を考えさせる
今日やったのは、ちょっと変わったやり方。
- まずClaudeに相談
- 「このUIと同じものを作りたい。Cursorに投げるプロンプトを考えてほしい」と依頼
- できあがった“プロンプト用プロンプト”を、Cursorに投げる
つまり、
AIに、AI向けの説明文を書かせるというやり方。
画像 → 構造 → 実装、という流れが見えた
このやり方が面白かったのは、
Claudeがいきなりコードを書こうとしなかった点。
- まず画像を分析
- どんなUI構造かを分解
- どんなコンポーネントが必要かを整理
- その上で「こう実装すべき」というプロンプトを生成
結果、Cursor側のワークフローを見ると、
構成がめちゃくちゃ丁寧だった。
「あ、こうやって伝えれば、AIにもちゃんと意図が通るんだな」
と素直に思った。
■Claude生成プロンプト
XXXXXのプロフィールページを画像と完全に同一に再現してください。
【ステップ1:詳細分析】
以下を正確に測定・分析してください:
-
レイアウト構造
- ヘッダー部分の高さ
- プロフィール画像の配置と各要素の位置関係
- タブメニューの配置
- 画像グリッドのレイアウト
-
各要素のサイズ(px単位)
- プロフィール画像の直径
- グラデーションボーダーの太さ
- 統計数値のフォントサイズ
- ラベルテキストのフォントサイズ
- ボタンの高さと幅
- アイコンのサイズ
- グリッド画像のサイズと間隔
-
カラーコード
- プロフィール画像のグラデーションボーダー(開始色、終了色、角度)
- 背景色
- テキストカラー(ユーザー名、統計数値、ラベル、バイオ)
- ボタンの背景色とボーダー色
- タブアイコンの色(選択時・非選択時)
-
フォント情報
- ユーザー名のサイズと太さ
- 統計数値のサイズと太さ
- ラベルのサイズと太さ
- バイオテキストのサイズと太さ
-
余白・間隔
- 要素間の垂直・水平マージン
- パディング値
- グリッド画像間のgap
【ステップ2:実装】
分析に基づいて以下の仕様で実装:
【技術スタック】
- React + TypeScript
- Tailwind CSS(任意値でピクセル指定。例: w-[280px], h-[44px])
- Lucide Reactでアイコン使用
- まずはモバイル版(画像の幅に合わせる)
【実装する要素】
- ユーザー名: XXXXXX
- プロフィール画像: グラデーションボーダー付き円形
- 統計情報:
- 54 投稿
- 852 フォロワー
- 756 フォロー中
- ポイント情報:
- 6000 所持ポイント
- 4000 獲得ポイント
- 0% 勝率(ターゲットアイコン付き)
- 名前: AXXXXXXX
- バイオ: XXXXXXX
- 「プロフィールを編集」ボタン
- タブメニュー(グリッド/円グラフ/棒グラフアイコン)
- 画像グリッド(3列、gap付き)
【制約条件】
- 画像内のすべての数値、テキストをそのまま使用
- グラデーションはlinear-gradientで正確に再現
- プロフィール画像は円形で、グラデーションボーダーを実装
- すべてのサイズをpx単位で明示
- カラーは16進数で指定
- 日本語フォントも考慮
- 画像グリッドはダミー画像でOK(同じアスペクト比で)
【出力形式】
コンポーネント名: XXXProfile
ファイル名: XXXProfile.tsx
まず詳細な分析結果を表形式で出力し、その後完全なコードを生成してください。
■プロンプト入力後のCursor出力
プロフィール編集画面 詳細分析結果
##レイアウト構造分析
| エリア | 位置・配置 | 詳細 |
|---|---|---|
| ヘッダー | 最上部固定 | 左:閉じるボタン、中央:タイトル、右:完了ボタン |
| プロフィール画像エリア | ヘッダー直下 | 円形アバター + 変更リンク(中央揃え) |
| 入力フォームセクション | 画像エリア下 | 名前、ユーザーネーム、自己紹介、リンク追加 |
| ビジネス情報セクション | フォーム下 | セクションタイトル + リスト項目2つ |
📏 サイズ測定(px単位)
| 要素 | サイズ | 詳細 |
|---|---|---|
| ヘッダー高さ | 56px | 上下パディング含む |
| プロフィール画像 | 直径: 100px | 円形、グレー背景 |
| プロフィール画像エリア | 高さ: 160px | 画像 + リンク + 余白 |
| 入力フィールド高さ | 48px | ラベル + 入力欄 + 下線 |
| リスト項目高さ | 44px | 左テキスト + 右テキスト + 矢印 |
| セクションタイトル高さ | 32px | 上下マージン含む |
| 閉じるボタン(X) | 24px × 24px | アイコンサイズ |
| 完了ボタン(✓) | 24px × 24px | アイコンサイズ |
| 矢印アイコン(>) | 20px × 20px | アイコンサイズ |
などなど。 すごい......
マイページを“有名メディアそっくり”に作り直した
今回はマイページを一度作り直して、
- とある有名メディアのユーザーページ風UI
- プロフィール編集ボタンを押すと
- さらに別の有名サービスそっくりな編集画面に遷移
という構成にしてみた。
ボタン → ページ遷移、という流れがシンプルだったこともあって、
エラーもほとんど出ず、実装はかなりスムーズだった。


「AIにちゃんと考えさせる」と、再現度が跳ねる
正直、今日はかなり驚いた。
- 見た目の再現度が高い
- 意図とズレが少ない
- 修正指示が激減する
「そっくり作って」だけじゃなく、
どう解釈して、どう作るかまでAIに考えさせると、
一気にクオリティが上がる感じがした。
裏でやってたこと:リファクタリング
実は今日はUIだけじゃなくて、
- コードの整理
- 重複処理の削減
- ぐちゃぐちゃになってた部分のリファクタリング
も結構やっていた。
正直、だいぶ荒れてきてたので、
ここで一回整理できたのは大きい。
次はランキング周りをもう一度きれいにしたい
他にも色々作ったけど、
ランキングページはもう一段きれいにしたい気持ちがある。
この「AIにプロンプトを考えさせる」やり方、
他のページでも試してみようかなと思っている。
今日はこんな感じ。
また明日も、ノリと実験で続けていく。
Discussion