リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 名刺ジェネレーター CardForge
名刺デザインのランダム生成ボタンの追加
## 1. 目的
ユーザーが「何から始めればいいか分からない」という最初のハードルを下げるため、ボタン1クリックで現在の入力テキストを維持しつつ、テンプレート・背景色・文字色・アクセントカラー・フォントをランダムに組み合わせた名刺デザインを即座に生成する機能を追加する。テキストを既に入力済みのユーザーが「違うデザインを試したい」というニーズにも応える。
## 2. 具体的な仕様
### UI配置
- プレビューパネル(`.cf-preview-wrap`)の `.cf-actions` ボタン列に「🎲 ランダム生成」ボタン(`.btn btn-sub` スタイル)を追加する。
- 既存の「PNG (表面)」「PDF (両面)」などのダウンロードボタンと横並びに配置。スマホでは折り返して全幅に近い形で表示。
### ランダム生成ロジック(すべてクライアントサイドJS)
1. **テンプレート**: 既存30テンプレートからランダムに1件選択(現在と同じテンプレートになる場合は再抽選を1回だけ行う)。
2. **カラー**: 選択したテンプレートのデフォルト配色を基準に、以下2パターンからランダムに1つ選ぶ:
- テンプレートのデフォルト配色をそのまま適用(60%の確率)
- 事前定義したアクセントカラーパレット(20色程度)からランダムに1色を選び、アクセントカラーのみ差し替え(40%の確率)
3. **フォント**: `FONTS` の10書体からランダムに1つ選択。
4. **fontScale**: 90・95・100・105・110 の5段階からランダムに選択。
5. **テキスト・アイコン・QR・裏面設定**: 変更しない(ユーザー入力を保持)。
### アクセントカラーパレット(事前定義、JS定数)
```js
var RANDOM_ACCENTS = [
'#e94560','#f078b0','#c792ea','#2563eb','#0f766e',
'#1f6feb','#d4a032','#10b981','#a855f7','#22d3ee',
'#ff7043','#3f6fb0','#c9772f','#d98aa8','#1f6f8b',
'#6ed0a8','#f3a08a','#8a6d2f','#2f81f7','#495867'
];
```
### 処理フロー
1. 「🎲 ランダム生成」クリック
2. 上記ロジックでテンプレート・カラー・フォントを決定
3. `state` オブジェクト(テンプレートID・colors・font・fontScale)を上書き
4. 既存の `applyTemplate(tpl)` および `renderPreview()` を呼び出してプレビューを即座に更新
5. テンプレートタブのサムネイル選択状態(`.is-active`)・カラーピッカー・フォントボタンのUI状態も同期更新
6. ステータスメッセージ(`.cf-status`)に「✨ ランダムデザインを生成しました」を1.5秒表示
7. LocalStorage への自動保存は既存の保存タイミング(入力変更後)に任せる(ランダム生成時に即保存しない)
## 3. 既存機能との整合
- テキスト・QR・裏面・アイコン・マイデザイン・共有URL・印刷シートPDFなどの既存機能は一切変更しない。
- `state` の上書きは既存の `applyTemplate` と同じパスを通るため、SVG描画ロジックへの影響はない。
- カラーピッカーのhex入力欄(`#c-bg-hex` 等)も既存の `syncColorInputs()` 相当の処理で同期するため、カラータブを開いても表示が壊れない。
- スマホ表示では `.cf-actions` が `flex-wrap: wrap` のため、ボタンが自動的に折り返して表示される(CSS追加不要)。
## 4. 実装ファイル
- `assets/cardforge.js`: ランダム生成ロジックとボタンのイベントリスナーを追加(約40行)
- `pages/home.php`: `.cf-actions` 内に `<button type="button" class="btn btn-sub" id="cf-random">🎲 ランダム生成</button>` を追加(1行)
- `assets/cardforge.css`: 変更不要(既存の `.btn-sub` スタイルをそのまま利用)
ユーザーが「何から始めればいいか分からない」という最初のハードルを下げるため、ボタン1クリックで現在の入力テキストを維持しつつ、テンプレート・背景色・文字色・アクセントカラー・フォントをランダムに組み合わせた名刺デザインを即座に生成する機能を追加する。テキストを既に入力済みのユーザーが「違うデザインを試したい」というニーズにも応える。
## 2. 具体的な仕様
### UI配置
- プレビューパネル(`.cf-preview-wrap`)の `.cf-actions` ボタン列に「🎲 ランダム生成」ボタン(`.btn btn-sub` スタイル)を追加する。
- 既存の「PNG (表面)」「PDF (両面)」などのダウンロードボタンと横並びに配置。スマホでは折り返して全幅に近い形で表示。
### ランダム生成ロジック(すべてクライアントサイドJS)
1. **テンプレート**: 既存30テンプレートからランダムに1件選択(現在と同じテンプレートになる場合は再抽選を1回だけ行う)。
2. **カラー**: 選択したテンプレートのデフォルト配色を基準に、以下2パターンからランダムに1つ選ぶ:
- テンプレートのデフォルト配色をそのまま適用(60%の確率)
- 事前定義したアクセントカラーパレット(20色程度)からランダムに1色を選び、アクセントカラーのみ差し替え(40%の確率)
3. **フォント**: `FONTS` の10書体からランダムに1つ選択。
4. **fontScale**: 90・95・100・105・110 の5段階からランダムに選択。
5. **テキスト・アイコン・QR・裏面設定**: 変更しない(ユーザー入力を保持)。
### アクセントカラーパレット(事前定義、JS定数)
```js
var RANDOM_ACCENTS = [
'#e94560','#f078b0','#c792ea','#2563eb','#0f766e',
'#1f6feb','#d4a032','#10b981','#a855f7','#22d3ee',
'#ff7043','#3f6fb0','#c9772f','#d98aa8','#1f6f8b',
'#6ed0a8','#f3a08a','#8a6d2f','#2f81f7','#495867'
];
```
### 処理フロー
1. 「🎲 ランダム生成」クリック
2. 上記ロジックでテンプレート・カラー・フォントを決定
3. `state` オブジェクト(テンプレートID・colors・font・fontScale)を上書き
4. 既存の `applyTemplate(tpl)` および `renderPreview()` を呼び出してプレビューを即座に更新
5. テンプレートタブのサムネイル選択状態(`.is-active`)・カラーピッカー・フォントボタンのUI状態も同期更新
6. ステータスメッセージ(`.cf-status`)に「✨ ランダムデザインを生成しました」を1.5秒表示
7. LocalStorage への自動保存は既存の保存タイミング(入力変更後)に任せる(ランダム生成時に即保存しない)
## 3. 既存機能との整合
- テキスト・QR・裏面・アイコン・マイデザイン・共有URL・印刷シートPDFなどの既存機能は一切変更しない。
- `state` の上書きは既存の `applyTemplate` と同じパスを通るため、SVG描画ロジックへの影響はない。
- カラーピッカーのhex入力欄(`#c-bg-hex` 等)も既存の `syncColorInputs()` 相当の処理で同期するため、カラータブを開いても表示が壊れない。
- スマホ表示では `.cf-actions` が `flex-wrap: wrap` のため、ボタンが自動的に折り返して表示される(CSS追加不要)。
## 4. 実装ファイル
- `assets/cardforge.js`: ランダム生成ロジックとボタンのイベントリスナーを追加(約40行)
- `pages/home.php`: `.cf-actions` 内に `<button type="button" class="btn btn-sub" id="cf-random">🎲 ランダム生成</button>` を追加(1行)
- `assets/cardforge.css`: 変更不要(既存の `.btn-sub` スタイルをそのまま利用)
💬 返信 (3)
🛠 開発を開始しました (機能追加 cardforge)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「名刺ジェネレーター CardForge」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=cardforge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/cardforge/
ご利用ありがとうございます!
ご要望いただいた「名刺ジェネレーター CardForge」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=cardforge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/cardforge/
ご利用ありがとうございます!
Echo
Iris