oh-my-design-cli 1.8.1 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.ja.md +4 -4
  2. package/README.ko.md +6 -6
  3. package/README.md +6 -6
  4. package/README.zh-TW.md +4 -4
  5. package/data/reference-fingerprints.json +983 -23
  6. package/package.json +1 -1
  7. package/web/references/bito/DESIGN.md +394 -0
  8. package/web/references/cashapp/DESIGN.md +449 -0
  9. package/web/references/cuboai/DESIGN.md +435 -0
  10. package/web/references/cybozu/DESIGN.md +453 -0
  11. package/web/references/datadog/DESIGN.md +441 -0
  12. package/web/references/digital-agency-jp/DESIGN.md +439 -0
  13. package/web/references/dmm/DESIGN.md +455 -0
  14. package/web/references/gaudiy/DESIGN.md +387 -0
  15. package/web/references/gitlab/DESIGN.md +546 -0
  16. package/web/references/goodpatch/DESIGN.md +429 -0
  17. package/web/references/headspace/DESIGN.md +505 -0
  18. package/web/references/heptabase/DESIGN.md +448 -0
  19. package/web/references/iicombined/DESIGN.md +421 -0
  20. package/web/references/maicoin/DESIGN.md +484 -0
  21. package/web/references/mailchimp/DESIGN.md +450 -0
  22. package/web/references/mikan/DESIGN.md +450 -0
  23. package/web/references/moze/DESIGN.md +423 -0
  24. package/web/references/ncsoft/DESIGN.md +488 -0
  25. package/web/references/nhn/DESIGN.md +441 -0
  26. package/web/references/nintendo/DESIGN.md +445 -0
  27. package/web/references/patreon/DESIGN.md +439 -0
  28. package/web/references/pepabo/DESIGN.md +486 -0
  29. package/web/references/pinkfong/DESIGN.md +450 -0
  30. package/web/references/plaid/DESIGN.md +472 -0
  31. package/web/references/portaly/DESIGN.md +441 -0
  32. package/web/references/readmoo/DESIGN.md +492 -0
  33. package/web/references/shiftup/DESIGN.md +433 -0
  34. package/web/references/sparkful/DESIGN.md +434 -0
  35. package/web/references/speeda/DESIGN.md +422 -0
  36. package/web/references/spindle/DESIGN.md +470 -0
  37. package/web/references/spoqa/DESIGN.md +422 -0
  38. package/web/references/stibee/DESIGN.md +424 -0
  39. package/web/references/tmap/DESIGN.md +423 -0
  40. package/web/references/twilio/DESIGN.md +515 -0
  41. package/web/references/twitch/DESIGN.md +431 -0
  42. package/web/references/vocus/DESIGN.md +450 -0
  43. package/web/references/workday/DESIGN.md +452 -0
  44. package/web/references/wrtn/DESIGN.md +454 -0
  45. package/web/references/xrex/DESIGN.md +475 -0
  46. package/web/references/zepeto/DESIGN.md +463 -0
