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,454 @@
1
+ ---
2
+ id: kakaot
3
+ name: Kakao T
4
+ country: KR
5
+ category: consumer-tech
6
+ homepage: "https://www.kakaomobility.com"
7
+ primary_color: "#FEE500"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=kakaomobility.com&sz=128"
11
+ verified: "2026-05-27"
12
+ omd: "0.1"
13
+ ---
14
+
15
+ # Design System Inspiration of Kakao T (카카오 T)
16
+
17
+ ## 1. Visual Theme & Atmosphere
18
+
19
+ Kakao T is the all-in-one mobility app from Kakao Mobility — taxi, designated-driver (대리운전), parking, bike, navigation, flights, and quick-delivery, all behind one yellow "T". Its visual identity sits on a knife's edge between two registers. The brand color is the famous **Kakao yellow `#FEE500`** — the same warm, friendly, instantly-Korean yellow that KakaoTalk made a national signal — but the mobility product itself reads far more sober than that yellow alone would suggest. On the corporate Kakao Mobility surface the palette is black-and-white-dominant: deep charcoal headings, generous whitespace, restrained sans-serif type, with yellow used as a sparing accent rather than a flood. The atmosphere is "friendly infrastructure" — approachable enough that anyone hails a taxi without thinking, serious enough to be trusted with real-time location and payment.
20
+
21
+ That black-led restraint is deliberate. A mobility app is, at the moment of use, mostly a **map**: a near-full-screen view of streets, cars, and routes. Chrome must recede so the map and the live trip state dominate. Yellow then does precise, high-attention work — the primary "호출하기" (call) CTA, the active vehicle marker, the matched-driver highlight. Against a map and white sheets, `#FEE500` is a beacon, not a wallpaper. Black (`#000000` / near-black `#191919`) carries text and the secondary "dark" actions, giving the brand its grown-up, get-you-there-safely tone.
22
+
23
+ Typography follows Kakao's house direction — the custom **Kakao** typeface family (Kakao OTF / Kakao Sandoll) for branded surfaces, with **Pretendard** and the standard Korean system stack as the practical product-UI fallback. Type stays clean, sentence-case, and legible at a glance, because riders read it in motion: on a moving vehicle, at a curb, in one hand.
24
+
25
+ **Key Characteristics:**
26
+ - Kakao yellow `#FEE500` as the brand color and high-attention CTA accent (not a flood)
27
+ - Black / near-black (`#000000` / `#191919`) leading text and "dark" actions — the grown-up half of the palette
28
+ - Map-first: chrome recedes so the live map and trip state dominate
29
+ - Kakao house typeface for brand surfaces; Pretendard / Korean system stack for product UI
30
+ - Friendly-but-trustworthy "mobility infrastructure" tone, not playful-cute
31
+ - Rounded, soft component geometry (8–12px radii) keeping the yellow approachable
32
+ - Bottom-sheet-driven flows over a persistent map canvas
33
+
34
+ ## 2. Color Palette & Roles
35
+
36
+ Kakao Mobility does not publish a public UI token layer. Brand yellow `#FEE500` is the well-documented Kakao corporate color; product UI grays/blacks below follow the live black-led corporate surface (kakaomobility.com, WebFetch 2026-05-27) and standard Korean app conventions. Treat product hexes as conventional, not from a documented token doc.
37
+
38
+ ### Brand
39
+ - **Kakao Yellow** (`#FEE500`): The signature color. Primary CTA (호출하기), active vehicle marker, matched-driver highlight, logo lockup. High-attention accent — used sparingly, never as a full background flood.
40
+ - **Kakao Yellow Pressed** (`#F2D900`): Slightly deeper yellow for pressed/hover on the primary CTA.
41
+
42
+ ### Text / Dark
43
+ - **Kakao Black** (`#000000`): Logo "T", strongest brand text, "dark" primary action backgrounds.
44
+ - **Near Black** (`#191919`): Primary headings and labels — the warm near-black of the corporate surface.
45
+ - **Text Strong** (`#26282B`): Strong body labels, list titles.
46
+ - **Text Body** (`#4B4F54`): Body text, descriptions, trip metadata.
47
+ - **Text Secondary** (`#76787A`): Secondary labels, captions, timestamps.
48
+ - **Text Tertiary** (`#A2A4A6`): Placeholder, disabled labels, low-emphasis fine print.
49
+
50
+ ### Surfaces
51
+ - **Pure White** (`#FFFFFF`): Bottom sheets, cards, the chrome over the map.
52
+ - **Surface Gray** (`#F5F6F7`): Section backgrounds, inactive segmented backgrounds, skeleton blocks.
53
+ - **Surface Gray Strong** (`#EBECED`): Dividers' surface variant, secondary fills.
54
+
55
+ ### Borders
56
+ - **Divider** (`#E5E6E8`): Hairline row separators, card borders.
57
+ - **Border Strong** (`#D1D3D5`): Active input outlines, emphasized edges.
58
+
59
+ ### Semantic
60
+ - **Success** (`#0FB882`): Trip-complete, payment-confirmed, on-the-way green.
61
+ - **Info / In-progress** (`#3478F6`): En-route status, ETA accent, map route line.
62
+ - **Warning** (`#FF8A00`): Surge / wait advisories, attention states.
63
+ - **Error** (`#F5444C`): Cancellation, payment failure, destructive actions.
64
+
65
+ ## 3. Typography Rules
66
+
67
+ ### Font Family
68
+ - **Brand**: `"Kakao", "Kakao OTF", ...` — the Kakao house typeface for branded / marketing surfaces
69
+ - **Product UI**: `Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", -apple-system, BlinkMacSystemFont, "Noto Sans KR", sans-serif`
70
+ - **Monospace**: `"SF Mono", SFMono-Regular, Menlo, Consolas, monospace` (fare/ETA tabular contexts)
71
+
72
+ ### Hierarchy
73
+
74
+ | Role | Size | Weight | Line Height | Use |
75
+ |------|------|--------|-------------|-----|
76
+ | Display Hero | 28–32px | 700 | 1.3 | Marketing hero, onboarding |
77
+ | Heading Large | 22px | 700 | 1.35 | Sheet headers, "어디로 갈까요?" |
78
+ | Heading | 18px | 600 | 1.4 | Card titles, vehicle-class headers |
79
+ | Subtitle | 16px | 600 | 1.5 | List headers, fare summary label |
80
+ | Body Large | 16px | 400 | 1.5 | Descriptions, address detail |
81
+ | Body | 14px | 400 | 1.5 | Standard reading text, trip metadata |
82
+ | Label / CTA | 16px | 600 | 1.4 | Button labels (호출하기) |
83
+ | Caption | 12px | 400 | 1.4 | Timestamps, fine print, ETA sublabels |
84
+ | Fare Display | 24px+ | 700 | tight | Estimated/final fare — tabular numerals |
85
+
86
+ ### Conventions
87
+ - **Three weights**: 700 for headings + fares, 600 for CTAs/emphasis, 400 for body.
88
+ - **Tabular numerals for money + time**: fares, ETAs, distances use fixed-width digits so they don't jitter as they update live.
89
+ - **Sentence-case, no all-caps**: Korean and Latin both stay sentence-case — riders read in motion.
90
+ - **Glanceable hierarchy**: trip state (ETA, fare, status) is always the highest-contrast text on screen.
91
+
92
+ ## 4. Component Stylings
93
+
94
+ Kakao Mobility publishes no public component spec; geometry below reflects the live corporate surface and standard Kakao/Korean app conventions. Treat as conventional.
95
+
96
+ ### Buttons
97
+
98
+ **Primary (호출 / Yellow)**
99
+ - Background: `#FEE500`
100
+ - Text: `#191919`
101
+ - Border: none
102
+ - Radius: 12px
103
+ - Padding: 14px 20px
104
+ - Font: 16px / 600 / Pretendard
105
+ - Pressed: background `#F2D900`
106
+ - Disabled: background `#F5F6F7`, text `#A2A4A6`
107
+ - Use: The primary call-to-action — 호출하기, 결제하기. Black text on yellow for contrast. ~52px tall.
108
+
109
+ **Dark (Secondary primary)**
110
+ - Background: `#191919`
111
+ - Text: `#FFFFFF`
112
+ - Border: none
113
+ - Radius: 12px
114
+ - Padding: 14px 20px
115
+ - Font: 16px / 600 / Pretendard
116
+ - Use: Strong action where yellow would be too loud (로그인, 다음). The grown-up half of the palette.
117
+
118
+ **Outline / Ghost**
119
+ - Background: `#FFFFFF`
120
+ - Text: `#26282B`
121
+ - Border: 1px solid `#D1D3D5`
122
+ - Radius: 12px
123
+ - Padding: 14px 20px
124
+ - Font: 16px / 600 / Pretendard
125
+ - Use: Secondary action paired with a primary (취소, 다른 차량 보기)
126
+
127
+ **Danger**
128
+ - Background: `#FFFFFF`
129
+ - Text: `#F5444C`
130
+ - Border: 1px solid `#F5444C`
131
+ - Radius: 12px
132
+ - Padding: 14px 20px
133
+ - Font: 16px / 600 / Pretendard
134
+ - Use: Destructive (호출 취소)
135
+
136
+ ### Inputs
137
+
138
+ **Search / Address Field**
139
+ - Background: `#F5F6F7`
140
+ - Text: `#26282B`
141
+ - Border: none (filled)
142
+ - Radius: 12px
143
+ - Padding: 14px 16px
144
+ - Font: 16px / 400 / Pretendard
145
+ - Placeholder: `#A2A4A6`
146
+ - Focus: 1px border `#191919`
147
+ - Use: "어디로 갈까요?" destination search — the entry point of every trip
148
+
149
+ **Error**
150
+ - Background: `#FFFFFF`
151
+ - Text: `#26282B`
152
+ - Border: 1px solid `#F5444C`
153
+ - Radius: 12px
154
+ - Padding: 14px 16px
155
+ - Font: 16px / 400 / Pretendard
156
+ - Use: Invalid input, paired with `#F5444C` caption
157
+
158
+ ### Cards
159
+
160
+ **Vehicle-Class Card**
161
+ - Background: `#FFFFFF`
162
+ - Border: 1px solid `#E5E6E8`
163
+ - Radius: 12px
164
+ - Padding: 16px
165
+ - Shadow: none (border-defined)
166
+ - Selected: 2px border `#191919` + subtle `#FEE500` accent on the class icon
167
+ - Use: 일반 / 블루 / 모범 / 벤티 selection rows in the call sheet
168
+
169
+ **Trip / Receipt Card**
170
+ - Background: `#FFFFFF`
171
+ - Border: none
172
+ - Radius: 16px
173
+ - Padding: 20px
174
+ - Shadow: `0px 2px 12px rgba(0,0,0,0.08)`
175
+ - Use: Active-trip summary, ride receipt — fare 24px/700 tabular
176
+
177
+ ### Badges / Chips
178
+
179
+ **Status Chip**
180
+ - Background: `#F5F6F7`
181
+ - Text: `#4B4F54`
182
+ - Border: none
183
+ - Radius: 999px
184
+ - Padding: 4px 12px
185
+ - Font: 12px / 600 / Pretendard
186
+ - Use: Filter chips, vehicle tags (예약, 추천)
187
+
188
+ **Live Status Badge**
189
+ - Background: `rgba(15,184,130,0.12)` (success) / `rgba(52,120,246,0.12)` (en-route)
190
+ - Text: `#0FB882` / `#3478F6`
191
+ - Border: none
192
+ - Radius: 999px
193
+ - Padding: 4px 10px
194
+ - Font: 12px / 700 / Pretendard
195
+ - Use: 도착 / 운행 중 status pill on the trip card
196
+
197
+ ### Bottom Sheet (signature surface)
198
+
199
+ **Trip Sheet**
200
+ - Background: `#FFFFFF`
201
+ - Text: `#191919`
202
+ - Border: none
203
+ - Radius: 20px (top corners only)
204
+ - Padding: 20px
205
+ - Shadow: `0px -4px 16px rgba(0,0,0,0.10)`
206
+ - Handle: 36px × 4px `#E5E6E8` pill, centered top
207
+ - Use: The persistent sheet riding over the map — destination, vehicle pick, matched-driver, en-route ETA. The core mobility interaction surface.
208
+
209
+ ### Tabs / Nav
210
+
211
+ **Bottom Tab (Active)**
212
+ - Background: `#FFFFFF`
213
+ - Active text/icon: `#191919`
214
+ - Inactive: `#A2A4A6`
215
+ - Border: 1px solid `#E5E6E8` (top only)
216
+ - Font: 11px / 500 / Pretendard
217
+ - Use: 홈 / 이용내역 / 결제 / 전체 navigation
218
+
219
+ ### Toasts
220
+
221
+ **Snackbar**
222
+ - Background: `#26282B`
223
+ - Text: `#FFFFFF`
224
+ - Border: none
225
+ - Radius: 12px
226
+ - Padding: 12px 16px
227
+ - Shadow: `0px 4px 12px rgba(0,0,0,0.16)`
228
+ - Font: 14px / 500 / Pretendard
229
+ - Use: "호출이 취소되었어요" transient feedback, 3s auto-dismiss
230
+
231
+ ---
232
+
233
+ **Verified:** 2026-05-27
234
+ **Tier 1 sources:** kakaomobility.com (live WebFetch 2026-05-27 — black-dominant corporate surface, generous whitespace, minimal text-link CTAs `자세히 보기`, Korean hero `우리의 기술로 생활을 움직입니다`, yellow `#FEE500` notably reserved/sparing on the corporate page). Kakao yellow `#FEE500` is the widely-documented Kakao corporate brand color.
235
+ **Tier 2 sources:** getdesign.md/kakaot — not checked. styles.refero.design — not checked. Kakao house typeface (Kakao OTF / Sandoll) referenced from SandollCloud listing; product-UI Pretendard fallback is a convention, not a verified token.
236
+ **Conflicts unresolved:** Brand yellow `#FEE500` (high-attention accent) vs. black-led product/corporate surface — resolved as a documented two-register palette (yellow = beacon CTA, black = body + dark actions), consistent with the live corporate page where yellow is sparing.
237
+
238
+ ## 5. Layout Principles
239
+
240
+ ### Spacing System
241
+ - Base unit: 8px
242
+ - Common values: 4, 8, 12, 16, 20, 24, 32
243
+ - Sheet padding: 20px; map chrome insets: 16px
244
+
245
+ ### Grid & Container
246
+ - Map-canvas-first: a near-full-screen map with a draggable bottom sheet over it
247
+ - Sheet content: single-column, full-width with 20px h-padding
248
+ - Marketing/web: centered column, max ~1200px
249
+
250
+ ### Whitespace Philosophy
251
+ - **The map is the page.** Chrome recedes; the live map and trip state get the screen.
252
+ - **Sheet states stack.** Each trip step (destination → vehicle → matching → en-route) is its own sheet height; the sheet grows/shrinks rather than navigating pages.
253
+ - **Glance density.** Trip-critical info (ETA, fare, status) is large and high-contrast; everything else recedes.
254
+
255
+ ### Border Radius Scale
256
+ - Compact (8px): chips' inner, small controls
257
+ - Comfortable (12px): buttons, inputs, vehicle cards
258
+ - Large (16px): trip/receipt cards
259
+ - Sheet (20px): bottom-sheet top corners
260
+ - Pill (999px): status chips, handle
261
+
262
+ ## 6. Depth & Elevation
263
+
264
+ | Level | Treatment | Use |
265
+ |-------|-----------|-----|
266
+ | Flat (0) | No shadow, border-defined | Cards on white, list rows |
267
+ | Sheet (1) | `0px -4px 16px rgba(0,0,0,0.10)` | Bottom sheet over the map |
268
+ | Card (2) | `0px 2px 12px rgba(0,0,0,0.08)` | Trip / receipt cards |
269
+ | Floating (3) | `0px 4px 16px rgba(0,0,0,0.16)` | Toasts, floating map buttons (현재 위치) |
270
+
271
+ **Shadow philosophy.** Elevation matters most where chrome floats over the map — the bottom sheet and floating map controls cast soft, neutral, single-layer shadows so they read as "above the map." On flat white surfaces, depth is border-defined to keep the look calm. No colored shadows.
272
+
273
+ ## 7. Do's and Don'ts
274
+
275
+ ### Do
276
+ - Use `#FEE500` for the single primary CTA and live active markers — high-attention, sparing
277
+ - Put black `#191919` text on yellow buttons for contrast (never white on yellow)
278
+ - Let the map dominate; keep chrome to the bottom sheet and minimal top controls
279
+ - Use tabular numerals for fares, ETAs, and distances
280
+ - Use the dark `#191919` button for strong actions where yellow would be too loud
281
+
282
+ ### Don't
283
+ - Don't flood backgrounds with yellow — it's a beacon, not a wallpaper
284
+ - Don't use white text on the yellow CTA (fails contrast; black is correct)
285
+ - Don't crowd the map with chrome — trip state lives in the sheet
286
+ - Don't introduce a second saturated brand hue competing with yellow
287
+ - Don't make the tone cute/playful — mobility is friendly infrastructure, trusted with location + payment
288
+
289
+ ## 8. Responsive Behavior
290
+
291
+ ### Breakpoints
292
+ | Name | Width | Key Changes |
293
+ |------|-------|-------------|
294
+ | Mobile (Primary) | <768px | Full-screen map + draggable bottom sheet; the canonical experience |
295
+ | Tablet | 768–1024px | Map + side panel for trip flow |
296
+ | Desktop (Web) | >1024px | Marketing/corporate layout, centered ~1200px column |
297
+
298
+ ### Touch Targets
299
+ - Primary CTA: ~52px tall
300
+ - Vehicle-class rows: minimum 56px
301
+ - Floating map controls: 44–48px circular targets
302
+ - Sheet handle: large drag affordance
303
+
304
+ ### Collapsing Strategy
305
+ - The bottom sheet is the responsive unit — it expands to fill on small screens, becomes a fixed side panel on large
306
+ - Map stays full-bleed behind the sheet at all sizes
307
+
308
+ ### Image / Map Behavior
309
+ - Map tiles full-bleed; vehicle markers scale with zoom
310
+ - Vehicle-class icons: consistent 40–48px, yellow accent on selected
311
+
312
+ ## 9. Agent Prompt Guide
313
+
314
+ ### Quick Color Reference
315
+ - Primary CTA: Kakao Yellow `#FEE500`, black `#191919` text (pressed `#F2D900`)
316
+ - Dark action: `#191919` bg, white text
317
+ - Heading: `#191919`; body `#4B4F54`; secondary `#76787A`
318
+ - Surface: white `#FFFFFF`; gray `#F5F6F7`; divider `#E5E6E8`
319
+ - En-route: `#3478F6`; success `#0FB882`; error `#F5444C`
320
+
321
+ ### Example Component Prompts
322
+ - "Build a Kakao T call button: bg `#FEE500`, text `#191919` 16px/600, 12px radius, 14px 20px padding, ~52px tall, full-width. Pressed: bg `#F2D900`. Disabled: bg `#F5F6F7`, text `#A2A4A6`."
323
+ - "Create a Kakao T trip bottom sheet: white bg, 20px top-corner radius, `0px -4px 16px rgba(0,0,0,0.10)` shadow, 36×4px `#E5E6E8` handle centered top. Inside: matched-driver name 18px/600, ETA 24px/700 tabular, fare 24px/700 tabular, status pill `운행 중` in `#3478F6` on `rgba(52,120,246,0.12)`."
324
+ - "Design a vehicle-class card: white bg, 1px `#E5E6E8` border, 12px radius, 16px padding. Selected: 2px `#191919` border + yellow accent on the class icon. Class name 16px/600 `#26282B`, est. fare 14px/400 `#76787A` tabular."
325
+ - "Create a destination search field: bg `#F5F6F7`, no border, 12px radius, 14px 16px padding, 16px/400 text, placeholder `어디로 갈까요?` in `#A2A4A6`."
326
+
327
+ ### Iteration Guide
328
+ 1. Yellow `#FEE500` = primary CTA + live markers only; black text on it
329
+ 2. Map dominates; chrome lives in the bottom sheet
330
+ 3. Pretendard product stack with Korean fallbacks
331
+ 4. Fares/ETAs/distances = tabular numerals, high contrast
332
+ 5. Radius: 12px buttons/cards, 16px trip cards, 20px sheet
333
+ 6. Dark `#191919` button for strong non-yellow actions
334
+
335
+ ---
336
+
337
+ ## 10. Voice & Tone
338
+
339
+ Kakao T speaks like a calm, capable dispatcher who's already on it — friendly, brief, and reassuring, never chatty. The default register is soft-polite `해요체` (`잠시만 기다려 주세요`, `기사님을 찾고 있어요`), warm but trustworthy. Korean is the unquestioned primary voice. Copy is action-and-status-oriented because the user is mid-task and often in motion: tell them what's happening and what's next in as few words as possible. No exclamation-mark pressure, no marketing superlatives on trip surfaces.
340
+
341
+ | Context | Tone |
342
+ |---|---|
343
+ | CTAs | Short Korean verb (`호출하기`, `결제하기`, `호출 취소`). |
344
+ | Status updates | Present-progressive, reassuring (`기사님을 찾고 있어요`, `차량이 도착했어요`). |
345
+ | Success toasts | Past-tense single sentence (`결제가 완료되었어요`). No emoji on system surfaces. |
346
+ | Error messages | Blameless, specific, one action (`주변에 차량이 없어요. 잠시 후 다시 시도해 주세요`). Never `오류가 발생했습니다`. |
347
+ | Empty states | Warm + one action (`최근 이용 내역이 없어요`). |
348
+ | Safety / legal | Formal `합니다` register — the single exception (location, payment, 안심 disclosures). |
349
+
350
+ **Forbidden phrases.** `오류가 발생했습니다` (generic error), exclamation-as-pressure on CTAs, marketing superlatives (`최고의`, `역대급`) on trip chrome, English-first strings on Korean surfaces, emoji on system-generated trip toasts.
351
+
352
+ **Voice samples.**
353
+ - `우리의 기술로 생활을 움직입니다` — corporate mission line. <!-- verified: kakaomobility.com via WebFetch 2026-05-27 -->
354
+ - `자세히 보기` — corporate CTA pattern. <!-- verified: kakaomobility.com via WebFetch 2026-05-27 -->
355
+ - `기사님을 찾고 있어요` — illustrative matching-status copy. <!-- illustrative: follows Kakao T's matching flow; not verified verbatim -->
356
+ - `차량이 도착했어요` — illustrative arrival notification. <!-- illustrative: not verified as live copy -->
357
+
358
+ ## 11. Brand Narrative
359
+
360
+ Kakao T (카카오 T) is the mobility super-app of **Kakao Mobility Corp.**, the transportation arm of the Kakao group. It launched in 2017 — the "T" stands for *transportation* — consolidating what had been separate Kakao services (Kakao Taxi from 2015, Kakao Driver, Kakao Parking) into one app. Today it spans taxi, designated-driver (대리운전), parking, bike, navigation, flights, and quick-delivery: the single yellow icon Koreans tap to get from anywhere to anywhere.
361
+
362
+ The brand inherits Kakao's most powerful asset — the yellow. KakaoTalk made `#FEE500` a national signal of "the friendly app everyone uses," and Kakao T trades on that familiarity to make hailing a taxi feel as ordinary as sending a message. But mobility carries higher stakes than chat — real-time location, payment, a stranger's car — so the product dials the playfulness down: the corporate and product surfaces are black-led and sober, with yellow reserved for the moments that matter (the call button, the matched car). The design thesis is *friendly infrastructure*: approachable enough to use without thinking, serious enough to trust with your route home.
363
+
364
+ What Kakao T refuses: the loud, gamified maximalism of some consumer apps (the map and trip state must stay legible), and the cold, utilitarian gray of legacy transit interfaces. It occupies the warm middle — yellow when it counts, calm everywhere else.
365
+
366
+ ## 12. Principles
367
+
368
+ 1. **The map is the product.** At the moment of use the app is mostly a live map; chrome must recede. *UI implication:* trip state lives in a bottom sheet over a full-bleed map, not in stacked full-screen pages.
369
+ 2. **Yellow is a beacon, not a wallpaper.** `#FEE500` marks the single most important action and the live state. *UI implication:* one yellow CTA per screen; backgrounds stay white/black; black text on yellow for contrast.
370
+ 3. **Black is the grown-up half.** The sober black-led palette is what lets a playful yellow be trusted with location and payment. *UI implication:* strong non-yellow actions and all body text use `#191919`.
371
+ 4. **Glance, don't read.** Riders use the app in motion. *UI implication:* trip-critical info (ETA, fare, status) is the highest-contrast, largest text; everything else recedes.
372
+ 5. **State over navigation.** Each trip step grows the sheet rather than pushing a new page. *UI implication:* model flows as sheet heights and live status, not screen stacks.
373
+ 6. **Reassure, don't pressure.** Mobility copy is calm status, never urgency marketing. *UI implication:* present-progressive `해요체` status lines; no exclamation pressure on CTAs.
374
+
375
+ ## 13. Personas
376
+
377
+ *Personas are fictional archetypes informed by publicly described Korean mobility-app user segments, not individual people.*
378
+
379
+ **진우 (Jin-woo), 33, Seoul.** Office worker who takes a Kakao T taxi home after late nights. Wants one tap to call, a clear ETA, and auto-payment so he never fumbles cash. Trusts the matched-driver screen and the live map; ignores everything else.
380
+
381
+ **박부장 (Mr. Park), 49, Seongnam.** Frequent business traveler. Uses 모범/벤티 classes and 예약 for airport runs, and 대리운전 after dinners. Values reliability and a clear fare estimate over playfulness — the sober black UI is exactly why he trusts it.
382
+
383
+ **소연 (So-yeon), 26, Busan.** Mixes bike, taxi, and navigation depending on the trip. Hails late at night and relies on the 안심 (safety) features — sharing her route, the driver info. Reads the status line at a glance, on the move, one-handed.
384
+
385
+ ## 14. States
386
+
387
+ | State | Treatment |
388
+ |---|---|
389
+ | **Empty (no ride history)** | Single `#76787A` line (`최근 이용 내역이 없어요`) + one yellow CTA (`택시 호출하기`). No clutter. |
390
+ | **Empty (no nearby vehicles)** | `#76787A` line (`주변에 차량이 없어요`) + retry; map stays visible. |
391
+ | **Loading (matching driver)** | Pulsing radar/ring animation over the map in `#FEE500`; sheet shows `기사님을 찾고 있어요` with a subtle progress shimmer. |
392
+ | **Loading (sheet first paint)** | Skeleton blocks at `#F5F6F7` matching the sheet layout. Fares render as `--` until resolved. |
393
+ | **Error (call failed)** | Snackbar `#26282B` white text (`호출에 실패했어요. 다시 시도해 주세요`), 3s. Map unaffected. |
394
+ | **Error (inline field)** | Input border `#F5444C`, caption below in `#F5444C` 12px, one actionable sentence. |
395
+ | **Success (matched)** | Sheet transitions to matched-driver card — name, vehicle, plate, ETA 24px/700, live status pill `운행 중` in `#3478F6`. |
396
+ | **Success (payment)** | Receipt card with `#0FB882` checkmark, final fare 24px/700 tabular, single `확인`. |
397
+ | **Skeleton** | `#F5F6F7` blocks at exact dimensions, ~1.2s shimmer, component-radius rounding. Never on live fares (show `--`). |
398
+ | **Disabled (CTA)** | Yellow button → bg `#F5F6F7`, text `#A2A4A6`. Geometry unchanged. |
399
+
400
+ ## 15. Motion & Easing
401
+
402
+ Kakao T's motion is purposeful and reassuring — the sheet glides, the map pans smoothly, and live status updates feel calm rather than jumpy.
403
+
404
+ **Durations:**
405
+
406
+ | Token | Value | Use |
407
+ |---|---|---|
408
+ | `motion-instant` | 0ms | Toggle flips, chip select |
409
+ | `motion-fast` | 150ms | Hover, press, small reveals |
410
+ | `motion-standard` | 250ms | Sheet snap, card expand, tab switch |
411
+ | `motion-slow` | 400ms | Map fly-to, matched-driver reveal |
412
+ | `motion-sheet` | 300ms | Bottom-sheet height transitions between trip steps |
413
+
414
+ **Easings:**
415
+
416
+ | Token | Curve | Use |
417
+ |---|---|---|
418
+ | `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | Default — 90% of motion |
419
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Sheets, toasts appearing |
420
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
421
+ | `ease-emphasized` | `cubic-bezier(0.2, 0.0, 0, 1)` | Sheet step transitions, map fly-to |
422
+
423
+ **Spring stance.** Spring/overshoot is avoided on trip surfaces — bouncy motion would undercut the reassurance a mobility app needs. A gentle settle, not a bounce.
424
+
425
+ **Signature motions.**
426
+ 1. **Sheet step transition.** As the trip advances (destination → vehicle → matching → en-route), the bottom sheet animates its height with `motion-sheet / ease-emphasized` while content cross-fades. The sheet *grows*, it never navigates.
427
+ 2. **Driver-matching radar.** While matching, a yellow `#FEE500` radar/ring pulses outward from the pickup pin over the map — the one place the brand yellow becomes kinetic, signaling "we're finding your car."
428
+ 3. **Map fly-to.** On pickup/destination set, the map pans-and-zooms over `motion-slow / ease-emphasized` to frame the route.
429
+ 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, the radar becomes a static indicator, sheet transitions become instant opacity changes, and map fly-to snaps. No exceptions.
430
+
431
+ <!--
432
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
433
+
434
+ Tier 1 (UI tokens, §1–9): kakaomobility.com live WebFetch 2026-05-27 —
435
+ black-dominant corporate surface, generous whitespace, minimal text-link CTAs
436
+ (`자세히 보기`), Korean mission `우리의 기술로 생활을 움직입니다`, yellow
437
+ `#FEE500` reserved/sparing. Kakao yellow `#FEE500` is the widely-documented
438
+ Kakao corporate color. Kakao house typeface (Kakao OTF / Sandoll) per
439
+ SandollCloud listing; Pretendard product-UI fallback and product-UI hexes are
440
+ CONVENTIONAL (no public Kakao Mobility token doc), not verified tokens.
441
+
442
+ Tier 2 (founding/narrative): Kakao T launched 2017 under Kakao Mobility Corp.,
443
+ "T" = transportation, consolidating Kakao Taxi (2015) / Driver / Parking.
444
+ Service scope (taxi/대리/parking/bike/nav/flights/quick) per Kakao corporate
445
+ and app-store listings. General industry knowledge for the rest.
446
+
447
+ Voice samples: `우리의 기술로 생활을 움직입니다`, `자세히 보기` verified live.
448
+ `기사님을 찾고 있어요`, `차량이 도착했어요`, `결제가 완료되었어요` are
449
+ ILLUSTRATIVE patterns following Kakao T's matching/trip flow and `해요체`
450
+ register; not confirmed verbatim.
451
+
452
+ Personas (§13) are fictional archetypes. Any resemblance to specific users is
453
+ unintended.
454
+ -->