URLやテキストから簡単に二次元バーコードを生成し、見た目を可愛くカスタマイズして、A4サイズの用紙にレイアウトして印刷用データ(JPG/PDF)としてダウンロードできます。手帳やノートにバーコドを貼ってアプリやサイトを管理したくて作りました。

HTML コードビューア

関連記事
2次元バーコードシール作成ジェネレーター

ジェネレータだけ利用したい方はこちら

Gemini Canvasでの制作過程

初見のプロンプト

可愛いQRコードジェネレータ

QRコードを手帳に貼るようにシールみたいに加工でき・印刷できるサイトをつくりたい
作成したQRコードはA4の紙にプレビューして表示でき、QRコードのサイズを指定でき並べて表示できる
QRコード
ラベル
ダウンロードはJPG・PDF

QRコードは1種類ではなく何種類も追加できるように変更して、Q Rコードの縁も自由にデザインできるようにしたい
縁の色、点線だけじゃなくて柄とか色選べるようにしたい
さらに切り取り線も上に載せて欲しい
ダウンロードした画像とプレビューが全然違うから、プレビューに忠実になるように調整して欲しい

プレビュー画面を見ながら微調整していく

QRコードの大きさをラベル有無同じにして欲しい。
デザインは全体設定できればいいので個別に変更できる機能はいらない

後付けでツギハギしていった結果、ボタンとプレビューの配置などが少し気に入らなかったので、一旦作り直してもらうことにしました。エラーが多く上手くいかないときなどもこの方法を使うと一度リセットされるのでおすすめです。

今までのまとめて綺麗なプロンプトにして

生成AIが今までのプロンプトをまとめてくれた仕様書

可愛いQRコードシールジェネレーター 仕様書

概要

手帳やノートに貼って楽しめる、デザイン性の高いQRコードシールを作成し、A4用紙にレイアウトして印刷できるWebアプリケーションを開発する。

必須機能一覧

1. QRコードの生成と管理

  • 複数追加: ユーザーは異なるURLやテキストを持つQRコードをページ上に複数追加できる。
  • ラベル機能: 各QRコードに任意の短いテキストラベル(例:「ブログ」「インスタ」など)を追加できる。
  • QRコードの削除: 追加したQRコードをリストから個別に削除できる。

2. デザインとレイアウト

  • 全体デザイン設定:
    • QRコードサイズ: 各QRコードの「QRコード部分の大きさ」をスライダーで個別に調整できる(単位:mm)。
      • サイズの一貫性: ラベルの有無によってQRコード画像のサイズが変わらないようにする。ラベルを追加した場合は、シール全体の縦幅が自動で伸びる仕様とする。
    • 枠線デザイン: 全てのシールに共通のデザインを適用する。
      • 種類: 「実線」「点線」「破線」「二重線」といった基本的なスタイルに加え、「ハート柄」「星柄」「あわ柄」のような装飾的なスタイルも選択可能にする。
      • 太さ: 枠線の太さをスライダーで調整できる。
      • 色: カラーピッカーで枠線の色を自由に変更できる。
  • A4プレビュー:
    • リアルタイム表示: 作成したシールをA4用紙のプレビュー上にリアルタイムで表示する。
    • ドラッグ&ドロップ: プレビュー上のシールをマウスでドラッグし、自由に配置を変更できる。
    • レイアウトリセット: ボタン一つで、全てのシールを用紙の左上から自動で整列させる機能。
  • 印刷補助機能:
    • 切り取り線: 印刷後に切り取りやすいように、各シールの周りに点線の切り取り線を表示・非表示できるトグルスイッチを設ける。

3. 出力機能

  • プレビュー忠実性: 画面上のプレビューと、ダウンロードされるファイルの見た目が完全に一致するようにする。
  • ダウンロード形式:
    • JPG: 高解像度のJPG画像としてダウンロードできる。
    • PDF: 印刷に適したA4サイズのPDFとしてダウンロードできる。

4. ユーザーインターフェース (UI)

  • 直感的な操作: 左側に設定パネル、右側にA4プレビューを配置し、誰でも直感的に操作できるレイアウトにする。
  • エラーハンドリング: URL/テキストが未入力の状態で追加ボタンを押した場合、コンソールエラーではなく、画面上に「入力してください」といった趣旨のメッセージを分かりやすく表示する。

開発のポイント

  • ライブラリ: QRコード生成、Canvasへの描画、PDF生成には、それぞれ適切なJavaScriptライブラリ(例: qrcode.js, html2canvas, jsPDF)を活用する。
  • 見た目: 全体的に「可愛い」「手帳に合う」というコンセプトに沿った、柔らかい色使いや丸みのあるフォント、親しみやすいデザインを採用する。
この仕様書を元にして1からサイト作り直して

作り直したサイトを見ながら更に微調整していく

枠線の太さ (10px)はmm表示、枠線は柄も選択できるようにして、任意の画像もアップできる機能を追加ラベルの文字が切れてるのでラベルはQRコードの枠線の下に移動して

