Skip to content

Commit 68f8e98

Browse files
authored
Merge pull request #9 from soranjiro/add/theme/standard-fall
create standard theme
2 parents 46894e3 + ba31b09 commit 68f8e98

14 files changed

Lines changed: 1721 additions & 140 deletions

File tree

.github/copilot-instructions.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1-
Mind these key points
1+
## Mind these key points
22
- light web site
33
- update readability
4+
- Do not write comments, you can write English comments if you should
5+
6+
## Commit message
7+
- use conventional commit message
8+
```
9+
<type>(<scope>): <subject>
10+
```

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,3 +152,6 @@ dist/
152152

153153
# SvelteKit build cache
154154
**/.svelte-kit/
155+
156+
# Playwright MCP
157+
.playwright-mcp

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ pnpm deploy
9292
現在利用可能なテーマ:
9393

9494
- **Minimal**: シンプルで必要最小限の機能
95-
- **Standard**: 標準的な機能セット (タイムライン + チェックリスト + 予算管理)
95+
- **AI Generated**: AI生成デザイン
96+
- **Standard Autumn**: 秋色のやさしい配色で読みやすさ重視
9697

9798
## 📄 ライセンス
9899

apps/web/src/lib/themes/standard/ItineraryView.svelte renamed to apps/web/src/lib/themes/ai-generated/ItineraryView.svelte

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -115,47 +115,47 @@
115115
}
116116
</script>
117117

118-
<div class="standard-theme">
119-
<div class="standard-container">
120-
<nav class="standard-nav">
118+
<div class="ai-generated-theme">
119+
<div class="ai-generated-container">
120+
<nav class="ai-generated-nav">
121121
<button
122122
type="button"
123123
onclick={() => goto("/")}
124-
class="standard-home-btn"
124+
class="ai-generated-home-btn"
125125
title="ホームに戻る"
126126
>
127127
← ホーム
128128
</button>
129129
</nav>
130130

131-
<header class="standard-header">
132-
<div class="standard-header-content">
131+
<header class="ai-generated-header">
132+
<div class="ai-generated-header-content">
133133