@@ -0,0 +1,434 @@
1
+ ---
2
+ id: sparkful
3
+ name: Fourdesire
4
+ country: TW
5
+ category: design-tools
6
+ homepage: "https://sparkful.app/"
7
+ primary_color: "#2dd4bf"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=sparkful.app&sz=128"
11
+ verified: "2026-06-17"
12
+ added: "2026-06-17"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: live-extract
16
+ extracted: "2026-06-17"
17
+ note: "Primary 'action' is a tri-color gradient pill (amber #fbbf24 -> lime #a3e635 -> teal #2dd4bf); primary_color set to the gradient terminus teal #2dd4bf. Neutral system is Tailwind gray ladder on white; per-app pages add a Walkr teal accent family (#215468 / #00455b / #a5f3fc). Type is Montserrat with system-CJK fallback for Traditional Chinese."
18
+ colors:
19
+ primary: "#2dd4bf"
20
+ gradient-start: "#fbbf24"
21
+ gradient-mid: "#a3e635"
22
+ gradient-end: "#2dd4bf"
23
+ ink: "#000000"
24
+ heading: "#374151"
25
+ strong: "#111827"
26
+ body: "#4b5563"
27
+ muted: "#6b7280"
28
+ faint: "#9ca3af"
29
+ canvas: "#ffffff"
30
+ surface: "#f3f4f6"
31
+ hairline: "#e5e7eb"
32
+ panel-dark: "#1f2937"
33
+ amber-glow: "#fffbeb"
34
+ walkr-green: "#55b67c"
35
+ walkr-teal: "#215468"
36
+ walkr-teal-deep: "#00455b"
37
+ walkr-cyan: "#a5f3fc"
38
+ walkr-surface: "#e3efee"
39
+ on-primary: "#ffffff"
40
+ typography:
41
+ family: { sans: "Montserrat", cjk-fallback: "system Traditional-Chinese (PingFang TC / Noto Sans TC)" }
42
+ display-hero: { size: 48, weight: 700, lineHeight: 1.0, tracking: 0, use: "Top hero headline, Montserrat Bold" }
43
+ section: { size: 36, weight: 700, lineHeight: 1.11, tracking: -0.9, use: "Section headline, Montserrat Bold" }
44
+ feature: { size: 30, weight: 800, lineHeight: 1.2, tracking: -0.75, use: "Feature block titles, Montserrat ExtraBold" }
45
+ card-title: { size: 24, weight: 700, lineHeight: 1.33, use: "App/feature card heads" }
46
+ eyebrow: { size: 16, weight: 800, lineHeight: 1.5, tracking: -0.4, use: "Small all-emphasis eyebrow labels" }
47
+ body: { size: 16, weight: 400, lineHeight: 1.5, use: "Standard reading + nav text" }
48
+ button: { size: 18, weight: 600, lineHeight: 1.5, use: "Primary CTA pill label" }
49
+ button-sm: { size: 12, weight: 600, lineHeight: 1.5, use: "Compact Download pill label" }
50
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 28, section: 48 }
51
+ rounded: { sm: 8, md: 12, lg: 20, xl: 24, full: 9999 }
52
+ shadow:
53
+ none: "none"
54
+ components:
55
+ button-primary: { type: button, fg: "#ffffff", radius: "9999px", padding: "14px 28px", height: "56px", font: "18px / 600 Montserrat", use: "Hero CTA 'Explore SPARKFUL Apps' — tri-color gradient #fbbf24 -> #a3e635 -> #2dd4bf, white text, full pill" }
56
+ button-download: { type: button, fg: "#ffffff", radius: "9999px", padding: "12px 24px", font: "16px / 600 Montserrat", use: "App-page 'Download' pill — same tri-color gradient fill, white text" }
57
+ button-white-pill: { type: button, bg: "#ffffff", fg: "#000000", radius: "9999px", padding: "12px 24px", font: "16px / 600 Montserrat", use: "Secondary pill on colored app sections ('Explore the planets')" }
58
+ nav-link: { type: tab, fg: "#111827", font: "16px / 400 Montserrat", use: "Top nav app/menu item; 76px-tall transparent header on white", active: "darkens to #000000 ink" }
59
+ card-app: { type: card, bg: "#ffffff", fg: "#374151", radius: "12px", use: "App preview card on white; separated by tint not shadow (shadowless)" }
60
+ card-surface: { type: card, bg: "#f3f4f6", fg: "#374151", radius: "20px", use: "Tinted feature panel on the gray-100 'bg-light' band" }
61
+ panel-dark: { type: card, bg: "#1f2937", fg: "#ffffff", radius: "24px", use: "Dark slate phone-frame / media panel" }
62
+ media-thumb: { type: card, bg: "#e5e7eb", radius: "20px 20px 0px 0px", use: "Article/video thumbnail, top-rounded only" }
63
+ footer-link: { type: listItem, fg: "#111827", font: "16px / 400 Montserrat", use: "Footer + app-list navigation link" }
64
+ components_harvested: true
65
+ ---
66
+
67
+ # Design System Inspiration of Fourdesire
68
+
69
+ ## 1. Visual Theme & Atmosphere
70
+
71
+ Fourdesire — the Taipei studio that publishes its apps under the **SPARKFUL** brand (Walkr, Plant Nanny 植物保姆, Fortune City 記帳城市, To-Do Adventure 記事探險, Book Morning!) — designs around one stated idea: *"Spark the fun in the ordinary."* The marketing system at `sparkful.app` is deliberately bright, weightless, and hand-illustrated-adjacent. The canvas is pure white (`#ffffff`) with a soft cool-gray band (`#f3f4f6`, the site's `bg-light` section) doing the work of segmenting content. Text is an unfussy near-black-to-slate Tailwind ladder — pure black `#000000` for the biggest hero words, slate `#374151` for section heads, gray `#4b5563`/`#6b7280` for body and captions — never a heavy institutional navy. The mood is a children's-book cheerfulness rendered with restraint: lots of air, no clutter, no hard sell.
72
+
73
+ The signature move is the **primary action**. Every "do this" control — the hero's *Explore SPARKFUL Apps* button, every *Download* pill — is a fully rounded `9999px` capsule filled with the same left-to-right **tri-color gradient: amber `#fbbf24` → lime `#a3e635` → teal `#2dd4bf`**, with white text at weight 600. That single warm-to-cool sweep is the brand's entire color personality compressed into one shape; it reads as playful, energetic, and unmistakably "press me." The primary color token is set to the gradient's teal terminus `#2dd4bf` so a single solid swatch can stand in for the sweep.
74
+
75
+ What distinguishes Fourdesire from louder consumer apps is its **flatness and restraint with depth**. Live inspection found `box-shadow: none` across the hero, nav, app cards, and panels — separation comes from background tint (`#f3f4f6`), thin `#e5e7eb` hairlines, generous `12px`–`24px` rounding, and the occasional dark slate panel (`#1f2937`, 24px radius) used as a phone-frame or media block. Ambient warmth is supplied by a large amber-50 glow blob (`#fffbeb`) behind the hero rather than by shadows. Per-app pages then layer in a world-specific accent — Walkr's space theme brings a teal/cyan family (`#215468`, `#00455b`, `#a5f3fc`) over a soft teal surface (`#e3efee`) — so each app keeps the SPARKFUL chassis while wearing its own color world. Typography is **Montserrat** throughout (Bold/ExtraBold for headlines, regular for body); Traditional-Chinese copy ("創造樂趣,啟動向上", "歡迎來到「樂趣電力公司」") renders through the system CJK fallback after Montserrat, so the Latin geometry leads and the Han characters follow in the platform's PingFang/Noto TC face.
76
+
77
+ **Key Characteristics:**
78
+ - Tri-color gradient pill (`#fbbf24` → `#a3e635` → `#2dd4bf`) as the one-and-only primary action — full `9999px` capsule, white text, weight 600
79
+ - Montserrat everywhere: Bold/ExtraBold (700/800) for display, regular (400) for body and nav; system CJK fallback for Traditional Chinese
80
+ - Flat, shadowless system — `box-shadow: none`; separation via `#f3f4f6` tint + `#e5e7eb` hairlines + soft rounding
81
+ - Tailwind gray text ladder — `#000000` → `#111827` → `#374151` → `#4b5563` → `#6b7280` → `#9ca3af`
82
+ - Generous rounding scale — `12px` cards, `20px`/`24px` panels, `9999px` pills
83
+ - Dark slate `#1f2937` panels (24px radius) as phone-frames / media blocks, not for chrome
84
+ - Amber-50 (`#fffbeb`) ambient glow as warmth instead of drop shadows
85
+ - Per-app accent worlds layered on the white chassis (Walkr teal `#215468` / deep `#00455b` / cyan `#a5f3fc` over surface `#e3efee`)
86
+
87
+ ## 2. Color Palette & Roles
88
+
89
+ ### Primary Action (Gradient)
90
+ - **Gradient Start — Amber** (`#fbbf24`): Left edge of the primary-CTA gradient. Warm, sunny entry.
91
+ - **Gradient Mid — Lime** (`#a3e635`): Center of the gradient sweep. The "spark" of energy.
92
+ - **Gradient End — Teal** (`#2dd4bf`): Right edge of the gradient and the system's solid primary token. Cool, fresh resolution.
93
+ - The three appear only together, as `linear-gradient(to right, #fbbf24, #a3e635, #2dd4bf)`, on full-pill buttons with white (`#ffffff`) text.
94
+
95
+ ### Ink & Text Ladder
96
+ - **Ink Black** (`#000000`): Largest hero words ("Spark the fun in the ordinary"), logotype.
97
+ - **Strong Gray** (`#111827`): Nav items, footer links, app names — Tailwind gray-900.
98
+ - **Heading Slate** (`#374151`): Section and feature headlines — Tailwind gray-700.
99
+ - **Body Gray** (`#4b5563`): Secondary copy — Tailwind gray-600.
100
+ - **Muted Gray** (`#6b7280`): Captions, supporting subheads, metadata — Tailwind gray-500.
101
+ - **Faint Gray** (`#9ca3af`): Lowest-emphasis labels, placeholder-level text — Tailwind gray-400.
102
+
103
+ ### Neutral & Surface
104
+ - **Canvas White** (`#ffffff`): Page background, app cards, secondary white pills, text on gradient/dark.
105
+ - **Surface Gray** (`#f3f4f6`): The `bg-light` tinted band and tinted feature panels — Tailwind gray-100.
106
+ - **Hairline** (`#e5e7eb`): Borders, dividers, media-thumbnail fills — Tailwind gray-200. The primary separation device in a shadowless system.
107
+ - **Panel Dark** (`#1f2937`): Dark slate phone-frame / media panels at 24px radius — Tailwind gray-800.
108
+ - **Amber Glow** (`#fffbeb`): Large soft circular glow behind the hero — ambient warmth, not a shadow.
109
+
110
+ ### Per-App Accent (Walkr world)
111
+ - **Walkr Green** (`#55b67c`): Walkr brand green, seen as a rotated tinted band (≈0.2 alpha).
112
+ - **Walkr Teal** (`#215468`): Deep space-teal panel background on the Walkr page.
113
+ - **Walkr Teal Deep** (`#00455b`): Heading color on Walkr's planet sections.
114
+ - **Walkr Cyan** (`#a5f3fc`): Bright cyan heading on the dark "Explore the Boundless Universe" block.
115
+ - **Walkr Surface** (`#e3efee`): Soft pale-teal surface tint for Walkr content cards.
116
+
117
+ ## 3. Typography Rules
118
+
119
+ ### Font Family
120
+ - **Latin / primary**: `Montserrat, sans-serif` — used for every text element, display through body.
121
+ - **Traditional Chinese**: no explicit CJK family is declared; Han characters fall through to the **system CJK stack** after Montserrat (PingFang TC on Apple platforms, Noto Sans TC / Microsoft JhengHei on others). Latin geometry leads, Han follows in the platform face.
122
+
123
+ ### Hierarchy
124
+
125
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
126
+ |------|------|------|--------|-------------|----------------|-------|
127
+ | Display Hero | Montserrat | 48px (3.00rem) | 700 | 1.00 (48px) | normal | Top hero "Spark the fun in the ordinary" |
128
+ | Section Heading | Montserrat | 36px (2.25rem) | 700 | 1.11 (40px) | -0.9px | "Change Begins with fun!" |
129
+ | Feature Title | Montserrat | 30px (1.88rem) | 800 | 1.20 (36px) | -0.75px | "Spark Joy in Routines", "Play for a Better YOU" |
130
+ | Card Title | Montserrat | 24px (1.50rem) | 700 | 1.33 (32px) | normal | App / feature card heads |
131
+ | Eyebrow | Montserrat | 16px (1.00rem) | 800 | 1.50 (24px) | -0.4px | Small all-emphasis label ("Live in a World of...") |
132
+ | Body / Nav | Montserrat | 16px (1.00rem) | 400 | 1.50 (24px) | normal | Reading text, nav items, app menu |
133
+ | Button | Montserrat | 18px (1.13rem) | 600 | 1.50 | normal | Primary CTA pill label |
134
+ | Button Small | Montserrat | 12px (0.75rem) | 600 | 1.50 | normal | Compact Download pill |
135
+
136
+ ### Principles
137
+ - **One typeface, weight as hierarchy**: Montserrat does every job; the jump from 700/800 (display) to 400 (body) carries the entire hierarchy. No second display face.
138
+ - **Tight tracking on big text**: headlines pull in (-0.9px at 36px, -0.75px at 30px); body and nav stay at normal tracking.
139
+ - **ExtraBold for the feature voice**: the 800 weight at 30px is the most distinctive typographic choice — punchy, friendly, almost poster-like.
140
+ - **CJK rides the system**: Traditional-Chinese copy inherits the platform's Han font, so the brand never ships a heavy CJK webfont — keeping the playful, fast feel intact in both languages.
141
+
142
+ ## 4. Component Stylings
143
+
144
+ ### Buttons
145
+
146
+ **Primary CTA (Gradient Pill)**
147
+ - Background: `linear-gradient(to right, #fbbf24, #a3e635, #2dd4bf)`
148
+ - Text: `#ffffff`
149
+ - Radius: 9999px
150
+ - Padding: 14px 28px
151
+ - Height: 56px
152
+ - Font: 18px / 600 / Montserrat
153
+ - Use: Hero primary action ("Explore SPARKFUL Apps") — the single "action" control
154
+
155
+ **Download Pill (Compact)**
156
+ - Background: `linear-gradient(to right, #fbbf24, #a3e635, #2dd4bf)`
157
+ - Text: `#ffffff`
158
+ - Radius: 9999px
159
+ - Padding: 12px 24px
160
+ - Font: 16px / 600 / Montserrat
161
+ - Use: App-page and card "Download" pills — same gradient, smaller scale
162
+
163
+ **Secondary White Pill**
164
+ - Background: `#ffffff`
165
+ - Text: `#000000`
166
+ - Radius: 9999px
167
+ - Padding: 12px 24px
168
+ - Font: 16px / 600 / Montserrat
169
+ - Use: Secondary action on colored app sections ("Explore the planets" on Walkr)
170
+
171
+ ### Inputs & Forms
172
+ - The marketing surface is conversion-only (app-store hand-off); no live form inputs were present to measure on the inspected surfaces. Inputs are therefore not specced here rather than guessed.
173
+
174
+ ### Cards & Containers
175
+
176
+ **App Card (White)**
177
+ - Background: `#ffffff`
178
+ - Text: `#374151`
179
+ - Radius: 12px
180
+ - Use: App preview card on white; no shadow — separated by surrounding tint
181
+
182
+ **Tinted Feature Panel**
183
+ - Background: `#f3f4f6`
184
+ - Text: `#374151`
185
+ - Radius: 20px
186
+ - Use: Feature panel sitting on the gray-100 `bg-light` band
187
+
188
+ **Dark Slate Panel**
189
+ - Background: `#1f2937`
190
+ - Text: `#ffffff`
191
+ - Radius: 24px
192
+ - Use: Phone-frame / media block
193
+
194
+ **Media Thumbnail**
195
+ - Background: `#e5e7eb`
196
+ - Radius: 20px 20px 0px 0px
197
+ - Use: Article/video thumbnail, top-rounded only (sits above a white caption block)
198
+
199
+ ### Badges
200
+ - **Avatar chip**: circular `9999px` container at 40×40, gray-400 tint fill (`rgba(156,163,175,0.3)`) — used for small round article-author / icon avatars. No text badges/pills carry semantic colors on the inspected surfaces.
201
+
202
+ ### Navigation
203
+ - Background: transparent over white
204
+ - Text: `#111827`
205
+ - Font: 16px / 400 / Montserrat
206
+ - Height: 76px header row
207
+ - Active: darkens toward ink `#000000`
208
+ - Use: Top horizontal nav — app menu (Plant Nanny, Fortune City, Walkr, To-Do Adventure, Book Morning!), Articles, Support; transparent header on white, no border, no shadow
209
+
210
+ ### Footer
211
+ - Links: `#111827`, 16px / 400 / Montserrat
212
+ - Background: `#ffffff`
213
+ - Use: Footer + app-list navigation links (shadowless, hairline-separated)
214
+
215
+ ---
216
+
217
+ **Verified:** 2026-06-17 (omd:add-reference CREATE — Tier 1 live inspect, 3 brand-owned surfaces)
218
+ **Tier 1 sources:** https://sparkful.app/ (homepage — hero CTA, nav, footer, color frequency); https://sparkful.app/zh-TW/about (brand About / Traditional-Chinese surface — "歡迎來到「樂趣電力公司」"); https://sparkful.app/walkr (per-app page — Walkr accent world, secondary pill, card colors)
219
+ **Tier 2 sources:** getdesign.md/sparkful + getdesign.md/fourdesire — NOT FOUND (no entry); styles.refero.design ?q=sparkful / ?q=fourdesire — NOT LISTED (search returned only generic browse grid, no SPARKFUL/Fourdesire style)
220
+ **Conflicts unresolved:** none
221
+
222
+ ## 5. Layout Principles
223
+
224
+ ### Spacing System
225
+ - Base unit: 4px
226
+ - Scale: 4px, 8px, 12px, 16px, 20px, 24px, 28px, 48px
227
+ - Notable: app-menu nav buttons use a 20px / 12px asymmetric padding; CTA pills use 14px / 28px (hero) and 12px / 24px (compact)
228
+
229
+ ### Grid & Container
230
+ - Centered single-column hero anchored by the 48px Montserrat headline and the gradient CTA pill
231
+ - App entries presented as a horizontal menu row (Plant Nanny / Fortune City / Walkr / To-Do Adventure / Book Morning!) each at 76px tall
232
+ - Feature sections alternate white (`#ffffff`) and tinted gray (`#f3f4f6` `bg-light`) full-width bands
233
+ - Cards and panels round generously (12px / 20px / 24px); phone-frame previews use the dark slate panel
234
+
235
+ ### Whitespace Philosophy
236
+ - **Air over density**: generous vertical rhythm; the page breathes like a picture book, never crowded
237
+ - **Flat segmentation**: sections separate by background tint (`#f3f4f6` vs `#ffffff`) and `#e5e7eb` hairlines, not elevation
238
+ - **One bright moment per view**: the gradient pill is the single saturated element in most viewports; everything else is neutral
239
+
240
+ ### Border Radius Scale
241
+ - Small (8px): inner elements, small containers
242
+ - Medium (12px): app cards — the workhorse
243
+ - Large (20px): tinted feature panels, media thumbnails (top-only)
244
+ - XL (24px): dark slate phone-frame panels
245
+ - Full (9999px): all pills, avatar chips
246
+
247
+ ## 6. Depth & Elevation
248
+
249
+ | Level | Treatment | Use |
250
+ |-------|-----------|-----|
251
+ | Flat (Level 0) | No shadow | Page background, inline text, most surfaces |
252
+ | Glow (Level 0.5) | `#fffbeb` amber-50 soft circular glow | Ambient warmth behind the hero (decorative, not elevation) |
253
+ | Tint (Level 1) | `#f3f4f6` background shift | Card/section separation without elevation |
254
+ | Hairline (Level 2) | `1px solid #e5e7eb` | Card outlines, dividers |
255
+ | Panel (Level 3) | `#1f2937` dark slate fill, 24px radius | Phone-frame / media block contrast |
256
+
257
+ **Shadow Philosophy**: SPARKFUL is a shadowless system. Live inspection found `box-shadow: none` across the hero, nav, app cards, footer, and panels. Depth is communicated by background tint (`#f3f4f6`), thin `#e5e7eb` hairlines, generous rounding, and color contrast — the dark slate panel (`#1f2937`) or the gradient pill — never by drop shadows. Warmth that a shadow might otherwise add comes from the ambient amber-50 (`#fffbeb`) glow behind the hero. This keeps the playful brand feeling light, fast, and illustration-friendly.
258
+
259
+ ## 7. Do's and Don'ts
260
+
261
+ ### Do
262
+ - Use the tri-color gradient pill (`#fbbf24` → `#a3e635` → `#2dd4bf`) for the single primary action — full `9999px`, white text, weight 600
263
+ - Set Montserrat everywhere; Bold/ExtraBold (700/800) for headlines, regular (400) for body and nav
264
+ - Keep depth flat — separate with `#f3f4f6` tint and `#e5e7eb` hairlines, never drop shadows
265
+ - Use the Tailwind gray ladder for text (`#000000` → `#374151` → `#6b7280`) instead of a heavy navy
266
+ - Round generously — 12px cards, 20px/24px panels, full pills
267
+ - Use the dark slate panel (`#1f2937`, 24px) for phone-frame / media contrast
268
+ - Add warmth with the amber-50 (`#fffbeb`) ambient glow, not a shadow
269
+ - Give each app its own accent world layered on the white chassis (Walkr teal `#215468` / cyan `#a5f3fc`)
270
+
271
+ ### Don't
272
+ - Use the gradient as a flat single color — its identity is the amber→lime→teal sweep; keep all three stops
273
+ - Apply drop shadows for elevation — the system is flat and shadowless
274
+ - Use a second display typeface — Montserrat does every job
275
+ - Ship a heavy CJK webfont — let Traditional Chinese ride the system Han fallback after Montserrat
276
+ - Use sharp/square corners on pills or panels — everything is softly rounded
277
+ - Spread the gradient across many elements — it is the single "action" signal; keep it scarce
278
+ - Use pure black `#000000` for body text — reserve it for the biggest hero words; body is gray `#4b5563`
279
+ - Let a per-app accent color overwrite the neutral SPARKFUL chassis — accents layer on, they don't replace
280
+
281
+ ## 8. Responsive Behavior
282
+
283
+ ### Breakpoints
284
+ | Name | Width | Key Changes |
285
+ |------|-------|-------------|
286
+ | Mobile | <640px | Single column, hero headline compresses, app menu stacks/scrolls |
287
+ | Tablet | 640-1024px | Moderate padding, 2-up feature cards |
288
+ | Desktop | 1024-1440px | Full layout, centered hero, multi-column feature bands |
289
+
290
+ ### Touch Targets
291
+ - Hero CTA pill at 56px height, full pill — an unmistakable tap target
292
+ - App-menu nav rows at 76px height with comfortable 20px/12px padding
293
+ - Download pills at 12px/24px padding, full-round for clear hit area
294
+
295
+ ### Collapsing Strategy
296
+ - Hero: 48px Montserrat headline scales down on mobile, weight 700 maintained
297
+ - App menu: horizontal row wraps/stacks on narrow viewports
298
+ - Feature bands: multi-column → stacked single column
299
+ - Tinted/white alternating sections keep full-width treatment
300
+
301
+ ### Image Behavior
302
+ - App screenshots and illustrations carry no shadow at any size (flat system)
303
+ - Media thumbnails keep top-only `20px 20px 0 0` rounding above white caption blocks
304
+ - Cards maintain 12px radius across breakpoints
305
+
306
+ ## 9. Agent Prompt Guide
307
+
308
+ ### Quick Color Reference
309
+ - Primary action: tri-color gradient `linear-gradient(to right, #fbbf24, #a3e635, #2dd4bf)`, white text
310
+ - Solid primary token: Teal (`#2dd4bf`)
311
+ - Hero headline: Ink Black (`#000000`)
312
+ - Section/feature headline: Slate (`#374151`)
313
+ - Body text: Gray (`#4b5563`); muted: (`#6b7280`); faint: (`#9ca3af`)
314
+ - Background: White (`#ffffff`); tinted band: (`#f3f4f6`)
315
+ - Hairline: (`#e5e7eb`); dark panel: (`#1f2937`); amber glow: (`#fffbeb`)
316
+ - Walkr accent: teal (`#215468`), deep (`#00455b`), cyan (`#a5f3fc`), surface (`#e3efee`)
317
+
318
+ ### Example Component Prompts
319
+ - "Create a hero on white background with a soft `#fffbeb` glow behind it. Headline at 48px Montserrat weight 700, color #000000. Below it a full-pill CTA: background `linear-gradient(to right, #fbbf24, #a3e635, #2dd4bf)`, white text, 9999px radius, 14px 28px padding, 18px Montserrat weight 600 — 'Explore Apps'. No shadow."
320
+ - "Design a feature panel on the tinted band: #f3f4f6 background, 20px radius, no shadow. Title 30px Montserrat weight 800, letter-spacing -0.75px, #374151. Body 16px Montserrat weight 400, #4b5563."
321
+ - "Build an app card: white #ffffff background, 12px radius, 1px solid #e5e7eb hairline, no shadow. App name 24px Montserrat weight 700, #374151. A compact gradient Download pill (12px 24px, 16px/600, white text)."
322
+ - "Create top nav: transparent over white, 76px tall, no border, no shadow. Montserrat 16px weight 400 links, #111827 text. A gradient CTA pill right-aligned."
323
+
324
+ ### Iteration Guide
325
+ 1. Montserrat for everything; 700/800 for headlines, 400 for body/nav
326
+ 2. The gradient pill (`#fbbf24` → `#a3e635` → `#2dd4bf`) is the single action color — keep all three stops, keep it scarce
327
+ 3. No shadows — separate with `#f3f4f6` tint and `#e5e7eb` hairlines
328
+ 4. Generous rounding — 12px cards, 20px/24px panels, full pills
329
+ 5. Text is the gray ladder (`#000000` → `#374151` → `#6b7280`), not navy
330
+ 6. Tight negative tracking on big headlines, normal on body
331
+ 7. Dark slate `#1f2937` (24px) for phone-frame / media contrast; amber-50 `#fffbeb` glow for warmth
332
+ 8. Per-app pages add an accent world (Walkr teal/cyan) on the white chassis — never replace it
333
+
334
+ ---
335
+
336
+ ## 10. Voice & Tone
337
+
338
+ SPARKFUL's voice is **warm, encouraging, and playful** — what the brand itself calls being "a wise and cheerful friend." Its own meta description reads: *"SPARKFUL lights up your life like a wise and cheerful friend. SPARKFUL's apps help you take care of your health and wellness without forgetting the fun!"* The register is upbeat without being hyper, and self-improvement is framed as play rather than discipline. The Traditional-Chinese voice is the same friend in another language — Fourdesire literally calls itself "樂趣電力公司" ("the Fun Power Company").
339
+
340
+ | Context | Tone |
341
+ |---|---|
342
+ | Hero headlines | Playful imperative. "Spark the fun in the ordinary." Light, inviting. |
343
+ | Section headlines | Warm benefit framing. "Change Begins with fun!", "Play for a Better YOU". |
344
+ | CTAs | Friendly and simple. "Explore SPARKFUL Apps", "Download". |
345
+ | Feature copy | Self-care reframed as play; gentle, never preachy. "The Most Playful Form of Self-Care". |
346
+ | Brand / About (zh-TW) | Earnest and cheerful. "創造樂趣,啟動向上" ("Create fun, spark progress"). |
347
+
348
+ **Voice samples (verbatim from live brand surfaces):**
349
+ - "Spark the fun in the ordinary" — hero headline, sparkful.app/ *(verified live 2026-06-17)*
350
+ - "Change Begins with fun!" — section headline, sparkful.app/ *(verified live 2026-06-17)*
351
+ - "The Most Playful Form of Self-Care" — feature headline, sparkful.app/ *(verified live 2026-06-17)*
352
+ - "創造樂趣,啟動向上" — About page headline, sparkful.app/zh-TW/about *(verified live 2026-06-17)*
353
+ - "歡迎來到「樂趣電力公司」" ("Welcome to the Fun Power Company") — About page, sparkful.app/zh-TW/about *(verified live 2026-06-17)*
354
+
355
+ **Forbidden register**: guilt-driven productivity pressure, clinical wellness jargon, aggressive sales urgency, exclamation-stacked hype that loses the gentle warmth. The fun must never tip into mania.
356
+
357
+ ## 11. Brand Narrative
358
+
359
+ Fourdesire (四合願) is a **Taipei, Taiwan**-based studio founded in 2012 that makes "gamified self-improvement" apps under the **SPARKFUL** brand — most famously **Walkr** (a walking game set in a galaxy of planets), **Plant Nanny 植物保姆** (drink-water habit that grows a virtual plant), **Fortune City 記帳城市** (expense tracking that builds a city), **To-Do Adventure 記事探險**, and **Book Morning!** (a story-driven alarm). The studio's premise — visible in its self-description as "樂趣電力公司," the Fun Power Company — is that lasting behavior change comes from delight, not discipline: turn the boring, healthy habit into a small game and people will keep doing it.
360
+
361
+ That thesis shapes the whole design language. Where most habit and wellness apps lean on streaks, guilt, and clinical charts, Fourdesire wraps each behavior in a hand-crafted illustrated world with its own characters and progression — drink water and a creature grows, walk and you discover a planet, log spending and a city rises. The SPARKFUL marketing site is the neutral, bright lobby for those colorful worlds: a flat white chassis, a single joyful gradient as the "press me" signal, and Montserrat's friendly geometry, so that each app's distinct color world (Walkr's space teal, Plant Nanny's greens) can shine on its own page without the brand frame competing.
362
+
363
+ What Fourdesire refuses, visible in its design: the heavy, anxious chrome of productivity software (no dense dashboards on the marketing surface, no shadow-stacked "enterprise" cards), and the dark-pattern urgency of engagement-farming apps. What it embraces: warmth, hand-made character, generous whitespace, and a single bright action — fun as the mechanism, care as the goal.
364
+
365
+ ## 12. Principles
366
+
367
+ 1. **Fun is the mechanism, not the decoration.** Self-improvement is reframed as play. *UI implication:* lead with delight (the joyful gradient, the illustrated worlds); never present a habit as a chore or a chart to be obeyed.
368
+ 2. **One bright action.** The tri-color gradient pill is the single saturated element in most views. *UI implication:* reserve the gradient for the primary CTA so the next step is unmistakable; keep everything else neutral.
369
+ 3. **Flat, light, and fast.** A picture-book feel beats decorative depth. *UI implication:* no shadows; separate with tint and hairlines; round generously; keep the page airy.
370
+ 4. **A neutral chassis, colorful worlds.** The SPARKFUL frame is quiet so each app's world can be loud. *UI implication:* keep the brand shell white/gray/Montserrat; let per-app accent palettes (Walkr teal/cyan) live inside it without overwriting it.
371
+ 5. **The wise, cheerful friend.** Encourage, don't lecture. *UI implication:* copy is warm and simple; motion and color reward progress gently — never guilt the user for a missed day.
372
+
373
+ ## 13. Personas
374
+
375
+ *Personas below are fictional archetypes informed by publicly observable SPARKFUL / Fourdesire user segments (people building healthy habits through gamified apps), not individual people.*
376
+
377
+ **陳怡君, 28, Taipei.** A designer who installed Plant Nanny to actually drink water through long studio days. Stays because the plant growing is a tiny daily delight, not a nag. Loves that the app feels made by people who care about craft.
378
+
379
+ **Marcus Lee, 34, Singapore.** A remote engineer who walks with Walkr to hit a step goal without it feeling like exercise. Treats discovering planets as the reward. Trusts the studio because the apps never guilt-trip or dark-pattern him into engagement.
380
+
381
+ **林雅婷, 41, Kaohsiung.** A parent using Fortune City 記帳城市 to make budgeting bearable — watching a city grow as she logs spending. Appreciates the gentle, cheerful tone and the absence of finance-app anxiety.
382
+
383
+ ## 14. States
384
+
385
+ | State | Treatment |
386
+ |---|---|
387
+ | **Empty (no apps explored yet)** | White canvas, warm single line in Slate (`#374151`) inviting exploration, one gradient CTA pill ("Explore SPARKFUL Apps"). No clutter, friendly tone. |
388
+ | **Empty (app list / saved, none yet)** | Muted Gray (`#6b7280`) single line in a cheerful, non-judgmental voice, with a path back to browse. |
389
+ | **Loading (content fetch)** | Skeleton blocks on the `#f3f4f6` tinted surface at final card dimensions, 12px radius. Flat pulse — no shadow shimmer (consistent with the shadowless system). |
390
+ | **Loading (in-place)** | Inline progress; previous content stays visible. No blocking spinner over the page. |
391
+ | **Error (load failed)** | Inline message in Slate (`#374151`) with a plain, warm explanation and a retry. No cold "Something went wrong" alone — keep the friendly voice. |
392
+ | **Error (form / input)** | Field-level message below the field describing what's valid, in a gentle tone — never a bare "Required". |
393
+ | **Success (action done)** | Brief inline confirmation in a cheerful tone; on app surfaces this is the delight moment (plant grows, planet found). No guilt, no pressure. |
394
+ | **Skeleton** | `#f3f4f6` blocks at final dimensions, 12px radius, flat pulse. |
395
+ | **Disabled** | Faint Gray (`#9ca3af`) text on reduced-opacity surface; the gradient pill fades rather than turning gray, to preserve the playful brand read. |
396
+
397
+ ## 15. Motion & Easing
398
+
399
+ **Durations**:
400
+
401
+ | Token | Value | Use |
402
+ |---|---|---|
403
+ | `motion-fast` | 120ms | Hover, pill press, focus |
404
+ | `motion-standard` | 240ms | Card/section reveal, sheet, dropdown |
405
+ | `motion-playful` | 360ms | Hero / illustrated-world reveals, app-page transitions |
406
+
407
+ **Easings**:
408
+
409
+ | Token | Curve | Use |
410
+ |---|---|---|
411
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, panels, pills |
412
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
413
+ | `ease-bounce-soft` | `cubic-bezier(0.34, 1.4, 0.64, 1)` | Gentle reward overshoot on success delights (sparingly) |
414
+
415
+ **Motion rules**: Motion is warm and lively but never frantic — it should feel like the "wise and cheerful friend," not a slot machine. The gradient pill responds to press with a subtle scale; sections and app worlds fade-and-rise on reveal at `motion-standard / ease-enter`. A small soft overshoot (`ease-bounce-soft`) is reserved for genuine reward moments (a habit completed, a planet discovered) and used sparingly so delight stays special. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the overshoot is removed; the product stays fully functional and cheerful in tone.
416
+
417
+ <!--
418
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
419
+
420
+ Tier 1 live inspect (2026-06-17) via global playwright getComputedStyle on three brand-owned surfaces:
421
+ - https://sparkful.app/ — hero CTA gradient linear-gradient(to right, rgb(251,191,36) #fbbf24, rgb(163,230,53) #a3e635, rgb(45,212,191) #2dd4bf) / 9999px / white text / 18px 600; Montserrat body; gray text ladder; box-shadow none; dark panel rgb(31,41,55) #1f2937 24px; amber glow rgb(255,251,235) #fffbeb
422
+ - https://sparkful.app/zh-TW/about — Traditional-Chinese brand surface; "創造樂趣,啟動向上", "歡迎來到「樂趣電力公司」", "打造伴隨人們多年、一同成長的有趣產品"; Montserrat with system CJK fallback (font-family resolved to montserrat, sans-serif on CJK nodes)
423
+ - https://sparkful.app/walkr — per-app accent world: rgb(33,84,104) #215468, rgb(0,69,91) #00455b, rgb(165,243,252) #a5f3fc, surface rgb(227,239,238) #e3efee, Walkr green rgb(85,182,124) #55b67c (~0.2 alpha)
424
+
425
+ Meta description (verified via page head, 2026-06-17): "SPARKFUL lights up your life like a wise and cheerful friend. SPARKFUL's apps help you take care of your health and wellness without forgetting the fun!"
426
+
427
+ Voice samples (§10) are verbatim from the live homepage and About page (EN hero/section/feature headlines; zh-TW About headlines).
428
+
429
+ Brand narrative (§11): Fourdesire (四合願) is a Taipei, Taiwan studio publishing gamified self-improvement apps under the SPARKFUL brand (Walkr, Plant Nanny 植物保姆, Fortune City 記帳城市, To-Do Adventure 記事探險, Book Morning!). The app roster and the "樂趣電力公司" self-description are confirmed from the live site (nav + About page, 2026-06-17). Founding year (~2012) and headquarters (Taipei) are widely documented public facts, not directly quoted from a verified Fourdesire statement this turn.
430
+
431
+ Personas (§13) are fictional archetypes informed by publicly observable SPARKFUL user segments (people building healthy habits through gamified apps). Names are illustrative; they do not refer to real people.
432
+
433
+ Interpretive claims (e.g., "fun is the mechanism, not the decoration", "a neutral chassis so colorful worlds can shine") are editorial readings connecting Fourdesire's observed design and stated mission to its design system, not directly sourced statements.
434
+ -->