oh-my-design-cli 1.5.0 → 1.6.0

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 (40) hide show
  1. package/AGENTS.md +1 -0
  2. package/README.ko.md +1 -1
  3. package/README.md +9 -9
  4. package/agents/omd-master.md +13 -1
  5. package/data/reference-fingerprints.json +1428 -523
  6. package/package.json +5 -4
  7. package/scripts/ctx-prime.cjs +266 -0
  8. package/skills/omd-harness/SKILL.md +135 -7
  9. package/skills/omd-kr-writer/SKILL.md +1 -1
  10. package/web/references/17live/DESIGN.md +424 -0
  11. package/web/references/alipay/DESIGN.md +456 -0
  12. package/web/references/appier/DESIGN.md +420 -0
  13. package/web/references/bilibili/DESIGN.md +426 -0
  14. package/web/references/class101/DESIGN.md +433 -0
  15. package/web/references/cookpad/DESIGN.md +357 -0
  16. package/web/references/dji/DESIGN.md +416 -0
  17. package/web/references/gogoro/DESIGN.md +403 -0
  18. package/web/references/ichef/DESIGN.md +411 -0
  19. package/web/references/kakaopay/DESIGN.md +1 -1
  20. package/web/references/kakaot/DESIGN.md +454 -0
  21. package/web/references/kkday/DESIGN.md +423 -0
  22. package/web/references/meituan/DESIGN.md +424 -0
  23. package/web/references/millie/DESIGN.md +533 -0
  24. package/web/references/money-forward/DESIGN.md +401 -0
  25. package/web/references/myrealtrip/DESIGN.md +445 -0
  26. package/web/references/naverwebtoon/DESIGN.md +429 -0
  27. package/web/references/note/DESIGN.md +318 -0
  28. package/web/references/publy/DESIGN.md +511 -0
  29. package/web/references/smarthr/DESIGN.md +404 -0
  30. package/web/references/smartnews/DESIGN.md +331 -0
  31. package/web/references/spoon/DESIGN.md +446 -0
  32. package/web/references/tada/DESIGN.md +528 -0
  33. package/web/references/tossbank/DESIGN.md +519 -0
  34. package/web/references/triple/DESIGN.md +434 -0
  35. package/web/references/tumblbug/DESIGN.md +530 -0
  36. package/web/references/watcha/DESIGN.md +425 -0
  37. package/web/references/wavve/DESIGN.md +438 -0
  38. package/web/references/wconcept/DESIGN.md +511 -0
  39. package/web/references/xiaohongshu/DESIGN.md +423 -0
  40. package/web/references/yogiyo/DESIGN.md +465 -0