134134
{#if isEditingTitle}
135135
<input
136136
type="text"
137137
bind:value={editedTitle}
138138
onblur={handleTitleUpdate}
139139
onkeydown={(e) => e.key === "Enter" && handleTitleUpdate()}
140-
class="standard-title-input"
140+
class="ai-generated-title-input"
141141
/>
142142
{:else}
143143
<button
144144
type="button"
145145
onclick={() => {
146146
isEditingTitle = true;
147147
}}
148-
class="standard-title-button"
148+
class="ai-generated-title-button"
149149
>
150150
✈️ {itinerary.title}
151151
</button>
152152
{/if}
153153

154-
<div class="standard-controls">
154+
<div class="ai-generated-controls">
155155
<select
156156
value={itinerary.theme_id}
157157
onchange={handleThemeChange}
158-
class="standard-select"
158+
class="ai-generated-select"
159159
>
160160
{#each themes as theme}
161161
<option value={theme.id}>{theme.name}</option>
@@ -165,45 +165,45 @@
165165
</div>
166166
</header>
167167

168-
<div class="standard-add-step">
168+
<div class="ai-generated-add-step">
169169
{#if isAddingStep}
170170
<form
171-
class="standard-form"
171+
class="ai-generated-form"
172172
onsubmit={(e) => {
173173
e.preventDefault();
174174
handleAddStep();
175175
}}
176176
>
177-
<h3 class="standard-form-title">✨ 新しい予定を追加</h3>
178-
<div class="standard-form-grid">
177+
<h3 class="ai-generated-form-title">✨ 新しい予定を追加</h3>
178+
<div class="ai-generated-form-grid">
179179
<input
180180
type="text"
181181
bind:value={newStep.title}
182182
placeholder="予定のタイトル *"
183-
class="standard-input"
183+
class="ai-generated-input"
184184
required
185185
/>
186-
<div class="standard-datetime">
186+
<div class="ai-generated-datetime">
187187
<input
188188
type="date"
189189
bind:value={newStep.date}
190-
class="standard-input"
190+
class="ai-generated-input"
191191
required
192192
/>
193-
<div class="standard-time-picker">
193+
<div class="ai-generated-time-picker">
194194
<select
195195
bind:value={newStepHour}
196-
class="standard-select-time"
196+
class="ai-generated-select-time"
197197
required
198198
>
199199
{#each Array.from( { length: 24 }, (_, i) => String(i).padStart(2, "0"), ) as hour}
200200
<option value={hour}>{hour}</option>
201201
{/each}
202202
</select>
203-
<span class="standard-time-separator">:</span>
203+
<span class="ai-generated-time-separator">:</span>
204204
<select
205205
bind:value={newStepMinute}
206-
class="standard-select-time"
206+
class="ai-generated-select-time"
207207
required
208208
>
209209
<option value="00">00</option>
@@ -217,23 +217,23 @@
217217
type="text"
218218
bind:value={newStep.location}
219219
placeholder="📍 場所 (任意)"
220-
class="standard-input"
220+
class="ai-generated-input"
221221
/>
222222
<textarea
223223
bind:value={newStep.notes}
224224
placeholder="📝 メモ (任意)"
225-
class="standard-textarea"
225+
class="ai-generated-textarea"
226226
rows="3"
227227
></textarea>
228228
</div>
229-
<div class="standard-form-actions">
230-
<button type="submit" class="standard-btn standard-btn-primary">
229+
<div class="ai-generated-form-actions">
230+
<button type="submit" class="ai-generated-btn ai-generated-btn-primary">
231231
追加する
232232
</button>
233233
<button
234234
type="button"
235235
onclick={cancelAddStep}
236-
class="standard-btn standard-btn-secondary"
236+
class="ai-generated-btn ai-generated-btn-secondary"
237237
>
238238
キャンセル
239239
</button>
@@ -244,9 +244,9 @@
244244
onclick={() => {
245245
isAddingStep = true;
246246
}}
247-
class="standard-btn-add"
247+
class="ai-generated-btn-add"
248248
>
249-
<span class="standard-btn-add-icon">+</span>
249+
<span class="ai-generated-btn-add-icon">+</span>
250250
<span>予定を追加</span>
251251
</button>
252252
{/if}

apps/web/src/lib/themes/standard/StepList.svelte renamed to apps/web/src/lib/themes/ai-generated/StepList.svelte

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -114,52 +114,52 @@
114114
</script>
115115

116116
{#if steps.length === 0}
117-
<div class="standard-empty">
118-
<div class="standard-empty-icon">📅</div>
119-
<p class="standard-empty-text">予定がまだ登録されていません</p>
120-
<p class="standard-empty-subtext">上の「+予定を追加」から始めましょう</p>
117+
<div class="ai-generated-empty">
118+
<div class="ai-generated-empty-icon">📅</div>
119+
<p class="ai-generated-empty-text">予定がまだ登録されていません</p>
120+
<p class="ai-generated-empty-subtext">上の「+予定を追加」から始めましょう</p>
121121
</div>
122122
{:else}
123-
<div class="standard-steps">
123+
<div class="ai-generated-steps">
124124
{#each groupedSteps() as [date, dateSteps], groupIndex}
125-
<div class="standard-date-group">
126-
<h2 class="standard-date-header">
127-
<span class="standard-date-icon">📅</span>
125+
<div class="ai-generated-date-group">
126+
<h2 class="ai-generated-date-header">
127+
<span class="ai-generated-date-icon">📅</span>
128128
{formatDate(date)}
129129
</h2>
130-
<div class="standard-date-steps">
130+
<div class="ai-generated-date-steps">
131131
{#each dateSteps as step, index}
132132
{#if editingStepId === step.id}
133-
<div class="standard-step standard-step-editing">
134-
<div class="standard-step-time-badge">{step.time}</div>
135-
<div class="standard-step-content">
136-
<h3 class="standard-form-title">予定を編集</h3>
137-
<div class="standard-form-grid">
133+
<div class="ai-generated-step ai-generated-step-editing">
134+
<div class="ai-generated-step-time-badge">{step.time}</div>
135+
<div class="ai-generated-step-content">
136+
<h3 class="ai-generated-form-title">予定を編集</h3>
137+
<div class="ai-generated-form-grid">
138138
<input
139139
type="text"
140140
bind:value={editedStep.title}
141141
placeholder="予定のタイトル *"
142-
class="standard-input"
142+
class="ai-generated-input"
143143
/>
144-
<div class="standard-datetime">
144+
<div class="ai-generated-datetime">
145145
<input
146146
type="date"
147147
bind:value={editedStep.date}
148-
class="standard-input"
148+
class="ai-generated-input"
149149
/>
150-
<div class="standard-time-picker">
150+
<div class="ai-generated-time-picker">
151151
<select
152152
bind:value={editStepHour}
153-
class="standard-select-time"
153+
class="ai-generated-select-time"
154154
>
155155
{#each Array.from( { length: 24 }, (_, i) => String(i).padStart(2, "0"), ) as hour}
156156
<option value={hour}>{hour}</option>
157157
{/each}
158158
</select>
159-
<span class="standard-time-separator">:</span>
159+
<span class="ai-generated-time-separator">:</span>
160160
<select
161161
bind:value={editStepMinute}
162-
class="standard-select-time"
162+
class="ai-generated-select-time"
163163
>
164164
<option value="00">00</option>
165165
<option value="15">15</option>
@@ -172,59 +172,59 @@
172172
type="text"
173173
bind:value={editedStep.location}
174174
placeholder="📍 場所 (任意)"
175-
class="standard-input"
175+
class="ai-generated-input"
176176
/>
177177
<textarea
178178
bind:value={editedStep.notes}
179179
placeholder="📝 メモ (任意)"
180-
class="standard-textarea"
180+
class="ai-generated-textarea"
181181
rows="3"
182182
></textarea>
183183
</div>
184-
<div class="standard-step-actions">
184+
<div class="ai-generated-step-actions">
185185
<button
186186
onclick={handleUpdate}
187-
class="standard-btn standard-btn-primary"
187+
class="ai-generated-btn ai-generated-btn-primary"
188188
>
189189
保存
190190
</button>
191191
<button
192192
onclick={cancelEdit}
193-
class="standard-btn standard-btn-secondary"
193+
class="ai-generated-btn ai-generated-btn-secondary"
194194
>
195195
キャンセル
196196
</button>
197197
</div>
198198
</div>
199199
</div>
200200
{:else}
201-
<div class="standard-step">
202-
<div class="standard-step-time-badge">{step.time}</div>
203-
<div class="standard-step-content">
204-
<div class="standard-step-header">
205-
<h3 class="standard-step-title">{step.title}</h3>
206-
<div class="standard-step-actions">
201+
<div class="ai-generated-step">
202+
<div class="ai-generated-step-time-badge">{step.time}</div>
203+
<div class="ai-generated-step-content">
204+
<div class="ai-generated-step-header">
205+
<h3 class="ai-generated-step-title">{step.title}</h3>
206+
<div class="ai-generated-step-actions">
207207
<button
208208
onclick={() => startEdit(step)}
209-
class="standard-btn-icon"
209+
class="ai-generated-btn-icon"
210210
title="編集"
211211
>
212212
✏️
213213
</button>
214214
<button
215215
onclick={() => handleDelete(step.id)}
216-
class="standard-btn-icon standard-btn-danger"
216+
class="ai-generated-btn-icon ai-generated-btn-danger"
217217
title="削除"
218218
>
219219
🗑️
220220
</button>
221221
</div>
222222
</div>
223223
{#if step.location}
224-
<div class="standard-step-location">📍 {step.location}</div>
224+
<div class="ai-generated-step-location">📍 {step.location}</div>
225225
{/if}
226226
{#if step.notes}
227-
<div class="standard-step-notes">{step.notes}</div>
227+
<div class="ai-generated-step-notes">{step.notes}</div>
228228
{/if}
229229
</div>
230230
</div>
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)