かなりいい感じだ
枠線の種類の星やハートなどのサイズも調整できるようにして
QRコードの周りにあるグレーの点線は消して欲しい
枠線の種類の調節は枠線の種類全部調節できるようにして。
ハート同士が重なって何の形かわからない、間隔を調節できるようにしたいの
柄の枠線の感覚もバーで調節できるようにして
「ハート」「星」「あわ」枠線の種類反映されなくなったの修正して
柄が表示されてない

ここでどうしても枠をハートなど柄にするのが上手くいかず行き詰まったので諦めることにしました。消去してもらいつつ、他に修正してもらいたいことも指示。

ハート・星・あわを消去

追加機能
枠線の角丸と角をボタンで選択できるようにして
ダウンロードボタンは2グリッドに変更
いい感じ
プレビューでQRコードがドラックで移動できるのがわかりにくいから説明文を追加してほしい

形も定まってきて、気になるエラーもないので、最後は初めてこのツールを触る人が操作を迷いにくいように説明文を入れてもらいました。

ところが更に欲が出て、さらに機能を追加してもらいました。

QRドットの形状を変更できるようにしたい
QRコードの個別設定でQRコードの真ん中に任意でアップロードしたロゴ画像や、絵文字を入れれる機能追加して

コンビニでネットプリントしようとしたら30MB以下じゃないとアップロードできなかったので、ダウンロードできる画質の調整をしてもらいました。

PDFのダウンロードできるファイルサイズを30.0MBまでに抑えてほしい

過程をまとめたプロンプト公開

プロンプト:可愛い二次元バーコードシールジェネレーター開発指示書
あなたは優秀なフロントエンド開発者AIです。以下の要件と追加機能を段階的に満たしながら、最終的に一つの自己完結したHTMLファイルとして「可愛い二次元バーコードシールジェネレーター」を開発してください。UI/UXの観点から、親しみやすく直感的なデザインを心がけてください。

フェーズ1:基本骨格の実装
目的: 手帳に貼るような可愛いシール風の二次元バーコードを作成し、A4用紙にレイアウトして印刷できるWebサイトを構築する。

基本レイアウト: 画面を左右に分割し、左側に操作パネル、右側にA4用紙のプレビューエリアを配置する。

基本機能:

URLやテキストを入力して二次元バーコードを生成し、リストに追加する機能。

生成した二次元バーコードをA4プレビューに表示する機能。

プレビュー内容をJPGおよびPDF形式でダウンロードする機能。

フェーズ2:デザイン機能の拡張
複数コード対応: 複数の異なる二次元バーコードをリストに追加・管理できるようにする。

全体デザイン設定: 個別設定ではなく、すべてのシールに共通のデザインを適用する「全体設定」パネルを設ける。

枠線カスタマイズ:

太さ: mm単位で調整できるスライダーを実装する。

色: カラーピッカーで色を自由に変更できるようにする。

種類: 「実線」「点線」「破線」「二重線」から選択できるようにする。

角の形: 枠線の角を「角丸」と「直角」で切り替えられるボタンを実装する。

二次元バーコード本体のカスタマイズ:

ドットの形: コードを構成する点(ドット)の形状を「四角」「丸」「角丸」など、複数のスタイルから選択できるようにする。

色: ドットの色と背景色をそれぞれカラーピッカーで変更できるようにする。

余白: 二次元バーコード本体とその周りの余白(マージン)をmm単位で調整できるスライダーを実装する。

フェーズ3:個別設定と高度なカスタマイズ
個別サイズ調整: リストに追加された各二次元バーコードの「本体サイズ」を、個別のスライダーでmm単位で調整できるようにする。

中央ロゴ・絵文字機能:

各二次元バーコードの中央に、任意のロゴ画像または絵文字を配置できる機能を追加する。

ロゴ: 個別に画像をアップロードできるようにする。アップロード後はファイル名を表示し、選択されていることが分かるようにする。

絵文字: 文字入力ではなく、ポップアップ表示されるパネルから好きな絵文字をクリックして選択できる「絵文字ピッカー」を実装する。

ロゴや絵文字をクリアする機能も設ける。

フェーズ4:UI/UXの向上と仕上げ
プレビュー操作: A4プレビュー上の二次元バーコードをドラッグ&ドロップで自由に配置できるようにする。「プレビュー上のシールはドラッグで移動できます」といった趣旨のヒントを分かりやすい位置に表示する。

レイアウト補助: ボタン一つで、プレビュー上の全シールの配置を左上から綺麗に整列させる「レイアウトをリセット」機能を実装する。

サイズ表示: 各シールの個別設定カード内に、枠線や余白、ラベルを含めた最終的な「シールサイズ(幅×高さ mm)」をリアルタイムで表示する。

エラーハンドリング: テキスト未入力で「追加」ボタンを押した場合、コンソールエラーではなく、入力欄の下に「入力してください」というメッセージを画面上に表示する。

ダウンロード品質:

プレビューの見た目とダウンロードしたファイルが完全に一致するように調整する。

PDFのファイルサイズが過度に大きくならないよう、30MB以下を目安に圧縮率を調整する。

用語の統一: ユーザーが目にするUI上の「QRコード」という表記は、すべて「二次元バーコード」に統一する。

最終成果物:
上記のすべての要件を満たした、単一のHTMLファイル。