• Chat-GPT5.3のUIコーディングの弱さから二月にGeminiに移ったが、その後すぐに5.4が出た。

  • Chat-GPT5.4が優秀と聞き、使用されていなかった無料期間で体験

  • Canvas: Geminiと同じようにCanvasが使えることに気づいた

    • 「2024年10月3日(現地時間)に初めて発表・導入」されていたらしいので、GPT5.3のころからあるようであり、自分が使えていなかっただけのよう
    • Canvas使用を指定しなくても必要なら自動でCanvasを使ってくれて、便利
  • コーディング能力: 上がっている。まだ少ししか触れていないが、柔軟性が上がっていると感じた。

  • Zip: 作成した複数ファイルに跨ぐコードをZIPファイル形式で出力! 便利

  • プロンプト: それっぽいホームページ作ってみて。UI作成能力が見たい gpt5_4_test_UI

export default function HomepageUIMock() {
  const features = [
    {
      title: "直感的な設計",
      desc: "複雑な操作を減らし、誰でも迷いにくい画面構成にしています。",
      icon: "◎",
    },
    {
      title: "高速な開発",
      desc: "React ベースの構成で、改善サイクルを素早く回せる想定です。",
      icon: "⚡",
    },
    {
      title: "拡張しやすい",
      desc: "機能追加やUI差し替えを見据えた、整理されたコンポーネント設計です。",
      icon: "□",
    },
  ];

  const stats = [
    { label: "導入チーム", value: "120+" },
    { label: "継続利用率", value: "93%" },
    { label: "平均改善速度", value: "2.4x" },
  ];

  return (
    <div className="min-h-screen bg-slate-950 text-white">
      <header className="sticky top-0 z-30 border-b border-white/10 bg-slate-950/80 backdrop-blur">
        <div className="mx-auto flex max-w-7xl items-center justify-between px-6 py-4">
          <div className="flex items-center gap-3">
            <div className="flex h-10 w-10 items-center justify-center rounded-2xl bg-cyan-400/20 text-cyan-300 shadow-lg shadow-cyan-500/10">
              N
            </div>
            <div>
              <div className="text-sm text-slate-400">Next UI Studio</div>
              <div className="text-lg font-semibold tracking-wide">NovaFlow</div>
            </div>
          </div>

          <nav className="hidden items-center gap-8 text-sm text-slate-300 md:flex">
            <a href="#features" className="transition hover:text-white">機能</a>
            <a href="#about" className="transition hover:text-white">強み</a>
            <a href="#pricing" className="transition hover:text-white">料金</a>
            <a href="#contact" className="transition hover:text-white">お問い合わせ</a>
          </nav>

          <button className="rounded-2xl border border-cyan-400/30 bg-cyan-400/10 px-4 py-2 text-sm font-medium text-cyan-200 transition hover:bg-cyan-400/20">
            無料で試す
          </button>
        </div>
      </header>

      <main>
        <section className="relative overflow-hidden">
          <div className="absolute inset-0 bg-[radial-gradient(circle_at_top_right,rgba(34,211,238,0.18),transparent_30%),radial-gradient(circle_at_left,rgba(99,102,241,0.16),transparent_25%)]" />
          <div className="mx-auto grid max-w-7xl gap-12 px-6 py-20 md:grid-cols-2 md:items-center md:py-28">
            <div className="relative z-10">
              <div className="mb-4 inline-flex items-center gap-2 rounded-full border border-cyan-400/20 bg-white/5 px-3 py-1 text-sm text-cyan-200">
                <span className="h-2 w-2 rounded-full bg-cyan-300" />
                UIの印象で、サービスの信頼感を上げる
              </div>

              <h1 className="max-w-2xl text-4xl font-semibold leading-tight tracking-tight md:text-6xl">
                速く作れて、
                <span className="text-cyan-300">ちゃんと良く見える</span>
                ホームページ。
              </h1>

              <p className="mt-6 max-w-xl text-base leading-8 text-slate-300 md:text-lg">
                NovaFlowは、個人開発や小規模チーム向けに、見た目の整ったWeb体験を短いサイクルで作るためのUI基盤です。
                伝わるデザインと使いやすさを両立します。
              </p>

              <div className="mt-8 flex flex-col gap-4 sm:flex-row">
                <button className="rounded-2xl bg-cyan-400 px-6 py-3 font-medium text-slate-950 shadow-xl shadow-cyan-500/20 transition hover:-translate-y-0.5">
                  デモを見る
                </button>
                <button className="rounded-2xl border border-white/15 bg-white/5 px-6 py-3 font-medium text-white transition hover:bg-white/10">
                  導入事例を見る
                </button>
              </div>

              <div className="mt-10 grid max-w-lg grid-cols-3 gap-4">
                {stats.map((item) => (
                  <div key={item.label} className="rounded-2xl border border-white/10 bg-white/5 p-4 backdrop-blur">
                    <div className="text-2xl font-semibold text-white md:text-3xl">{item.value}</div>
                    <div className="mt-1 text-sm text-slate-400">{item.label}</div>
                  </div>
                ))}
              </div>
            </div>

            <div className="relative z-10">
              <div className="rounded-[32px] border border-white/10 bg-white/5 p-4 shadow-2xl shadow-cyan-950/40 backdrop-blur">
                <div className="rounded-[28px] border border-white/10 bg-slate-900/90 p-4">
                  <div className="flex items-center justify-between border-b border-white/10 pb-4">
                    <div>
                      <div className="text-sm text-slate-400">Dashboard Preview</div>
                      <div className="text-lg font-semibold">Project Overview</div>
                    </div>
                    <div className="rounded-full bg-emerald-400/15 px-3 py-1 text-sm text-emerald-300">
                      Live
                    </div>
                  </div>

                  <div className="mt-4 grid gap-4 md:grid-cols-2">
                    <div className="rounded-3xl border border-white/10 bg-slate-800/70 p-5">
                      <div className="text-sm text-slate-400">進行中の改善</div>
                      <div className="mt-2 text-3xl font-semibold">18</div>
                      <div className="mt-4 h-2 overflow-hidden rounded-full bg-white/10">
                        <div className="h-full w-3/4 rounded-full bg-cyan-300" />
                      </div>
                      <div className="mt-2 text-sm text-slate-400">今週の進捗 75%</div>
                    </div>

                    <div className="rounded-3xl border border-white/10 bg-slate-800/70 p-5">
                      <div className="text-sm text-slate-400">満足度スコア</div>
                      <div className="mt-2 text-3xl font-semibold">4.8 / 5</div>
                      <div className="mt-4 flex gap-2">
                        {[1, 2, 3, 4, 5].map((n) => (
                          <div
                            key={n}
                            className={`h-3 flex-1 rounded-full ${n < 5 ? "bg-cyan-300" : "bg-white/15"}`}
                          />
                        ))}
                      </div>
                      <div className="mt-2 text-sm text-slate-400">ユーザー調査ベース</div>
                    </div>
                  </div>

                  <div className="mt-4 rounded-3xl border border-white/10 bg-slate-800/70 p-5">
                    <div className="flex items-center justify-between">
                      <div>
                        <div className="text-sm text-slate-400">アクティビティ</div>
                        <div className="text-lg font-semibold">最近の改善ログ</div>
                      </div>
                      <div className="text-sm text-cyan-300">更新中</div>
                    </div>

                    <div className="mt-4 space-y-3">
                      {[
                        "トップページのCTAを改善",
                        "カードUIの余白を最適化",
                        "初回導線の離脱率を低下",
                      ].map((item, idx) => (
                        <div
                          key={item}
                          className="flex items-center justify-between rounded-2xl border border-white/10 bg-white/5 px-4 py-3"
                        >
                          <div className="flex items-center gap-3">
                            <div className="flex h-8 w-8 items-center justify-center rounded-xl bg-cyan-400/10 text-cyan-300">
                              {idx + 1}
                            </div>
                            <span className="text-sm text-slate-200">{item}</span>
                          </div>
                          <span className="text-xs text-slate-400">今日</span>
                        </div>
                      ))}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </section>

        <section id="features" className="mx-auto max-w-7xl px-6 py-16 md:py-24">
          <div className="max-w-2xl">
            <div className="text-sm font-medium text-cyan-300">FEATURES</div>
            <h2 className="mt-3 text-3xl font-semibold tracking-tight md:text-4xl">
              雰囲気だけで終わらせない、
              実用寄りのUI設計
            </h2>
            <p className="mt-4 text-slate-400 leading-8">
              見た目の整合性、情報の優先順位、次に押してほしいボタンの明確さまで含めて設計します。
            </p>
          </div>

          <div className="mt-10 grid gap-6 md:grid-cols-3">
            {features.map((feature) => (
              <div
                key={feature.title}
                className="rounded-[28px] border border-white/10 bg-white/5 p-6 shadow-lg shadow-black/10 backdrop-blur transition hover:-translate-y-1 hover:bg-white/7"
              >
                <div className="flex h-12 w-12 items-center justify-center rounded-2xl bg-cyan-400/10 text-xl text-cyan-300">
                  {feature.icon}
                </div>
                <h3 className="mt-5 text-xl font-semibold">{feature.title}</h3>
                <p className="mt-3 text-sm leading-7 text-slate-400">{feature.desc}</p>
              </div>
            ))}
          </div>
        </section>

        <section id="about" className="mx-auto max-w-7xl px-6 pb-16 md:pb-24">
          <div className="grid gap-6 md:grid-cols-[1.15fr_0.85fr]">
            <div className="rounded-[32px] border border-white/10 bg-gradient-to-br from-cyan-400/10 to-indigo-400/10 p-8">
              <div className="text-sm font-medium text-cyan-300">WHY NOVAFLOW</div>
              <h2 className="mt-3 text-3xl font-semibold tracking-tight">第一印象を整えるだけで、伝わり方はかなり変わる。</h2>
              <p className="mt-4 max-w-2xl text-slate-300 leading-8">
                サービスの価値そのものだけでなく、最初の数秒で感じる「信頼できそう」「使いやすそう」が重要です。
                そのための余白、配色、視線誘導を、最小構成でも成立するようにまとめています。
              </p>
              <div className="mt-8 flex flex-wrap gap-3 text-sm text-slate-200">
                {[
                  "洗練された印象",
                  "情報整理された構成",
                  "CTAが分かりやすい",
                  "B2B / SaaS風にも対応",
                ].map((tag) => (
                  <span key={tag} className="rounded-full border border-white/10 bg-white/5 px-4 py-2">
                    {tag}
                  </span>
                ))}
              </div>
            </div>

            <div className="rounded-[32px] border border-white/10 bg-white/5 p-8">
              <div className="text-sm font-medium text-cyan-300">VOICE</div>
              <p className="mt-4 text-lg leading-8 text-slate-200">
                「最低限の情報しかない段階でも、かなり完成形っぽく見える。これなら企画段階の説明にも使いやすい。」
              </p>
              <div className="mt-6 text-sm text-slate-400">個人開発者 / UI検討中</div>

              <div className="mt-8 rounded-3xl border border-white/10 bg-slate-900/60 p-5">
                <div className="text-sm text-slate-400">おすすめ用途</div>
                <ul className="mt-3 space-y-3 text-sm text-slate-200">
                  <li>・ポートフォリオのトップページ</li>
                  <li>・SaaS風の紹介ページ</li>
                  <li>・プロダクトの初期モック</li>
                </ul>
              </div>
            </div>
          </div>
        </section>

        <section id="pricing" className="mx-auto max-w-7xl px-6 pb-20">
          <div className="rounded-[36px] border border-white/10 bg-white/5 p-8 md:p-10">
            <div className="grid gap-8 md:grid-cols-[1fr_auto] md:items-end">
              <div>
                <div className="text-sm font-medium text-cyan-300">GET STARTED</div>
                <h2 className="mt-3 text-3xl font-semibold tracking-tight md:text-4xl">
                  とりあえずそれっぽく見せたい、
                  から始められる。
                </h2>
                <p className="mt-4 max-w-2xl text-slate-400 leading-8">
                  最初はモックでも十分です。まず見た目の方向性を固めて、そのあとで機能を積み上げる流れが取りやすくなります。
                </p>
              </div>

              <div className="rounded-[28px] border border-cyan-300/20 bg-cyan-400/10 px-8 py-6 text-right">
                <div className="text-sm text-cyan-200">Starter Plan</div>
                <div className="mt-2 text-4xl font-semibold">¥0</div>
                <div className="mt-1 text-sm text-slate-300">モック作成・検討用</div>
              </div>
            </div>

            <div className="mt-8 flex flex-col gap-4 sm:flex-row">
              <button className="rounded-2xl bg-cyan-400 px-6 py-3 font-medium text-slate-950 transition hover:-translate-y-0.5">
                今すぐ始める
              </button>
              <button className="rounded-2xl border border-white/10 bg-transparent px-6 py-3 font-medium text-white transition hover:bg-white/5">
                資料をダウンロード
              </button>
            </div>
          </div>
        </section>
      </main>

      <footer id="contact" className="border-t border-white/10 bg-slate-950/80">
        <div className="mx-auto flex max-w-7xl flex-col gap-4 px-6 py-8 text-sm text-slate-400 md:flex-row md:items-center md:justify-between">
          <div>© 2026 NovaFlow Inc. All rights reserved.</div>
          <div className="flex gap-6">
            <a href="#" className="hover:text-white">利用規約</a>
            <a href="#" className="hover:text-white">プライバシー</a>
            <a href="#" className="hover:text-white">会社情報</a>
          </div>
        </div>
      </footer>
    </div>
  );
}