oh-my-design-cli 1.8.0 → 1.8.1

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.
@@ -0,0 +1,431 @@
1
+ ---
2
+ id: funnow
3
+ name: FunNow
4
+ country: TW
5
+ category: consumer-tech
6
+ homepage: "https://www.myfunnow.com"
7
+ primary_color: "#ff5537"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://cdn.myfunnow.com/web/images/funnow_favicon.svg"
11
+ verified: "2026-06-10"
12
+ added: "2026-06-10"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: live-extract
16
+ extracted: "2026-06-10"
17
+ note: "primary = live CTA / urgency orange-red (#ff5537, matches the official favicon SVG fill); teal #4dcbcb is the secondary outline accent; flash-sale tags run indigo #5a69eb. Vuetify/Material chrome — flat v-cards, 4px radius everywhere."
18
+ colors:
19
+ primary: "#ff5537"
20
+ teal: "#4dcbcb"
21
+ flash-indigo: "#5a69eb"
22
+ amber: "#ffb107"
23
+ ink: "#252729"
24
+ ink-pure: "#000000"
25
+ muted: "#a7a7a9"
26
+ canvas: "#f4f4f5"
27
+ surface: "#ffffff"
28
+ tint-peach: "#ffd8d1"
29
+ tint-blush: "#ffeeeb"
30
+ on-primary: "#ffffff"
31
+ typography:
32
+ family: { sans: "Helvetica Neue", tc: "PingFang TC, Microsoft JhengHei" }
33
+ display-hero: { size: 36, weight: 500, lineHeight: 1.22, use: "Hero H1 headline on homepage" }
34
+ page-title: { size: 24, weight: 700, lineHeight: 1.50, use: "Category / listing page H1" }
35
+ section: { size: 18, weight: 400, lineHeight: 1.50, use: "Category page H2 intro" }
36
+ subtitle: { size: 17, weight: 400, lineHeight: 1.41, use: "Hero H2 subtitle, section heads, filter tabs" }
37
+ body: { size: 15, weight: 400, lineHeight: 1.50, use: "Standard reading text, header buttons" }
38
+ button: { size: 14, weight: 400, lineHeight: 1.00, use: "Primary CTA / control labels" }
39
+ badge: { size: 12, weight: 500, lineHeight: 1.30, use: "Urgency and flash-sale tags" }
40
+ spacing: { xs: 2, sm: 8, md: 12, base: 16 }
41
+ rounded: { sm: 4, md: 5 }
42
+ shadow:
43
+ flat: "none"
44
+ raised: "Material elevation stack rgba(0,0,0,0.2) / rgba(0,0,0,0.14) on raised search CTA only"
45
+ components:
46
+ button-primary: { type: button, bg: "#ff5537", fg: "#ffffff", radius: "4px", padding: "0px 16px", height: "40px", font: "14px / 400", use: "Search submit / primary CTA — the single solid-fill button on the page" }
47
+ button-outline-teal: { type: button, fg: "#4dcbcb", border: "1px solid #4dcbcb", radius: "4px", padding: "0px 8px", height: "36px", font: "15px / 400", use: "Download App header CTA, outlined teal" }
48
+ button-text: { type: button, fg: "#000000", radius: "4px", padding: "0px 8px", height: "36px", font: "15px / 400", use: "Login / Sign Up quiet header action" }
49
+ badge-available-now: { type: badge, bg: "#ff5537", fg: "#ffffff", radius: "4px", padding: "2px 8px", font: "12px / 500", use: "'Available now' urgency tag on product cards" }
50
+ badge-flash-sale: { type: badge, bg: "#5a69eb", fg: "#ffffff", radius: "4px", padding: "0px 8px", font: "12px / 400", use: "'Flash Sales Now' / timed-deal countdown tag" }
51
+ card-product: { type: card, bg: "#ffffff", radius: "4px", use: "Flat v-card product tile sitting on the #f4f4f5 canvas, image-led, no shadow" }
52
+ tab-filter: { type: tab, fg: "#252729", active: "text #ff5537", height: "48px", font: "17px / 400", use: "Category scope tabs (All / Beitou Hot Spring Hotel / ...)" }
53
+ input-search: { type: input, fg: "#000000", radius: "0px", padding: "8px 16px", height: "40px", font: "16px / 400", use: "Hero search field inside the white booking toolbar" }
54
+ components_harvested: true
55
+ ---
56
+
57
+ # Design System Inspiration of FunNow
58
+
59
+ ## 1. Visual Theme & Atmosphere
60
+
61
+ FunNow is Taiwan's on-demand "go out tonight" booking platform, and its web surface looks exactly like what it is: a fast, inventory-dense marketplace built on Material Design plumbing. The page sits on a cool light-grey canvas (`#f4f4f5`) with flat white product cards (`#ffffff`) stacked edge to edge — no drop shadows, no decorative depth — so hundreds of restaurant, hot-spring, and massage listings scan like a clean catalog. Text is a near-black charcoal (`#252729`) over the Material 87%-black default, and every interactive element shares one conservative 4px corner radius. The framework is visibly Vuetify (`v-card--flat` tiles, Material ripple buttons), which gives the product a utilitarian, app-like crispness rather than an editorial mood.
62
+
63
+ What makes it unmistakably FunNow is the urgency accenting. The brand's orange-red (`#ff5537`) — the same hue as the official favicon mark — is rationed to the moments that mean "act now": the solid search CTA, the "Available now" tag, active filter tabs, price links, and the merchant-facing "Reach Out to Us" buttons. Around it orbit two cooler signals: a teal (`#4dcbcb`) used for the outlined "Download App" action, and an indigo (`#5a69eb`) reserved for "Flash Sale" countdown tags. An amber (`#ffb107`) appears across rating and promotional elements. The result is a traffic-light economy of color on an otherwise neutral page: orange-red = book it, indigo = deal expiring, teal = get the app.
64
+
65
+ Typography is deliberately unprecious. The stack is Helvetica Neue with PingFang TC / Microsoft JhengHei fallbacks for Traditional Chinese, body at a compact 15px/1.5, the hero H1 at a modest 36px/500, and category-page titles at 24px/700. Nothing is set in a display face; hierarchy comes from weight, the orange accent, and photography. FunNow's pages feel like a tool you operate at 9pm while deciding where to go at 9:30 — speed-first, spontaneity-flavored, zero friction.
66
+
67
+ **Key Characteristics:**
68
+ - Material/Vuetify chassis — 4px radius everywhere, ripple buttons, flat `v-card` tiles
69
+ - Urgency-rationed orange-red (`#ff5537`) as the lone solid-fill action color
70
+ - Traffic-light accent economy: indigo (`#5a69eb`) flash sales, teal (`#4dcbcb`) app download, amber (`#ffb107`) ratings/promos
71
+ - Flat catalog depth: light-grey canvas (`#f4f4f5`) + white cards, no shadows on tiles
72
+ - Helvetica Neue + PingFang TC stack — utilitarian, bilingual-ready, no display font
73
+ - Compact 15px body with 1.5 line-height for dense listing scans
74
+ - Photography-led cards: imagery carries the appetite appeal, chrome stays neutral
75
+ - Time-anchored microcopy ("Available now", "Book For 06:00") baked into the component system
76
+
77
+ ## 2. Color Palette & Roles
78
+
79
+ ### Primary
80
+ - **FunNow Orange-Red** (`#ff5537`): The brand mark color (official favicon SVG fill) and the system's single solid action color — search CTA, "Available now" urgency tags, active tab text, price/link accents, merchant CTAs.
81
+ - **On-Primary White** (`#ffffff`): Text on orange-red and indigo fills; also the card surface color.
82
+
83
+ ### Secondary Accents
84
+ - **Teal** (`#4dcbcb`): The secondary accent, used as outlined-button color ("Download App" — 1px teal border, teal label) and occasional link/icon highlights. Cool counterweight to the hot primary.
85
+ - **Flash Indigo** (`#5a69eb`): Reserved exclusively for flash-sale / timed-deal tags ("Flash Sales Now", "06:00 Flash Sale"). A deliberate hue break so deals read differently from availability.
86
+ - **Amber** (`#ffb107`): Rating and promotional accent observed across listing surfaces — the warm "star" note in the catalog.
87
+
88
+ ### Neutrals & Surfaces
89
+ - **Ink Charcoal** (`#252729`): Body text, inactive tab labels, section headings — the workhorse text color.
90
+ - **Pure Black** (`#000000`): Header buttons and high-emphasis labels; Material's 87%-black (`rgba(0,0,0,0.87)`) covers default headings and inputs.
91
+ - **Muted Grey** (`#a7a7a9`): Disabled/tertiary text, metadata, placeholder-level emphasis.
92
+ - **Canvas Grey** (`#f4f4f5`): Page background — the cool light grey the whole catalog sits on.
93
+ - **Surface White** (`#ffffff`): Product cards, toolbar, nav, dialogs.
94
+
95
+ ### Tints
96
+ - **Peach Tint** (`#ffd8d1`): Soft orange-red tint for promotional highlight surfaces.
97
+ - **Blush Tint** (`#ffeeeb`): Lightest orange-red tint, used as a subtle brand-warm background wash.
98
+
99
+ ## 3. Typography Rules
100
+
101
+ ### Font Family
102
+ - **Primary stack**: `"Helvetica Neue", Helvetica, Tahoma, Arial` with Traditional Chinese fallbacks `"PingFang TC", "Microsoft JhengHei", PMingLiU` (and WenQuanYi for Linux). Latin-first, TC-ready — no custom webfont.
103
+
104
+ ### Hierarchy
105
+
106
+ | Role | Size | Weight | Line Height | Notes |
107
+ |------|------|--------|-------------|-------|
108
+ | Display Hero (H1) | 36px | 500 | 1.22 (44px) | Homepage hero headline |
109
+ | Page Title (H1) | 24px | 700 | 1.50 | Category/listing page title |
110
+ | Section Intro (H2) | 18px | 400 | 1.50 | Category page descriptive intro |
111
+ | Subtitle / Section (H2) | 17px | 400 | 1.41 | Hero subtitle, section heads, filter tabs |
112
+ | Body | 15px | 400 | 1.50 (22.5px) | Default document text, header buttons |
113
+ | Control / CTA | 14px | 400 | 1.00 | Primary button, small controls |
114
+ | Badge / Tag | 12px | 400–500 | 1.30 | Urgency and flash-sale tags |
115
+
116
+ ### Principles
117
+ - **System type, zero ceremony**: no display font, no negative tracking games — hierarchy is carried by weight (400 vs 500 vs 700) and the orange accent.
118
+ - **Bilingual parity**: the Helvetica-then-PingFang stack keeps Latin and Traditional Chinese visually consistent at identical sizes; nothing in the scale assumes Latin-only line lengths.
119
+ - **Modest display sizes**: even the hero tops out at 36px — the photography and inventory density are the visual event, not the type.
120
+ - **Compact body for scanning**: 15px/1.5 keeps long listing pages dense but legible.
121
+
122
+ ## 4. Component Stylings
123
+
124
+ ### Buttons
125
+
126
+ **Primary (Search / CTA)**
127
+ - Background: `#ff5537`
128
+ - Text: `#ffffff`
129
+ - Radius: 4px
130
+ - Padding: 0px 16px
131
+ - Height: 40px
132
+ - Font: 14px / 400
133
+ - Shadow: Material elevation stack (rgba(0,0,0,0.2) / rgba(0,0,0,0.14) layers)
134
+ - Use: Search submit in the booking toolbar — the page's single solid-fill action
135
+
136
+ **Outline Teal (Download App)**
137
+ - Background: transparent
138
+ - Text: `#4dcbcb`
139
+ - Border: 1px solid `#4dcbcb`
140
+ - Radius: 4px
141
+ - Padding: 0px 8px
142
+ - Height: 36px
143
+ - Font: 15px / 400
144
+ - Use: Header "Download App" CTA — the only outlined button in the chrome
145
+
146
+ **Text (Login / Sign Up)**
147
+ - Background: transparent
148
+ - Text: `#000000`
149
+ - Radius: 4px
150
+ - Padding: 0px 8px
151
+ - Height: 36px
152
+ - Font: 15px / 400
153
+ - Use: Quiet header actions (Login / Sign Up, city selector at 17px, Category/Now/Date/Time/Pax toolbar toggles)
154
+
155
+ ### Badges
156
+
157
+ **Available Now (Urgency)**
158
+ - Background: `#ff5537`
159
+ - Text: `#ffffff`
160
+ - Radius: 4px
161
+ - Padding: 2px 8px
162
+ - Font: 12px / 500
163
+ - Use: Real-time availability tag on product cards ("Available now", "Book For 06:00")
164
+
165
+ **Flash Sale**
166
+ - Background: `#5a69eb`
167
+ - Text: `#ffffff`
168
+ - Radius: 4px
169
+ - Padding: 0px 8px
170
+ - Font: 12px / 400
171
+ - Use: Timed-deal tags ("Flash Sales Now", "06:00 Flash Sale") — indigo so deals read distinctly from availability
172
+
173
+ ### Cards & Containers
174
+
175
+ **Product Tile**
176
+ - Background: `#ffffff`
177
+ - Radius: 4px
178
+ - Shadow: none (flat `v-card--flat`)
179
+ - Use: Listing tile on the `#f4f4f5` canvas — photo on top, name, rating, price; measured at 360×135 (list) and 233×146 (carousel)
180
+
181
+ ### Tabs
182
+
183
+ **Category Filter Tab**
184
+ - Text: `#252729` (inactive)
185
+ - Active: `#ff5537` text
186
+ - Height: 48px
187
+ - Padding: 0px 16px
188
+ - Font: 17px / 400
189
+ - Use: Listing scope tabs ("All" / "Beitou Hot Spring Hotel" / "Jiaoxi Hot Spring Hotel" ...)
190
+
191
+ ### Inputs
192
+
193
+ **Hero Search Field**
194
+ - Background: transparent (sits inside the white booking toolbar)
195
+ - Text: `#000000` (87% black)
196
+ - Radius: 0px
197
+ - Padding: 8px 16px
198
+ - Height: 40px
199
+ - Font: 16px / 400
200
+ - Use: "Search for products or locations" field, paired with the orange submit button
201
+
202
+ ### Navigation
203
+ - White toolbar on the grey canvas; brand logotype left in orange-red `#ff5537`
204
+ - City selector button at 17px / 400, black text, Material ripple
205
+ - Right cluster: outlined teal Download App, text-style Login / Sign Up
206
+ - Booking parameter bar (Category / Now / Date / Time / Pax) as a row of 40px text buttons over the hero
207
+
208
+ ---
209
+ **Verified:** 2026-06-10
210
+ **Tier 1 sources:** https://www.myfunnow.com/en (homepage, live computed-style inspect); https://www.myfunnow.com/en/regions/1/categories/10265 (category listing surface, live inspect); https://www.events.myfunnow.com/booking-en (FunNow Booking merchant surface, live inspect); https://blog.myfunnow.com (official FunNow blog); https://www.events.myfunnow.com/whyfunnow-zh (official Why FunNow brand page)
211
+ **Tier 2 sources:** none available (getdesign.md/funnow → 404 "No designs found"; styles.refero.design/?q=funnow → not listed, search returned unrelated brands only)
212
+ **Conflicts unresolved:** none
213
+
214
+ ## 5. Layout Principles
215
+
216
+ ### Spacing System
217
+ - Base unit: 4px Material grid
218
+ - Observed scale: 2px, 8px, 12px, 16px (button paddings 0 8px / 0 12px / 0 16px, badge 2px 8px, input 8px 16px)
219
+ - Component heights are the real rhythm: 36px header buttons, 40px toolbar controls and inputs, 48px filter tabs
220
+
221
+ ### Grid & Container
222
+ - Full-width white toolbar over a centered content column on the `#f4f4f5` canvas
223
+ - Hero: headline + booking parameter bar (Category/Now/Date/Time/Pax) + search field — the booking funnel IS the hero
224
+ - Inventory below as horizontal carousels ("Top Brands", "Trending Themes") and vertical card lists
225
+ - Category pages: title + intro, horizontally scrollable filter tab bar, then the card grid
226
+
227
+ ### Whitespace Philosophy
228
+ - **Density over air**: this is a marketplace — cards pack tightly so a screen shows maximum bookable inventory.
229
+ - **Canvas does the separating**: the grey `#f4f4f5` gutter between flat white cards replaces borders and shadows.
230
+ - **Chrome stays thin**: a single 64px-class toolbar and slim tab bars; vertical space is spent on listings, not branding.
231
+
232
+ ### Border Radius Scale
233
+ - Standard (4px): buttons, cards, badges, dialogs — the universal Material radius
234
+ - Slightly relaxed (5px): CTAs on the events/merchant surfaces
235
+ - No pills, no large rounding anywhere in the core product
236
+
237
+ ## 6. Depth & Elevation
238
+
239
+ | Level | Treatment | Use |
240
+ |-------|-----------|-----|
241
+ | Flat (Level 0) | No shadow | Product tiles (`v-card--flat`), canvas, tab bars |
242
+ | Raised (Level 1) | Material elevation stack `rgba(0,0,0,0.2)` / `rgba(0,0,0,0.14)` layers | Raised search CTA, city-selector button ripple chrome |
243
+ | Overlay | `rgba(0,0,0,0.4)` scrim | Image overlays / gradient bottoms on photo cards |
244
+
245
+ **Shadow Philosophy**: FunNow inverts the usual Material habit — the framework ships elevation, but the product flattens it. Listing tiles are explicitly `v-card--flat`; separation comes from the grey canvas showing between white cards. The only elevation that survives is the default Material button shadow on a handful of raised controls. Photography supplies all perceived depth: cards are image-led, and a 40%-black scrim carries text over photos. Keeping chrome flat makes the orange urgency tags and indigo deal tags the highest-contrast objects on screen, which is exactly the booking-funnel priority.
246
+
247
+ ## 7. Do's and Don'ts
248
+
249
+ ### Do
250
+ - Reserve solid `#ff5537` fills for "book/act now" moments — one solid button per view
251
+ - Use indigo `#5a69eb` only for time-limited deals so urgency types stay distinguishable
252
+ - Keep teal `#4dcbcb` as an outlined secondary (border + label), never as a fill competing with orange
253
+ - Keep every radius at 4px — Material conservatism is part of the utilitarian read
254
+ - Let photography carry appeal; keep card chrome flat and white on the `#f4f4f5` canvas
255
+ - Anchor microcopy in time ("Available now", "Book For 06:00") — immediacy is the brand promise
256
+ - Use the Helvetica Neue + PingFang TC stack so EN/TC render at parity
257
+
258
+ ### Don't
259
+ - Spread orange-red across decorative elements — it must keep meaning "bookable right now"
260
+ - Add drop shadows to product tiles — the catalog is flat by design
261
+ - Introduce display fonts or oversized hero type — 36px/500 is the ceiling
262
+ - Use pill or large-radius buttons — nothing rounder than 5px exists in the system
263
+ - Mix the deal color and the availability color — indigo and orange-red have separate jobs
264
+ - Dress up empty space — density is a feature of a spontaneity marketplace
265
+
266
+ ## 8. Responsive Behavior
267
+
268
+ ### Breakpoints
269
+ | Name | Width | Key Changes |
270
+ |------|-------|-------------|
271
+ | Mobile | <600px | Single-column cards, booking bar collapses, app-download banner prominent |
272
+ | Tablet | 600–960px | 2-up card grids, condensed toolbar |
273
+ | Desktop | 960–1440px | Full toolbar with city selector + booking parameters, multi-column carousels |
274
+
275
+ ### Touch Targets
276
+ - 40px toolbar controls and 48px filter tabs — comfortably tappable
277
+ - Card tiles are full-surface tap targets linking to the booking flow
278
+ - Header actions at 36px height with ripple feedback
279
+
280
+ ### Collapsing Strategy
281
+ - The booking parameter bar (Category/Now/Date/Time/Pax) folds into stacked sheet pickers on mobile
282
+ - Carousels keep horizontal scroll at every width — inventory rows never stack into long verticals
283
+ - The web experience funnels mobile users toward the app (teal Download App CTA persists)
284
+
285
+ ### Image Behavior
286
+ - Card photos crop to fixed tile ratios; text sits on a bottom scrim where overlaid
287
+ - Tags ("Available now", flash sale) stay pinned to consistent card corners at all sizes
288
+
289
+ ## 9. Agent Prompt Guide
290
+
291
+ ### Quick Color Reference
292
+ - Primary CTA / urgency: FunNow Orange-Red (`#ff5537`)
293
+ - Flash-sale tag: Indigo (`#5a69eb`)
294
+ - Secondary outline CTA: Teal (`#4dcbcb`)
295
+ - Rating/promo accent: Amber (`#ffb107`)
296
+ - Page background: Canvas Grey (`#f4f4f5`)
297
+ - Card surface: White (`#ffffff`)
298
+ - Body text: Ink Charcoal (`#252729`)
299
+ - Muted text: Grey (`#a7a7a9`)
300
+ - Brand tints: Peach (`#ffd8d1`), Blush (`#ffeeeb`)
301
+
302
+ ### Example Component Prompts
303
+ - "Create a booking toolbar: white bar on #f4f4f5 page. Text buttons (transparent, black text, 4px radius, 40px height, 17px Helvetica Neue) for Category / Now / Date / Time / Pax, a 16px search input, and an orange submit button: #ff5537 background, white text, 4px radius, 0 16px padding, 40px height, subtle Material elevation."
304
+ - "Design a product tile: white #ffffff card, 4px radius, NO shadow, on #f4f4f5 canvas. Photo top with a 12px/500 'Available now' tag (#ff5537 bg, white text, 4px radius, 2px 8px padding) pinned to the corner. Name at 15px/400 #252729, amber #ffb107 rating row, price accent in #ff5537."
305
+ - "Build a flash-sale tag: #5a69eb background, white text, 4px radius, 0 8px padding, 12px/400 — label '06:00 Flash Sale'."
306
+ - "Create a filter tab bar: horizontal scroll, 48px tall tabs, 17px/400 labels, inactive #252729, active #ff5537, 0 16px padding, white background."
307
+ - "Header actions: outlined Download App button (transparent bg, 1px solid #4dcbcb border, #4dcbcb text, 4px radius, 36px height, 15px) next to a quiet text button 'Login / Sign Up' (black text, no border)."
308
+
309
+ ### Iteration Guide
310
+ 1. One solid orange button per view — everything else is text or outline style
311
+ 2. 4px radius universally; 36/40/48px control heights are the vertical rhythm
312
+ 3. Flat cards on grey canvas; never add tile shadows
313
+ 4. Indigo = timed deal, orange-red = available/book, teal = app/secondary — don't swap jobs
314
+ 5. Helvetica Neue + PingFang TC, 15px body, hero capped at 36px/500
315
+ 6. Write time into the UI copy ("now", "tonight", "06:00") — urgency is verbal as well as visual
316
+
317
+ ---
318
+
319
+ ## 10. Voice & Tone
320
+
321
+ FunNow's voice is **spontaneous, friendly, and deal-smart** — a fun-loving local friend who knows where you can get in *tonight* and what it should cost. Copy is short, imperative, and time-anchored: the product speaks in "now" ("Available now", "Book For 06:00"). In Traditional Chinese the register is upbeat and benefit-led, comfortable with exclamation marks ("線上一鍵預訂,線下即刻出發!") in a way the system's Western peers are not — energy is part of the brand. English copy stays casual and second-person: "Enjoy your life the way you want."
322
+
323
+ | Context | Tone |
324
+ |---|---|
325
+ | Hero headlines | Invitation to act tonight. "Explore & book your fun activities in Taipei|Taoyuan now". |
326
+ | Subtitles / mission lines | Lifestyle permission. "Enjoy your life the way you want." |
327
+ | Urgency tags | Telegraphic, time-stamped. "Available now", "06:00 Flash Sale", "Book For 06:00". |
328
+ | Deal copy (TC) | Energetic, benefit-first, exclamatory. "尖峰有優惠,離峰更划算!" |
329
+ | Merchant surfaces | Confident B2B plain talk. "Help you stay on top", "Grow with Us". |
330
+ | Help / FAQ | Practical and procedural — booking, refund, and arrival mechanics. |
331
+
332
+ **Voice samples (verbatim):**
333
+ - "Explore & book your fun activities in Taipei|Taoyuan now" — homepage hero H1 *(verified live 2026-06-10)*
334
+ - "Enjoy your life the way you want." — homepage hero H2 *(verified live 2026-06-10)*
335
+ - "Book motel & hotel, massage & spa, restaurants & bars and more in Taipei within a few clicks!" — homepage section heading *(verified live 2026-06-10)*
336
+ - "線上一鍵預訂,線下即刻出發!" ("One-click booking online, head out instantly offline!") — official Why FunNow page *(fetched 2026-06-10)*
337
+ - "尖峰有優惠,離峰更划算!" ("Deals at peak, even better off-peak!") — official Why FunNow page *(fetched 2026-06-10)*
338
+
339
+ **Forbidden register**: luxury-travel formality, slow "plan your itinerary" OTA language, guilt or FOMO-shaming, jargon about inventory/yield (that's merchant-side vocabulary only).
340
+
341
+ ## 11. Brand Narrative
342
+
343
+ FunNow was founded in **Taipei in November 2015** by **TK Chen (陳庭寬)** and co-founders under the company Zoek (the "© Zoek" still in the site footer). Chen, a former ING investment analyst who had lived in the Netherlands, took a yield-management insight personal: the moment a plane takes off, an empty seat is worth nothing — and across Asia's cities the same was true of the 8pm massage slot, the un-booked hot-spring room, the empty bar table. FunNow positioned itself as 亞洲首款主打「最後一分鐘」的預訂平台 — Asia's first booking platform built around the last minute — with the tagline **"Last minute unlimited"**.
344
+
345
+ The model is urban spontaneity as infrastructure: 即時預訂都會享樂的第一選擇 ("the first choice for instant booking of urban pleasures"), spanning restaurants, bars, massage & spa, hotels and motels, hot springs, and activities — bookable in a few taps for *right now*, with dynamic off-peak pricing that fills merchants' dead hours ("尖峰有優惠,離峰更划算!"). The company raised a **$5M Series A in 2018** and a **$15M Series B in 2021** (both covered by TechCrunch), expanded to Hong Kong, Malaysia, Japan and Southeast Asia, and in **September 2023 merged with Eatigo**, one of SEA's largest O2O booking platforms, forming the FunNow Group.
346
+
347
+ What FunNow refuses: the plan-ahead solemnity of traditional OTAs, phone-call reservations and queues ("免排隊、免打電話"), and any UI ornamentation that slows the catalog down. What it embraces: a flat, fast Material marketplace where photography sells the experience, an orange-red mark that always means "you can have this now", and a stated mission of 隨心所欲享受生活 — letting people enjoy life on their own terms through simple, reliable booking.
348
+
349
+ ## 12. Principles
350
+
351
+ 1. **Now is the product.** The platform's entire reason to exist is the last minute. *UI implication:* surface real-time availability ("Available now") and time-stamped deals ("06:00 Flash Sale") as first-class card elements; default the booking flow to "Now".
352
+ 2. **One color means go.** Orange-red `#ff5537` is rationed to bookable/act-now moments. *UI implication:* one solid orange element per view; deals get indigo, secondary actions get teal outline — never blur the jobs.
353
+ 3. **Catalog speed over chrome.** Spontaneous users decide in seconds. *UI implication:* flat cards, 4px radii, dense grids, no shadows or decorative depth that slows scanning.
354
+ 4. **Photography sells, UI serves.** The experience photo is the persuasion layer. *UI implication:* image-led tiles with thin neutral chrome; text over photos rides a scrim, not a styled panel.
355
+ 5. **Off-peak is a win, not a discount bin.** Dynamic pricing reframes empty hours as smart deals. *UI implication:* deal tags read energetic and positive (indigo + exclamatory copy), never apologetic clearance styling.
356
+
357
+ ## 13. Personas
358
+
359
+ *Personas below are fictional archetypes informed by publicly observable FunNow user segments (urban last-minute bookers in Taiwan and SEA, deal-driven diners, merchant partners), not individual people.*
360
+
361
+ **林佳穎, 27, 台北.** A marketing exec whose plans start at 7pm when the group chat decides tonight is the night. Opens FunNow for a bar or late-night hot spring, filters by "Now", and books in under a minute. Trusts the "Available now" tag literally — if it lies once, she's gone.
362
+
363
+ **Marcus Tan, 33, Kuala Lumpur.** A deal-savvy foodie who plans dinner around flash sales. Watches the indigo timed-deal tags, compares off-peak prices, and treats FunNow as a game he wins. Came via the Eatigo merger and expects the same discount clarity.
364
+
365
+ **張媽媽 & family, 45, 宜蘭.** Weekend spontaneity with kids: a same-day Jiaoxi hot-spring room without phone calls. Values real reviews and refund clarity over aesthetics; books the family slot from the sofa at 10am for 1pm.
366
+
367
+ **Kenji, 38, Okinawa restaurant owner.** A merchant using FunNow Booking to fill weekday-afternoon dead hours. Cares about the dashboard ("Help you stay on top"), upfront deposits cutting no-shows, and Reserve with Google traffic — the B2B face of the same urgency engine.
368
+
369
+ ## 14. States
370
+
371
+ | State | Treatment |
372
+ |---|---|
373
+ | **Empty (no results in filter)** | White card area on `#f4f4f5` canvas, one Ink (`#252729`) line stating no venues match this time/category, plus a text-button suggestion to switch to "Now" or clear filters. No illustration clutter. |
374
+ | **Empty (no flash sales running)** | Muted (`#a7a7a9`) single line; next scheduled sale time shown if known — time-anchored even when empty. |
375
+ | **Loading (listing fetch)** | Flat skeleton tiles at final card dimensions (4px radius) on the grey canvas — no shimmer theatrics, consistent with the shadowless catalog. |
376
+ | **Loading (availability check)** | Inline spinner replacing the orange CTA label; card stays in place, previous price visible. |
377
+ | **Error (booking failed)** | Inline message above the CTA in plain language: what failed (slot taken / payment) and the next action (pick another time). Never a bare "Error occurred". |
378
+ | **Error (slot just sold out)** | The honest marketplace case: tag flips from "Available now" to a muted sold-out state, with nearest alternative times offered immediately. |
379
+ | **Success (booking confirmed)** | Confirmation screen with time, venue, and party size restated — the reservation is the receipt. Calm, factual; the excitement already happened. |
380
+ | **Skeleton** | `#ffffff` blocks at final tile dimensions on `#f4f4f5`, 4px radius, flat pulse. |
381
+ | **Disabled** | Muted grey (`#a7a7a9`) labels on flat surfaces; orange CTAs fade in opacity rather than turning grey, preserving the "go" color's meaning. |
382
+
383
+ ## 15. Motion & Easing
384
+
385
+ **Durations**:
386
+
387
+ | Token | Value | Use |
388
+ |---|---|---|
389
+ | `motion-fast` | 100ms | Ripple feedback, tab switches, tag appearance |
390
+ | `motion-standard` | 200ms | Card hover, sheet/picker open, carousel snap |
391
+ | `motion-slow` | 300ms | Page-level transitions, dialog entry |
392
+
393
+ **Easings**:
394
+
395
+ | Token | Curve | Use |
396
+ |---|---|---|
397
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Material standard — most transitions |
398
+ | `ease-decelerate` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Entering elements (sheets, dialogs) |
399
+ | `ease-accelerate` | `cubic-bezier(0.4, 0.0, 1, 1)` | Exits and dismissals |
400
+
401
+ **Motion rules**: FunNow inherits Material motion and keeps it functional — ripple on every tap, fast tab transitions, carousels that snap. Urgency elements may pulse subtly (flash-sale countdowns), but listing tiles never animate on scroll: catalog scanning speed outranks delight. No spring or bounce — the energy lives in the copy and color, not in physics. Under `prefers-reduced-motion: reduce`, ripples and pulses collapse to instant state changes; the booking flow remains fully functional.
402
+
403
+ <!--
404
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
405
+
406
+ Tier 1 live inspect (2026-06-10) via playwright getComputedStyle on
407
+ https://www.myfunnow.com/en, https://www.myfunnow.com/en/regions/1/categories/10265,
408
+ and https://www.events.myfunnow.com/booking-en — source for all token-level claims
409
+ (§1–9: #ff5537 CTA/tags, #4dcbcb outline, #5a69eb flash tags, #f4f4f5 canvas,
410
+ flat v-card tiles, 4px radii, Helvetica Neue + PingFang TC stack).
411
+
412
+ Voice samples (§10) are verbatim from the live homepage (hero H1/H2, section heading,
413
+ 2026-06-10) and from https://www.events.myfunnow.com/whyfunnow-zh (official brand page,
414
+ fetched 2026-06-10: "線上一鍵預訂,線下即刻出發!", "尖峰有優惠,離峰更划算!",
415
+ "Last minute unlimited", "亞洲首款主打「最後一分鐘」的預訂平台",
416
+ mission "我們希望讓你透過簡單、可靠的預訂,隨興成行,達到隨心所欲享受生活的願景。").
417
+
418
+ Brand narrative (§11) facts: founded November 2015 in Taipei; co-founder/CEO TK Chen
419
+ (陳庭寬), ex-ING investment analyst, company Zoek; $5M Series A (TechCrunch, 2018-08-12);
420
+ $15M Series B (TechCrunch, 2021-11-08); merger with Eatigo (TechCrunch, 2023-09-11);
421
+ expansion to HK/Malaysia/Japan/SEA (Meet Global / bnext coverage). The empty-seat
422
+ yield insight is from published founder-story coverage (Meet Global), paraphrased.
423
+
424
+ Personas (§13) are fictional archetypes informed by publicly observable FunNow user
425
+ segments. Names are illustrative; they do not refer to real people.
426
+
427
+ Interpretive claims (e.g., "traffic-light accent economy", "the framework ships
428
+ elevation but the product flattens it", "off-peak as a win not a discount bin") are
429
+ editorial readings connecting FunNow's observed design and stated positioning,
430
+ not directly sourced FunNow statements.
431
+ -->