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.
- package/AGENTS.md +1 -0
- package/README.ko.md +1 -1
- package/README.md +9 -9
- package/agents/omd-master.md +13 -1
- package/data/reference-fingerprints.json +1428 -523
- package/package.json +5 -4
- package/scripts/ctx-prime.cjs +266 -0
- package/skills/omd-harness/SKILL.md +135 -7
- package/skills/omd-kr-writer/SKILL.md +1 -1
- package/web/references/17live/DESIGN.md +424 -0
- package/web/references/alipay/DESIGN.md +456 -0
- package/web/references/appier/DESIGN.md +420 -0
- package/web/references/bilibili/DESIGN.md +426 -0
- package/web/references/class101/DESIGN.md +433 -0
- package/web/references/cookpad/DESIGN.md +357 -0
- package/web/references/dji/DESIGN.md +416 -0
- package/web/references/gogoro/DESIGN.md +403 -0
- package/web/references/ichef/DESIGN.md +411 -0
- package/web/references/kakaopay/DESIGN.md +1 -1
- package/web/references/kakaot/DESIGN.md +454 -0
- package/web/references/kkday/DESIGN.md +423 -0
- package/web/references/meituan/DESIGN.md +424 -0
- package/web/references/millie/DESIGN.md +533 -0
- package/web/references/money-forward/DESIGN.md +401 -0
- package/web/references/myrealtrip/DESIGN.md +445 -0
- package/web/references/naverwebtoon/DESIGN.md +429 -0
- package/web/references/note/DESIGN.md +318 -0
- package/web/references/publy/DESIGN.md +511 -0
- package/web/references/smarthr/DESIGN.md +404 -0
- package/web/references/smartnews/DESIGN.md +331 -0
- package/web/references/spoon/DESIGN.md +446 -0
- package/web/references/tada/DESIGN.md +528 -0
- package/web/references/tossbank/DESIGN.md +519 -0
- package/web/references/triple/DESIGN.md +434 -0
- package/web/references/tumblbug/DESIGN.md +530 -0
- package/web/references/watcha/DESIGN.md +425 -0
- package/web/references/wavve/DESIGN.md +438 -0
- package/web/references/wconcept/DESIGN.md +511 -0
- package/web/references/xiaohongshu/DESIGN.md +423 -0
- 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
|
+
-->
|