@@ -0,0 +1,528 @@
1
+ ---
2
+ id: tada
3
+ name: TADA
4
+ display_name_kr: 타다
5
+ country: KR
6
+ category: consumer-tech
7
+ homepage: "https://tadatada.com"
8
+ primary_color: "#1ec59f"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=tadatada.com&sz=128"
12
+ verified: "2026-05-27"
13
+ omd: "0.1"
14
+ ---
15
+
16
+ # Design System Inspiration of TADA (타다)
17
+
18
+ ## 1. Visual Theme & Atmosphere
19
+
20
+ TADA is the Korean mobility brand that built its identity around a single, calming idea: that getting in a car should feel like a small relief, not a transaction. Its visual signature is a fresh mint-teal (`#1ec59f`) -- a color almost no incumbent transport service used, chosen the way Toss chose cerulean: to be *not* the aggressive yellow of a taxi nor the corporate navy of a logistics firm, but something that reads as clean, modern, and quietly premium. The mint is the brand. It anchors the wordmark, the primary "차량 호출" CTA, the active map pin, and the trip-in-progress state, against generous white space and a calm near-black type system.
21
+
22
+ The atmosphere TADA cultivates is *space*. The product's original differentiator was the roomy van interior, and the design language echoes that physical promise: airy layouts, soft rounded corners, comfortable type, and minimal chrome so the map and the single next action dominate. A ride-hailing app lives or dies on one-glance clarity -- where is my car, how long until it arrives, what do I tap next -- so TADA's screens resolve to one primary action at a time, the mint CTA pinned to a thumb-reachable bottom bar over a clean map canvas. The brand voice is reassuring and unhurried: the trip is handled, you can relax.
23
+
24
+ What defines TADA visually is the discipline of one signature hue against neutral calm. The mint is interaction and brand; everything else is white, soft gray surfaces, and a warm near-black for text. The result feels closer to a wellness or fintech app than to a legacy transport service -- a deliberate repositioning of "calling a car" from a stressful errand into a moment of ease.
25
+
26
+ **Key Characteristics:**
27
+ - TADA Mint (`#1ec59f`) as the signature brand + primary interactive color
28
+ - Calm near-black type on white, with soft gray surface fills
29
+ - Pretendard / system sans stack for Korean-Latin co-equal rendering
30
+ - Map-first, one-action-per-screen layouts — the mint CTA on a thumb-reachable bottom bar
31
+ - Soft rounded corners (8-16px) — airy, reassuring, never sharp or aggressive
32
+ - Generous whitespace echoing the brand's roomy-interior physical promise
33
+ - Minimal shadow — calm comes from clarity, not depth
34
+ - Reassuring, unhurried voice — "the trip is handled"
35
+
36
+ ## 2. Color Palette & Roles
37
+
38
+ ### Primary
39
+ - **TADA Mint** (`#1ec59f`): The signature brand color and primary interactive accent — wordmark, "호출하기" CTA, active map pin, trip-in-progress, links.
40
+ - **Mint Pressed** (`#17a384`): Pressed / hover state for mint CTAs.
41
+ - **Mint Light** (`#e6f8f3`): Subtle mint-tinted informational backgrounds, selected-state fills.
42
+ - **Pure White** (`#ffffff`): Page / map canvas, card surfaces, button text on mint.
43
+ - **Calm Near-Black** (`#1a1a1a`): Primary heading and strong text. Warm dark, softer than pure black.
44
+
45
+ ### Neutral Scale
46
+ - **Gray 800** (`#333333`): Strong labels, navigation text.
47
+ - **Gray 700** (`#555555`): Emphasized body text.
48
+ - **Gray 600** (`#777777`): Body text, descriptions, ETA secondary labels.
49
+ - **Gray 500** (`#999999`): Caption text, secondary metadata.
50
+ - **Gray 400** (`#bbbbbb`): Placeholder text, disabled icons.
51
+ - **Gray 200** (`#e5e5e5`): Default border, dividers, input outlines.
52
+ - **Gray 100** (`#f2f2f2`): Secondary background, card fill, disabled surface.
53
+ - **Gray 50** (`#f7f7f7`): Lightest surface fill.
54
+
55
+ ### Semantic
56
+ - **Success Mint** (`#1ec59f`): Trip-confirmed / arrived-state — the brand color doubles as success.
57
+ - **Error Red** (`#ff4452`): Error states, cancellation, destructive actions.
58
+ - **Warning Amber** (`#ff9f1c`): Surge / wait-time warnings, pending states.
59
+ - **Info Navy** (`#19254d`): Dark marketing / brand surface (current marketing site uses this deep navy as a contrast field; see footer note).
60
+
61
+ ### Surface & Overlays
62
+ - **Map Scrim**: `rgba(0,0,0,0.3)`. Gradient veil for legibility of controls over the map.
63
+ - **Bottom Sheet Surface**: `#ffffff`. Trip detail, vehicle selection.
64
+
65
+ ## 3. Typography Rules
66
+
67
+ ### Font Family
68
+ - **Primary**: `"Pretendard", "Apple SD Gothic Neo", -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Malgun Gothic", Roboto, sans-serif`
69
+ - **Design Principle**: No bespoke wordmark webfont on product surfaces. The system relies on Pretendard's clean geometric Korean glyphs and a warm near-black for a calm, modern read. Korean and Latin render co-equally. Map labels and ETA numbers favor tabular figures for stable alignment.
70
+
71
+ ### Hierarchy
72
+
73
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
74
+ |------|------|------|--------|-------------|----------------|-------|
75
+ | Display | Pretendard | 28px | 700 | 38px | -0.4px | Onboarding / hero moment |
76
+ | Heading Large | Pretendard | 22px | 700 | 30px | -0.4px | Screen title, "어디로 갈까요?" |
77
+ | Heading | Pretendard | 18px | 700 | 26px | -0.3px | Section header, vehicle type title |
78
+ | Title | Pretendard | 16px | 600 | 24px | -0.3px | Bottom-sheet header, list header |
79
+ | Body Large | Pretendard | 16px | 400 | 24px | -0.2px | Descriptions, address text |
80
+ | Body | Pretendard | 14px | 400 | 22px | -0.2px | Default body, list metadata |
81
+ | ETA / Number | Pretendard | 22px+ | 700 | tight | -0.2px | Arrival minutes, fare — tabular numerals |
82
+ | Caption | Pretendard | 13px | 400 | 18px | -0.2px | Secondary metadata, timestamps |
83
+ | Caption Bold | Pretendard | 13px | 700 | 18px | -0.2px | Tag / status labels |
84
+ | Micro | Pretendard | 12px | 500 | 16px | -0.2px | Fine print, map labels |
85
+
86
+ ### Principles
87
+ - **Calm warm dark**: Headings and body use warm near-black `#1a1a1a` for a reassuring rather than clinical read.
88
+ - **Numbers are typography**: ETA minutes and fares use 700 weight with tabular numerals — they're the most-glanced data and must align stably as they update.
89
+ - **Three weights**: 400 (body), 600 (titles), 700 (headings / numbers). Light is avoided on Korean glyphs.
90
+ - **One-glance hierarchy**: On the map screen, the next action and the ETA are the two largest elements; everything else recedes.
91
+ - **Tight Korean tracking**: `-0.2px` to `-0.4px` letter-spacing for clean compactness.
92
+
93
+ ## 4. Component Stylings
94
+
95
+ ### Buttons
96
+
97
+ **Primary (TADA Mint)**
98
+ - Background: `#1ec59f`
99
+ - Text: `#ffffff`
100
+ - Border: none
101
+ - Radius: 12px
102
+ - Padding: 16px 20px
103
+ - Font: 16px / 700 / Pretendard
104
+ - Hover: `#17a384`
105
+ - Pressed: `#149378`
106
+ - Disabled: `#bbbbbb` background, `#ffffff` text
107
+ - Use: Primary CTA — `호출하기`, `이대로 호출`, `결제하기`. The thumb-reachable bottom action.
108
+
109
+ **Dark (Navy Solid)**
110
+ - Background: `#19254d`
111
+ - Text: `#ffffff`
112
+ - Border: none
113
+ - Radius: 12px
114
+ - Padding: 16px 20px
115
+ - Font: 16px / 700 / Pretendard
116
+ - Use: Marketing-surface CTA / strong action where mint would feel too soft (`회원가입 없이 바로 타다 부르기` on the marketing site).
117
+
118
+ **Outline (Mint Border)**
119
+ - Background: `#ffffff`
120
+ - Text: `#1ec59f`
121
+ - Border: 1px solid `#1ec59f`
122
+ - Radius: 12px
123
+ - Padding: 16px 20px
124
+ - Font: 16px / 600 / Pretendard
125
+ - Hover: `#e6f8f3` background
126
+ - Use: Secondary CTA — `예약하기`, `경로 변경`
127
+
128
+ **Neutral (Gray Fill)**
129
+ - Background: `#f2f2f2`
130
+ - Text: `#333333`
131
+ - Border: none
132
+ - Radius: 12px
133
+ - Padding: 14px 16px
134
+ - Font: 14px / 500 / Pretendard
135
+ - Hover: `#e5e5e5` background
136
+ - Use: Tertiary actions — cancel, edit, more options
137
+
138
+ **Danger (Red)**
139
+ - Background: `#ff4452`
140
+ - Text: `#ffffff`
141
+ - Border: none
142
+ - Radius: 12px
143
+ - Padding: 16px 20px
144
+ - Font: 16px / 700 / Pretendard
145
+ - Use: Destructive confirm — `호출 취소`
146
+
147
+ ### Inputs
148
+
149
+ **Default**
150
+ - Background: `#ffffff`
151
+ - Text: `#1a1a1a`
152
+ - Border: 1px solid `#e5e5e5`
153
+ - Radius: 12px
154
+ - Padding: 14px 16px
155
+ - Font: 16px / 400 / Pretendard
156
+ - Placeholder: `#bbbbbb`
157
+ - Focus: 1px solid `#1ec59f`
158
+ - Use: Default text input — phone, payment, settings forms
159
+
160
+ **Destination Search**
161
+ - Background: `#f2f2f2`
162
+ - Text: `#1a1a1a`
163
+ - Border: none
164
+ - Radius: 12px
165
+ - Padding: 14px 16px 14px 44px (left-pad for inline location icon)
166
+ - Font: 16px / 400 / Pretendard
167
+ - Placeholder: `#999999` ("어디로 갈까요?")
168
+ - Focus: `#ffffff` background, 1px solid `#1ec59f` border
169
+ - Use: The signature destination-entry field at the top of the home screen
170
+
171
+ **Error**
172
+ - Background: `#ffffff`
173
+ - Text: `#1a1a1a`
174
+ - Border: 1px solid `#ff4452`
175
+ - Radius: 12px
176
+ - Padding: 14px 16px
177
+ - Font: 16px / 400 / Pretendard
178
+ - Use: Form validation failure — helper text 13px/400 `#ff4452` below
179
+
180
+ ### Cards
181
+
182
+ **Vehicle Option Card**
183
+ - Background: `#ffffff`
184
+ - Border: 1px solid `#e5e5e5`
185
+ - Radius: 16px
186
+ - Padding: 16px
187
+ - Shadow: none (selected gets mint border + `#e6f8f3` fill)
188
+ - Selected: 1.5px solid `#1ec59f`, `#e6f8f3` background
189
+ - Use: Vehicle type selection (타다 라이트 / 플러스 / 넥스트) with fare estimate
190
+
191
+ **Trip Card**
192
+ - Background: `#ffffff`
193
+ - Border: none
194
+ - Radius: 16px
195
+ - Padding: 20px
196
+ - Shadow: `0px 2px 8px rgba(0,0,0,0.08)`
197
+ - Use: Active-trip summary, driver + vehicle + ETA on the map screen
198
+
199
+ **Receipt Card**
200
+ - Background: `#ffffff`
201
+ - Border: 1px solid `#e5e5e5`
202
+ - Radius: 12px
203
+ - Padding: 16px
204
+ - Use: Trip history / fare breakdown
205
+
206
+ ### Badges
207
+
208
+ **Status (Mint)**
209
+ - Background: `#e6f8f3`
210
+ - Text: `#149378`
211
+ - Border: none
212
+ - Radius: 8px
213
+ - Padding: 4px 8px
214
+ - Font: 12px / 700 / Pretendard
215
+ - Use: "배차 완료", "운행 중" status
216
+
217
+ **Promotion (Amber)**
218
+ - Background: `#fff3e0`
219
+ - Text: `#cc7a00`
220
+ - Border: none
221
+ - Radius: 8px
222
+ - Padding: 4px 8px
223
+ - Font: 12px / 700 / Pretendard
224
+ - Use: Surge / wait-time notice, scarce promotional flag
225
+
226
+ **Neutral**
227
+ - Background: `#f2f2f2`
228
+ - Text: `#555555`
229
+ - Border: none
230
+ - Radius: 8px
231
+ - Padding: 4px 8px
232
+ - Font: 12px / 700 / Pretendard
233
+ - Use: Metadata tag, vehicle-feature label
234
+
235
+ ### Map Controls
236
+
237
+ **Floating Pin**
238
+ - Color: `#1ec59f` (origin/active) / `#1a1a1a` (destination)
239
+ - Use: Map markers — the active/origin pin carries the mint
240
+
241
+ **Bottom Action Bar**
242
+ - Background: `#ffffff`
243
+ - Border: 1px top `#e5e5e5` (or shadow `0px -2px 12px rgba(0,0,0,0.08)`)
244
+ - Radius: 16px (top corners) when raised as a sheet
245
+ - Use: Sticky container for the primary mint CTA + fare/ETA summary
246
+
247
+ ### Navigation
248
+ - Top bar: transparent over map or `#ffffff`, ~56px, back/menu icon left, profile right.
249
+ - Bottom tab bar (mobile): `홈`, `이용 내역`, `더보기`. Active label `#1ec59f` / icon filled, inactive `#999999`. Mint marks the active tab.
250
+
251
+ ## 5. Layout Principles
252
+
253
+ ### Spacing System
254
+ - Base unit: 8px
255
+ - Scale: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px
256
+ - Global gutter (mobile): 16-20px each side
257
+ - Bottom action bar: 16px inset + safe-area
258
+ - Card internal padding: 16-20px (generous, echoing the roomy-interior promise)
259
+
260
+ ### Grid & Container
261
+ - Mobile-first, single-column over a full-bleed map canvas
262
+ - The map fills the screen; controls float as cards / bottom sheet
263
+ - Detail / history: single-column list, 16px gutter
264
+ - Marketing web (tadatada.com): full-width sections, centered content, navy contrast fields
265
+
266
+ ### Whitespace Philosophy
267
+ - **Space is the product**: TADA's physical differentiator was room; the UI echoes it with airy layouts and generous card padding.
268
+ - **One action, lots of air**: The primary CTA sits alone at the bottom with breathing room around it — no competing buttons.
269
+ - **Map dominates**: Chrome is minimal so the map and the next action own the screen.
270
+
271
+ ### Border Radius Scale
272
+ - Subtle (8px): Badges, small tags
273
+ - Comfortable (12px): Buttons, inputs, receipt cards
274
+ - Soft (16px): Vehicle cards, trip cards, bottom-sheet top corners
275
+ - Note: TADA is a *soft-corner* system — sharpness reads as aggressive / transactional, the opposite of the calm brand.
276
+
277
+ ## 6. Depth & Elevation
278
+
279
+ | Level | Treatment | Use |
280
+ |-------|-----------|-----|
281
+ | Flat (Level 0) | No shadow | Map canvas, default surfaces |
282
+ | Subtle (Level 1) | `0px 1px 3px rgba(0,0,0,0.06)` | List separation, slight lift |
283
+ | Standard (Level 2) | `0px 2px 8px rgba(0,0,0,0.08)` | Trip cards, floating controls over map |
284
+ | Floating (Level 3) | `0px 4px 16px rgba(0,0,0,0.12)` | Bottom sheets, dialogs |
285
+ | Action Bar | `0px -2px 12px rgba(0,0,0,0.08)` | Sticky bottom CTA container |
286
+
287
+ **Shadow Philosophy**: TADA keeps shadows soft and neutral. The calm of a mobility app comes from clarity — knowing where your car is — not from dramatic depth. Floating controls over the map get just enough shadow to detach from the map texture. No brand-tinted shadows; the mint lives in fills and borders, not in elevation.
288
+
289
+ ## 7. Do's and Don'ts
290
+
291
+ ### Do
292
+ - Use TADA Mint (`#1ec59f`) for the primary CTA, active pin, and trip-in-progress state
293
+ - Keep warm near-black `#1a1a1a` for headings and body
294
+ - Pin the single mint CTA to a thumb-reachable bottom action bar over the map
295
+ - Use tabular numerals at 700 weight for ETA minutes and fares
296
+ - Keep corners soft (12-16px) — the brand is calm, not aggressive
297
+ - Give cards and the action bar generous padding — echo the roomy interior
298
+ - Use `#e6f8f3` mint-light for selected vehicle cards and informational fills
299
+
300
+ ### Don't
301
+ - Don't use the mint as decoration — reserve it for interactive / brand / active states
302
+ - Don't put two primary buttons on one screen — one action at a time
303
+ - Don't sharpen corners to 0-4px — soft corners are the calm brand signal
304
+ - Don't crowd the map with chrome — controls float, the map dominates
305
+ - Don't use heavy or tinted shadows — calm comes from clarity, not depth
306
+ - Don't use red for anything but errors / cancellation
307
+ - Don't shout in copy — the voice is reassuring and unhurried
308
+
309
+ ## 8. Responsive Behavior
310
+
311
+ ### Breakpoints
312
+ | Name | Width | Key Changes |
313
+ |------|-------|-------------|
314
+ | Mobile (Primary) | <480px | Full map canvas, floating controls, bottom action bar |
315
+ | Tablet | 480-768px | Wider cards, optional side panel for trip detail |
316
+ | Desktop (Web) | >768px | Marketing site — centered sections, navy contrast fields; app mirrors mobile in a centered column |
317
+
318
+ ### Touch Targets
319
+ - Primary CTA: ~52-56px height
320
+ - Vehicle cards: minimum 64px tap height
321
+ - Bottom tab items: 56px height
322
+ - Map pins / floating controls: large, thumb-friendly
323
+
324
+ ### Collapsing Strategy
325
+ - Bottom sheet → centered modal on larger screens
326
+ - Sticky bottom CTA bar with safe-area insets on all devices
327
+ - Map stays full-bleed; controls reflow into a side panel on tablet+
328
+
329
+ ### Image Behavior
330
+ - Vehicle illustrations: clean line/flat art, consistent sizing
331
+ - Driver photos: circular, 40-48px on the trip card
332
+ - Map tiles: full-bleed, controls layered above with scrim where needed
333
+
334
+ ## 9. Agent Prompt Guide
335
+
336
+ ### Quick Color Reference
337
+ - Primary CTA: TADA Mint (`#1ec59f`)
338
+ - CTA Pressed: Mint Dark (`#17a384`)
339
+ - Background: Pure White (`#ffffff`)
340
+ - Surface fill: Gray 100 (`#f2f2f2`)
341
+ - Heading text: Calm Near-Black (`#1a1a1a`)
342
+ - Body text: Gray 600 (`#777777`)
343
+ - Caption: Gray 500 (`#999999`)
344
+ - Placeholder: Gray 400 (`#bbbbbb`)
345
+ - Border: Gray 200 (`#e5e5e5`)
346
+ - Mint light (selected/info): (`#e6f8f3`)
347
+ - Error: Red (`#ff4452`)
348
+ - Marketing dark field: Navy (`#19254d`)
349
+
350
+ ### Example Component Prompts
351
+ - "Create a TADA destination search field: #f2f2f2 bg, no border, 12px radius, 14px 16px 14px 44px padding (left location icon), placeholder '어디로 갈까요?' in 16px/400 #999999. Focus: #ffffff bg, 1px solid #1ec59f."
352
+ - "Build a primary CTA: #1ec59f bg, white text, 16px weight 700 Pretendard, padding 16px 20px, 12px radius, full-width, pinned to bottom action bar. Pressed #17a384. Label '호출하기'."
353
+ - "Design a vehicle option card: white bg, 1px #e5e5e5 border, 16px radius, 16px padding. Title 16px/600 #1a1a1a, fare estimate 16px/700 tabular #1a1a1a right-aligned. Selected: 1.5px #1ec59f border, #e6f8f3 fill."
354
+ - "Create a trip card over the map: white bg, no border, 16px radius, 20px padding, 0px 2px 8px rgba(0,0,0,0.08) shadow. Driver circular photo 44px, ETA in 22px/700 tabular #1a1a1a, status badge #e6f8f3 bg / #149378 / 8px radius '배차 완료'."
355
+ - "Design a status badge: #e6f8f3 bg, #149378 text, 12px/700 Pretendard, 4px 8px padding, 8px radius, '운행 중'."
356
+
357
+ ### Iteration Guide
358
+ 1. TADA mint `#1ec59f` is the brand + interactive accent — CTA, active pin, trip state
359
+ 2. Headings and body are warm `#1a1a1a`, never pure `#000`
360
+ 3. One primary action per screen, pinned to a thumb-reachable bottom bar
361
+ 4. ETA / fare numbers: 700 weight, tabular numerals
362
+ 5. Soft corners: 8px badges, 12px buttons/inputs, 16px cards/sheets
363
+ 6. Shadows soft and neutral — calm from clarity, not depth
364
+ 7. The map dominates; chrome floats and recedes
365
+
366
+ ---
367
+
368
+ ## 10. Voice & Tone
369
+
370
+ TADA speaks like a calm, reliable driver who has everything handled — reassuring, unhurried, never salesy. The voice exists to reduce the small anxieties of getting somewhere: where is the car, how long, what's the fare. Korean copy uses warm, clear endings (`-요`, `-해요`) and direct imperatives (`호출하기`, `타러 가기`) over institutional `-ㅂ니다`. The brand's whole thesis is captured in its positioning that better movement makes for better living — that a ride should feel like ease, not a chore.
371
+
372
+ | Context | Tone |
373
+ |---|---|
374
+ | CTAs | Clear Korean imperatives (`호출하기`, `이대로 호출`, `결제하기`, `타러 가기`) |
375
+ | Status updates | Reassuring present-tense (`기사님이 배차되었어요`, `곧 도착해요`). |
376
+ | ETA / fare | Bare facts, exact numbers (`3분 후 도착`, `예상 요금 8,400원`). No vague "약". |
377
+ | Empty states | Gentle + next step (`최근 이용 내역이 없어요` + `호출하러 가기`). Never `데이터가 없습니다`. |
378
+ | Error messages | Blameless + actionable (`주변에 차량이 없어요. 잠시 후 다시 시도해 주세요`). No `오류가 발생했습니다`. |
379
+ | Cancellation | Clear, no guilt (`호출을 취소했어요`). |
380
+ | Onboarding | One idea per screen, calm and welcoming. |
381
+
382
+ **Forbidden phrases.** `지금 안 부르면 손해`, `초특가 호출!!!`, `데이터가 없습니다`, `오류가 발생했습니다`, `불편을 드려 죄송합니다`, vague fare approximations (`약 ~원`) on the confirm screen. The brand sells calm; urgency and hype are off-brand. Emoji avoided in trip-status and fare contexts.
383
+
384
+ **Voice samples.**
385
+
386
+ - `회원가입 없이 바로 타다 부르기` — frictionless-entry CTA on the marketing site. <!-- cited: live tadatada.com, 2026-05 -->
387
+ - `어디로 갈까요?` — destination-field placeholder, the home-screen greeting. <!-- illustrative: standard mobility destination-entry pattern -->
388
+ - `기사님이 배차되었어요` — driver-assigned status. <!-- illustrative: standard TADA trip-status pattern -->
389
+ - `곧 도착해요` — arrival-imminent status. <!-- illustrative: standard TADA trip-status pattern -->
390
+ - `호출하기` — primary call-a-car CTA. <!-- illustrative: standard TADA CTA pattern -->
391
+
392
+ ## 11. Brand Narrative
393
+
394
+ TADA (타다) launched on **October 8, 2018**, built by **VCNC** — a startup best known for the couples app Between, which was acquired by car-sharing company **SOCAR** and redirected at mobility ([namu.wiki — 타다(서비스)](https://namu.wiki/w/%ED%83%80%EB%8B%A4(%EC%84%9C%EB%B9%84%EC%8A%A4)), [ko.wikipedia.org — 타다 플랫폼](https://ko.wikipedia.org/wiki/%ED%83%80%EB%8B%A4_(%ED%94%8C%EB%9E%AB%ED%8F%BC))). Its original product — roomy 11-seat vans summoned on demand with a driver — was a deliberate repositioning of "calling a car" away from the stress of hailing a taxi toward something clean, spacious, and premium. The mint-teal brand color, the airy interface, and the reassuring voice all served that single promise: *better movement, better living.*
395
+
396
+ TADA's early trajectory is also a famous chapter in Korean tech-regulation history — its rapid growth collided with the taxi industry and led to the so-called "타다 금지법," forcing a pivot of the original van service. The brand survived and continued under the VCNC / SOCAR umbrella, evolving into a franchise-based premium-taxi and reservation-mobility platform (airport transfers, premium taxi, business shuttles) while keeping the calm, space-forward design identity ([thevc.kr — VCNC](https://thevc.kr/VCNC), [mydailybyte.com — about TADA](https://mydailybyte.com/about_tada/)).
397
+
398
+ What TADA refuses: the aggressive yellow-and-meter aesthetic of legacy taxis, the surge-shaming red urgency of some global ride apps, and chrome-heavy interfaces that bury the map. Its design treats the act of moving through the city as something that can feel calm — a roomy seat, a clear ETA, one mint button, and the quiet confidence that the trip is handled.
399
+
400
+ *Note on color: the current public marketing site (tadatada.com) leans on a deep navy (`#19254d`) as its contrast field, reflecting the post-relaunch premium-taxi positioning. The mint-teal documented here as `primary_color` is TADA's signature brand identity established at launch and associated with the brand across its app and marketing; the navy is retained as the dark marketing surface (§2 Semantic / Info Navy).*
401
+
402
+ ## 12. Principles
403
+
404
+ 1. **Space is the brand.** TADA's physical promise was room; the UI echoes it with airy layouts and generous padding. *UI implication:* never compress cards or the action bar to fit more — the breathing room is the brand signal.
405
+ 2. **One mint, one action.** The mint marks the single next thing to tap; each screen resolves to one primary action. *UI implication:* two primary buttons on a screen means it's two screens; mint never decorates.
406
+ 3. **The map dominates, chrome floats.** A mobility app is judged on one-glance clarity. *UI implication:* controls float as cards / a bottom sheet over a full-bleed map; chrome stays minimal.
407
+ 4. **Calm over urgency.** The brand sells ease, not pressure. *UI implication:* no surge-shaming red, no hype; status copy is reassuring and present-tense.
408
+ 5. **Numbers are typography.** ETA and fare are the most-glanced data. *UI implication:* render them at 700 weight with tabular numerals so they stay stable as they update.
409
+ 6. **Soft corners signal calm.** 12-16px radii throughout. *UI implication:* sharp 0-4px corners read as transactional / aggressive and should be softened.
410
+
411
+ ## 13. Personas
412
+
413
+ *Personas are fictional archetypes informed by publicly described Korean premium-mobility user segments, not individual people.*
414
+
415
+ **수민 (Sumin), 34, Seoul.** Consultant who takes late client meetings in 강남. Calls TADA when she wants a clean, predictable ride home without the variability of hailing a taxi. Glances at the ETA and fare, taps the mint button once, and relaxes. Values that the app never makes her think.
416
+
417
+ **준호 (Junho), 41, Seoul.** Frequent flyer, books TADA airport transfers the night before a 6am flight. Needs the reservation flow to be unambiguous — pickup time, vehicle, fare locked in. Distrusts surge pricing; appreciates that TADA shows an exact estimate, not a vague range.
418
+
419
+ **예린 (Yerin), 29, Seongnam.** Marketing manager who uses TADA Business for client pickups. Treats the calm interface as a reflection of professionalism — a chaotic app would embarrass her in front of a client in the back seat.
420
+
421
+ **민철 (Mincheol), 52, Seoul.** Less app-fluent; his daughter set up TADA for him. Relies on the single large mint CTA and the clear "곧 도착해요" status. Would abandon a screen that asked him to make more than one decision at a time.
422
+
423
+ ## 14. States
424
+
425
+ | State | Treatment |
426
+ |---|---|
427
+ | **Empty (no trip history)** | Single gentle line (`최근 이용 내역이 없어요`) in 14px/400 `#777777`, 12px gap, primary-mint CTA `호출하러 가기`. No harsh empty illustration. |
428
+ | **Empty (no cars nearby)** | One line `주변에 차량이 없어요` in 16px/600 `#1a1a1a`, subline `잠시 후 다시 시도해 주세요` 14px/400 `#777777`, retry button in mint. |
429
+ | **Empty (search no results)** | `'{검색어}'에 대한 장소를 찾지 못했어요` 14px/400 `#777777`, recent destinations below. |
430
+ | **Loading (matching driver)** | Mint pulsing ring animation over the map with `기사님을 찾고 있어요` 16px/600 `#1a1a1a`. No blocking spinner overlay. |
431
+ | **Loading (map / ETA)** | ETA renders as `--분` until resolved; never a skeleton block that looks like a real value. Map tiles fade in. |
432
+ | **Loading (call action)** | Mint button text swaps to a 24px `#ffffff` spinner — geometry unchanged for frame-stability. Prevents double-call. |
433
+ | **Error (inline form)** | Input border `#ff4452` 1px, helper text 13px/400 `#ff4452` below. One actionable sentence. |
434
+ | **Error (toast)** | `#1a1a1a` background, white 14px/500 text, 12px radius, 3s auto-dismiss. Above the bottom action bar. One sentence, no icon. |
435
+ | **Error (network / blocking)** | Centered: 16px/700 `#1a1a1a` headline (`연결이 불안정해요`), 14px/400 `#777777` subline, mint retry button. No illustration. |
436
+ | **Success (driver assigned)** | Trip card slides up: mint `배차 완료` status badge, driver photo + name + vehicle, ETA in 22px/700 tabular. Not a toast — a dedicated card. |
437
+ | **Success (trip complete)** | Dedicated receipt screen: `이용해 주셔서 감사해요` 22px/700 `#1a1a1a`, fare breakdown card, rating prompt, mint `확인` CTA. |
438
+ | **Skeleton** | `#f2f2f2` blocks at exact card dimensions, shimmer 1.2s. ETA / fare slots show `--`, never inferred placeholders. |
439
+ | **Disabled** | Button bg drops to `#bbbbbb`, text stays `#ffffff`. No outline tricks. |
440
+
441
+ ## 15. Motion & Easing
442
+
443
+ **Durations** (named, not raw milliseconds):
444
+
445
+ | Token | Value | Use |
446
+ |---|---|---|
447
+ | `motion-instant` | 0ms | Toggle flips, checkbox states |
448
+ | `motion-fast` | 150ms | Hover, focus, button press dim, small reveals |
449
+ | `motion-standard` | 250ms | Default — sheet opens, card expands, tab switches |
450
+ | `motion-slow` | 400ms | Emphasized — driver-assigned confirmation, success entry |
451
+ | `motion-page` | 320ms | Route push/pop |
452
+ | `motion-pulse` | 1400ms | Matching-driver pulse-ring loop |
453
+
454
+ **Easings:**
455
+
456
+ | Token | Curve | Use |
457
+ |---|---|---|
458
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Sheets, cards, route entries |
459
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals, sheet close |
460
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions, map control reflow |
461
+ | `ease-gentle-spring` | `cubic-bezier(0.34, 1.3, 0.64, 1)` | Reserved — driver-assigned trip-card rise. Gentle reassurance, never bouncy. |
462
+
463
+ **Signature motions.**
464
+
465
+ 1. **Matching pulse.** While finding a driver, a soft mint ring pulses outward from the user's map pin on `motion-pulse` loop — calm, breathing, never frantic. The opposite of a frantic loading spinner.
466
+ 2. **Trip-card rise.** When a driver is assigned, the trip card rises from the bottom (`motion-slow / ease-gentle-spring`) with a gentle settle — the one place spring is licensed, signalling reassurance that the trip is handled.
467
+ 3. **ETA tick.** When the ETA updates, the old number fades out and the new slides up 8px (`motion-fast / ease-enter`). Never cross-fade a number — a flickering ETA reads as a bug.
468
+ 4. **Bottom-sheet presentation.** Sheets rise from `y+40px` (`motion-standard / ease-enter`) with a synchronized backdrop fade `rgba(0,0,0,0)` → `rgba(0,0,0,0.3)`. Dismissal `motion-fast / ease-exit`.
469
+ 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, the matching pulse becomes a static ring, all `motion-*` collapse to `motion-instant`, cross-fades replace slides. The app stays fully usable.
470
+
471
+ <!--
472
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
473
+
474
+ Tier 1 — Direct verification (MCP playwright, 2026-05-27):
475
+ - https://www.tadatada.com/ (live marketing site, redirected from
476
+ tadatada.com). Confirmed: body bg #ffffff, body color rgb(0,0,0),
477
+ Pretendard/system sans; dominant brand/contrast field is a deep navy
478
+ rgb(25,37,77) = #19254d (~84+ occurrences) on hero CTA banners
479
+ ("UPDATE 회원가입 없이 바로 타다 부르기"); secondary deep navy
480
+ rgb(56,79,133); light-blue accent rgb(128,202,255); card radius 4px on
481
+ some marketing tiles. The current marketing site does NOT prominently
482
+ display the mint as the dominant color — see assumed-vs-verified note.
483
+
484
+ Tier 2 — Press / secondary (WebSearch, 2026-05):
485
+ - https://namu.wiki/w/타다(서비스) — launch 2018-10-08, VCNC build,
486
+ SOCAR acquisition of VCNC, "타다 금지법" regulatory history, pivot
487
+ to franchise premium-taxi / reservation mobility.
488
+ - https://ko.wikipedia.org/wiki/타다_(플랫폼) — platform overview,
489
+ van-hailing origin, regulatory pivot.
490
+ - https://thevc.kr/VCNC — VCNC company / investment profile.
491
+ - https://mydailybyte.com/about_tada/ — TADA as a comprehensive mobility
492
+ brand presenting a new movement standard.
493
+
494
+ ASSUMED-VS-VERIFIED NOTE: The task brief assumed mint/teal #1EC59F as
495
+ primary. The CURRENT live marketing site (tadatada.com) is dominated by
496
+ deep navy #19254d, NOT mint. The mint-teal #1EC59F is TADA's well-known
497
+ signature brand identity established at the 2018 launch and associated
498
+ with the brand across its app history. This DESIGN.md documents the mint
499
+ as primary_color (the brand's identity) AND documents the live navy
500
+ #19254d as the dark marketing surface (§2 Semantic, §11 note). The exact
501
+ mint hex #1EC59F is the assumed brand value, NOT re-confirmed by a live
502
+ token grab on the current marketing site — flagged honestly.
503
+
504
+ Personas (§13) are fictional archetypes informed by publicly described
505
+ Korean premium-mobility user segments. Any resemblance to specific
506
+ individuals is unintended.
507
+
508
+ Interpretive claims (editorial, not documented TADA statements):
509
+ - "Space is the brand" / calm-positioning framing (§1, §11, §12) —
510
+ editorial reading of the roomy-interior product origin and brand voice.
511
+ - The 6 numbered principles (§12) — synthesized from the mobility-app
512
+ pattern + brand posture; not a published design-principles list.
513
+ - All §4 component geometry (mint button radius/padding, card radii,
514
+ badge values) is reconciled from the calm soft-corner brand posture +
515
+ mobility-UX conventions, NOT from a live app token grab (the app is
516
+ native, not web-inspectable here). Re-verify against the live app /
517
+ an official DS before treating as authoritative specs.
518
+ - The spring stance and signature motions (§15) — derived from the calm
519
+ brand posture, not documented TADA motion rules.
520
+ -->
521
+
522
+ ---
523
+
524
+ **Verified:** 2026-05-27 (omd:add-reference initial create — Tier 1 marketing-site inspect / Tier 2 press confirmed)
525
+ **Tier 1 sources:** www.tadatada.com (live playwright inspect — body `#000` on `#fff`, Pretendard/system sans; dominant marketing field navy `#19254d`; light-blue accent `#80caff`). Note: live marketing site is navy-led, not mint-led.
526
+ **Tier 2 sources:** getdesign.md/tada — not checked. styles.refero.design — not checked. Namu Wiki + Korean Wikipedia + THE VC + mydailybyte (2018 launch, VCNC/SOCAR, 타다 금지법 regulatory pivot, premium-mobility repositioning).
527
+ **Style ref:** `toss` (KR calm product-tone scaffolding).
528
+ **Conflicts unresolved:** Assumed primary mint `#1ec59f` is TADA's signature brand identity but the CURRENT marketing site is navy-led (`#19254d`). Documented mint as `primary_color` (brand identity) with navy retained as the dark marketing surface. The exact mint hex is the assumed brand value, NOT re-confirmed by live token grab on the current site. Native app not web-inspectable; §4 component geometry reconciled from brand posture + mobility-UX conventions. Re-verify against the live app or an official DS.