logo
制作お役立ち

更新日

UIコンポーネントの作成指示やプレビュー表示ができる【ChatGPT AI component generator】

ChatGPTの話題がつきないですねー!私も日々遊んでみたり、お仕事に導入してみたりと、あれこれ試しています。そんな中見かけたのがChatGPT AI component generatorという、Webサイトのコンポーネント制作に役立ちそうなツールです。

ChatGPT AI component generator とは

ChatGPT AI component generatorChatGPTをベースに、指定した Web サイトのパーツ、コンポーネントのコードを生成してくれるオンラインツールです。

使い方はとっても簡単。1. の入力欄に作りたいパーツの説明を入力。日本語でも OK です。ここでは「送信って書かれたボタン」という超絶ざっくりした説明を書いてみました。2. のセレクトメニューでは生成するコードの出力形式を選択します。ひとまず「HTML」としました。

すると、指定したボタンがプレビューとして表示されます。プレビューのエリアをクリックすると、以下のようなコードがコピーできます:

<button
  style="
    background-color: #1976d2;
    color: #fff;
    padding: 10px 20px;
    border-radius: 5px;
    border: none;
    font-size: 16px;
    cursor: pointer;
  "
>
  送信
</button>

い、インライン CSS…!!

なんとも使いづらそうなので、次はセレクトメニューから「React + Tailwind CSS」を選択して React コンポーネントを作ってもらいます。「3 つのセクションにそれぞれ見出し、縦 200px 横 200px の画像、1 行の文章」を指定。

一応想定通りの構成になっています。さらに良しなに色もつけてもらっていますね。生成されたコードはこちら:

import React from "react";
import SectionImg from "https://via.placeholder.com/200x200";

const Section = ({ backgroundColor, title, imgAlt, imgSrc, description }) => {
  return (
    <section className={`bg-${backgroundColor} p-20`}>
      <h2 className="text-xl font-bold mb-10">{title}</h2>
      <img src={imgSrc} alt={imgAlt} className="block mx-auto mb-10" />
      <p className="text-base mb-20">{description}</p>
    </section>
  );
};

const App = () => {
  return (
    <>
      <Section
        backgroundColor="gray-200"
        title="Section 1"
        imgSrc={SectionImg}
        imgAlt="Section 1 Image"
        description="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
      />
      <Section
        backgroundColor="white"
        title="Section 2"
        imgSrc={SectionImg}
        imgAlt="Section 2 Image"
        description="Suspendisse ullamcorper augue sit amet ipsum elementum, ac iaculis diam placerat."
      />
      <Section
        backgroundColor="gray-200"
        title="Section 3"
        imgSrc={SectionImg}
        imgAlt="Section 3 Image"
        description="Maecenas at ipsum et sapien lacinia mollis."
      />
    </>
  );
};

ChatGPT だとどうなるの?

これくらいの指示であれば、本家 ChatGPT でもできちゃいますね。試しにChatGPTの方でも「React と Tailwind CSS を使ってブログ記事一覧のコンポーネントを作成する。見出しは「人気の記事」、ブログ記事のタイトル、横 120px 縦 100px のサムネイル画像を含む。3 つの記事を掲載する。」という指示をしてみました。

以下のようなコードが生成されます:

import React from "react";

const BlogPost = ({ title, thumbnailSrc, thumbnailAlt }) => {
  return (
    <div className="flex flex-col items-center mr-10">
      <img src={thumbnailSrc} alt={thumbnailAlt} className="w-24 h-20 mb-2" />
      <h3 className="text-base font-bold text-center">{title}</h3>
    </div>
  );
};

const BlogPostList = () => {
  return (
    <div className="mt-10">
      <h2 className="text-2xl font-bold mb-6">人気の記事</h2>
      <div className="flex flex-row">
        <BlogPost
          title="React で簡単にカスタムフックを作ろう"
          thumbnailSrc="https://via.placeholder.com/120x100"
          thumbnailAlt="React Hook Thumbnail"
        />
        <BlogPost
          title="Tailwind CSS でスタイリッシュなフォームを作ろう"
          thumbnailSrc="https://via.placeholder.com/120x100"
          thumbnailAlt="Tailwind CSS Thumbnail"
        />
        <BlogPost
          title="JavaScript の最新トピック 2023"
          thumbnailSrc="https://via.placeholder.com/120x100"
          thumbnailAlt="JavaScript Thumbnail"
        />
      </div>
    </div>
  );
};

const App = () => {
  return (
    <div className="container mx-auto">
      <BlogPostList />
    </div>
  );
};

export default App;

また、ちょっとした解説があるのも ChatGPT ならでは、かも。

ChatGPT AI component generator のメリットは、やはり プレビューがある点 でしょうか。その場でパッと確認できるので、細かい調整もしやすくなりそうです。


コードを生成するまでに少し時間がかかりますし、ときどき突拍子もない不思議な出力をしたりもしますが、簡単なコンポーネント制作であれば時短になりそうです。うまく活用していけるといいですね!