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

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

↑私が10年以上利用している会計ソフト!

ChatGPT AI component generator とは

ChatGPT AI component generatorはChatGPTをベースに、指定した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のメリットは、やはりプレビューがある点でしょうか。その場でパッと確認できるので、細かい調整もしやすくなりそうです。


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

シェアする

ニュースレター

Web制作の最新情報やWebクリエイターボックスからのお知らせ、中の人の近況等を定期的にお送りいたします。 ぜひご登録ください!もちろん無料です! :)