oh-my-design-cli 1.8.7 → 1.9.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 (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -8,595 +8,294 @@ primary_color: "#ffe300"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: kakaotalk
11
- verified: "2026-05-15"
11
+ verified: "2026-07-12"
12
12
  omd: "0.1"
13
13
  ds:
14
14
  name: KakaoBank Brand Resource
15
15
  url: "https://www.kakaobank.com/view/about/brand/resource"
16
16
  type: brand
17
- description: "KakaoBank Brand Identity Guidelines V2.0 logo system, KakaoBank Yellow #FFE300, downloadable CI assets."
18
- og_image: "https://www.kakaobank.com/view/images/kkb_og_img.png"
17
+ description: "Official KakaoBank identity resource with symbol, wordmark, and brand-color guidance; it does not substitute for native banking-product UI evidence."
18
+ verification_v2:
19
+ schema: 2
20
+ checked: "2026-07-12"
21
+ surfaces:
22
+ - { id: home, kind: corporate-product, url: "https://www.kakaobank.com/", inspected: "2026-07-12" }
23
+ - { id: service, kind: public-service, url: "https://www.kakaobank.com/view/service", inspected: "2026-07-12" }
24
+ - { id: brand, kind: official-brand, url: "https://www.kakaobank.com/view/about/brand/resource", inspected: "2026-07-12" }
25
+ sources:
26
+ - { id: home-live, kind: product-surface, url: "https://www.kakaobank.com/", captured: "2026-07-12" }
27
+ - { id: service-live, kind: product-surface, url: "https://www.kakaobank.com/view/service", captured: "2026-07-12" }
28
+ - { id: brand-live, kind: brand-asset, url: "https://www.kakaobank.com/view/about/brand/resource", captured: "2026-07-12" }
29
+ - { id: brand-pdf, kind: official-doc, url: "https://www.kakaobank.com/static/etc/logo/KakaoBank_BrandIdentityGuidelines_V2.0.pdf", captured: "2026-07-12" }
30
+ conflicts: []
31
+ claims:
32
+ "tokens.colors.primary": &brand_evidence { surface_id: brand, source_id: brand-live, method: official-brand-inspect, captured: "2026-07-12" }
33
+ "tokens.colors.canvas": &home_evidence { surface_id: home, source_id: home-live, method: live-inspect, captured: "2026-07-12" }
34
+ "tokens.colors.foreground": *home_evidence
35
+ "tokens.colors.secondary": *home_evidence
36
+ "tokens.colors.body": &service_evidence { surface_id: service, source_id: service-live, method: live-inspect, captured: "2026-07-12" }
37
+ "tokens.colors.surface": *home_evidence
38
+ "tokens.colors.divider": *brand_evidence
39
+ "tokens.typography.family.ui": *home_evidence
40
+ "tokens.typography.hero.size": *home_evidence
41
+ "tokens.typography.hero.weight": *home_evidence
42
+ "tokens.typography.hero.lineHeight": *home_evidence
43
+ "tokens.typography.hero.tracking": *home_evidence
44
+ "tokens.typography.hero.use": *home_evidence
45
+ "tokens.typography.display.size": *service_evidence
46
+ "tokens.typography.display.weight": *service_evidence
47
+ "tokens.typography.display.lineHeight": *service_evidence
48
+ "tokens.typography.display.tracking": *service_evidence
49
+ "tokens.typography.display.use": *service_evidence
50
+ "tokens.typography.section.size": *service_evidence
51
+ "tokens.typography.section.weight": *service_evidence
52
+ "tokens.typography.section.lineHeight": *service_evidence
53
+ "tokens.typography.section.tracking": *service_evidence
54
+ "tokens.typography.section.use": *service_evidence
55
+ "tokens.typography.card-title.size": *service_evidence
56
+ "tokens.typography.card-title.weight": *service_evidence
57
+ "tokens.typography.card-title.lineHeight": *service_evidence
58
+ "tokens.typography.card-title.tracking": *service_evidence
59
+ "tokens.typography.card-title.use": *service_evidence
60
+ "tokens.typography.body.size": *home_evidence
61
+ "tokens.typography.body.weight": *home_evidence
62
+ "tokens.typography.body.lineHeight": *home_evidence
63
+ "tokens.typography.body.use": *home_evidence
64
+ "tokens.typography.navigation.size": *home_evidence
65
+ "tokens.typography.navigation.weight": *home_evidence
66
+ "tokens.typography.navigation.lineHeight": *home_evidence
67
+ "tokens.typography.navigation.tracking": *home_evidence
68
+ "tokens.typography.navigation.use": *home_evidence
69
+ "tokens.spacing.xs": *home_evidence
70
+ "tokens.spacing.sm": *home_evidence
71
+ "tokens.spacing.md": *home_evidence
72
+ "tokens.spacing.lg": *service_evidence
73
+ "tokens.spacing.xl": *brand_evidence
74
+ "tokens.rounded.action": *home_evidence
75
+ "tokens.rounded.section": *home_evidence
76
+ "tokens.rounded.full": *home_evidence
77
+ "tokens.components.top-navigation.type": *home_evidence
78
+ "tokens.components.top-navigation.bg": *home_evidence
79
+ "tokens.components.top-navigation.fg": *home_evidence
80
+ "tokens.components.top-navigation.radius": *home_evidence
81
+ "tokens.components.top-navigation.padding": *home_evidence
82
+ "tokens.components.top-navigation.height": *home_evidence
83
+ "tokens.components.top-navigation.font": *home_evidence
84
+ "tokens.components.top-navigation.states": *home_evidence
85
+ "tokens.components.top-navigation.use": *home_evidence
86
+ "tokens.components.service-tab.type": *service_evidence
87
+ "tokens.components.service-tab.bg": *service_evidence
88
+ "tokens.components.service-tab.fg": *service_evidence
89
+ "tokens.components.service-tab.border": *service_evidence
90
+ "tokens.components.service-tab.radius": *service_evidence
91
+ "tokens.components.service-tab.padding": *service_evidence
92
+ "tokens.components.service-tab.height": *service_evidence
93
+ "tokens.components.service-tab.font": *service_evidence
94
+ "tokens.components.service-tab.states": *service_evidence
95
+ "tokens.components.service-tab.use": *service_evidence
96
+ "tokens.components.black-action.type": *home_evidence
97
+ "tokens.components.black-action.bg": *home_evidence
98
+ "tokens.components.black-action.fg": *home_evidence
99
+ "tokens.components.black-action.radius": *home_evidence
100
+ "tokens.components.black-action.padding": *home_evidence
101
+ "tokens.components.black-action.height": *home_evidence
102
+ "tokens.components.black-action.font": *home_evidence
103
+ "tokens.components.black-action.states": *home_evidence
104
+ "tokens.components.black-action.use": *home_evidence
105
+ "tokens.components.resource-download.type": *brand_evidence
106
+ "tokens.components.resource-download.bg": *brand_evidence
107
+ "tokens.components.resource-download.fg": *brand_evidence
108
+ "tokens.components.resource-download.radius": *brand_evidence
109
+ "tokens.components.resource-download.padding": *brand_evidence
110
+ "tokens.components.resource-download.height": *brand_evidence
111
+ "tokens.components.resource-download.font": *brand_evidence
112
+ "tokens.components.resource-download.states": *brand_evidence
113
+ "tokens.components.resource-download.use": *brand_evidence
114
+ "tokens.components.brand-spec-row.type": *brand_evidence
115
+ "tokens.components.brand-spec-row.bg": *brand_evidence
116
+ "tokens.components.brand-spec-row.fg": *brand_evidence
117
+ "tokens.components.brand-spec-row.border": *brand_evidence
118
+ "tokens.components.brand-spec-row.radius": *brand_evidence
119
+ "tokens.components.brand-spec-row.padding": *brand_evidence
120
+ "tokens.components.brand-spec-row.font": *brand_evidence
121
+ "tokens.components.brand-spec-row.use": *brand_evidence
19
122
  tokens:
20
- source: prose-derived
21
- extracted: "2026-06-09"
22
- components_harvested: true
123
+ source: reconciled
124
+ extracted: "2026-07-12"
125
+ note: "Fresh corporate home, service, and official brand-resource capture. Brand identity and public web measurements are promoted; native banking-product controls are not inferred."
23
126
  colors:
24
127
  primary: "#ffe300"
25
- base: "#1e1e1e"
26
128
  canvas: "#ffffff"
27
- gray: "#a3a3a3"
28
- light-gray: "#cccccc"
29
- surface-fill: "#f7f7f7"
30
- surface-subtle: "#f9f9f9"
31
- error: "#e02000"
32
- link: "#007aff"
33
- success: "#0fbe6c"
34
- warning: "#ff9800"
35
- inactive-tab: "#888888"
36
- border-subtle: "#e6e6e6"
37
- on-primary: "#1e1e1e"
129
+ foreground: "#000000"
130
+ secondary: "#888888"
131
+ body: "#444444"
132
+ surface: "#f7f7f7"
133
+ divider: "#e6e6e6"
38
134
  typography:
39
- family: { sans: "Pretendard Variable", mono: "SF Mono" }
40
- hero-mega: { size: 90, weight: 800, lineHeight: 1.10, use: "Corporate hero" }
41
- display: { size: 42, weight: 700, lineHeight: 1.25, use: "Service page h1" }
42
- section-title: { size: 32, weight: 700, lineHeight: 1.30, use: "Mid-page h2" }
43
- heading: { size: 20, weight: 600, lineHeight: 1.40, use: "Footer column h3" }
44
- title: { size: 18, weight: 600, lineHeight: 1.44, use: "List section titles, modal headers" }
45
- body-large: { size: 16, weight: 400, lineHeight: 1.50, use: "Default body, card descriptions" }
46
- body: { size: 14, weight: 400, lineHeight: 1.55, use: "Sub-nav, dense list rows, button labels" }
47
- caption: { size: 13, weight: 400, lineHeight: 1.55, use: "Timestamps, helper text" }
48
- micro: { size: 12, weight: 400, lineHeight: 1.50, use: "Disclaimers, footer fine print" }
49
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 32, section: 80 }
50
- rounded: { sm: 8, md: 12, lg: 16, full: 9999 }
51
- shadow:
52
- whisper: "0 1px 2px rgba(0,0,0,0.04)"
53
- subtle: "0 2px 8px rgba(0,0,0,0.06)"
54
- sheet: "0 -2px 16px rgba(0,0,0,0.08)"
135
+ family: { ui: "Pretendard Variable" }
136
+ hero: { size: 90, weight: 800, lineHeight: 1.3, tracking: -0.9, use: "Current corporate home hero" }
137
+ display: { size: 42, weight: 700, lineHeight: 1.24, tracking: -0.84, use: "Current service page title" }
138
+ section: { size: 32, weight: 700, lineHeight: 1.36, tracking: -0.64, use: "Current public service section heading" }
139
+ card-title: { size: 24, weight: 700, lineHeight: 1.44, tracking: -0.48, use: "Current public service and brand-resource card heading" }
140
+ body: { size: 16, weight: 400, lineHeight: 1.5, use: "Current public body and list text" }
141
+ navigation: { size: 14, weight: 600, lineHeight: 1.5, tracking: -0.14, use: "Current top navigation" }
142
+ spacing: { xs: 8, sm: 12, md: 16, lg: 24, xl: 40 }
143
+ rounded: { action: 6, section: 16, full: 9999 }
144
+ components_harvested: true
55
145
  components:
56
- button-yellow-solid: { type: button, bg: "#ffe300", fg: "#1e1e1e", radius: 12, padding: "14px 20px", font: "16px/600", use: "Primary CTA in product flows" }
57
- button-black-solid: { type: button, bg: "#1e1e1e", fg: "#ffffff", radius: 12, padding: "14px 20px", font: "16px/600", use: "Secondary high-emphasis CTA" }
58
- button-outline: { type: button, bg: "transparent", fg: "#1e1e1e", radius: 12, padding: "14px 20px", font: "16px/600", use: "Tertiary actions" }
59
- button-nav-link: { type: button, bg: "transparent", fg: "#1e1e1e", padding: "0 20px", font: "14px/600", use: "Top navigation items" }
60
- button-critical: { type: button, bg: "#e02000", fg: "#ffffff", radius: 12, padding: "14px 20px", font: "16px/600", use: "Destructive actions" }
61
- tab-subnav: { type: tab, bg: "transparent", fg: "#888888", padding: "20px 0", font: "14px/400", active: "#1e1e1e text", use: "Sub-section nav" }
62
- tab-service: { type: tab, bg: "transparent", fg: "#1e1e1e", padding: "16px 0", font: "16px/400", use: "Product-category tabs" }
63
- tab-segmented: { type: tab, bg: "transparent", fg: "#a3a3a3", radius: 12, font: "14px/600", active: "#ffffff bg + #1e1e1e text", use: "Segmented control" }
64
- card-product: { type: card, bg: "#ffffff", radius: 12, padding: "24px", use: "Corporate product card" }
65
- card-section-fill: { type: card, bg: "#f7f7f7", radius: 16, padding: "32px", use: "Mid-page promotional sections" }
66
- card-debit: { type: card, bg: "#ffe300", radius: 16, use: "Debit/savings card visualization, CR-80 aspect" }
67
- input-default: { type: input, bg: "#ffffff", fg: "#1e1e1e", radius: 12, padding: "14px 16px", font: "16px/400", use: "Form fields, amount entry" }
68
- input-amount: { type: input, bg: "transparent", fg: "#1e1e1e", font: "32px/700", use: "Transfer amount hero numeral" }
69
- badge-notification: { type: badge, bg: "#e02000", fg: "#ffffff", radius: 9999, padding: "2px 6px", font: "11px/700", use: "Unread notification dot" }
70
- badge-status-positive: { type: badge, fg: "#0fbe6c", radius: 9999, padding: "4px 10px", font: "12px/600", use: "이체 완료, 적금 진행중" }
71
- badge-status-critical: { type: badge, fg: "#e02000", radius: 9999, padding: "4px 10px", font: "12px/600", use: "이체 실패, 기한 만료" }
72
- listItem-account: { type: listItem, bg: "#ffffff", padding: "16px 20px", use: "Account row, 64px min-height, 40px rounded-square avatar" }
146
+ top-navigation: { type: button, bg: "transparent", fg: "#000000", radius: "0px", padding: "0 20px", height: "62px", font: "14px / 600", states: "focus, hover, and pressed captured", use: "Current corporate top navigation item" }
147
+ service-tab: { type: tab, bg: "transparent", fg: "#000000", border: "0 0 1px #e6e6e6", radius: "0px", padding: "16px 0", height: "62px", font: "16px / 400", states: "default captured; no reusable selected style promoted", use: "Current public service-category tab" }
148
+ black-action: { type: button, bg: "#000000", fg: "#ffffff", radius: "6px", padding: "9.5px 18px", height: "42px", font: "15px / 600", states: "default captured; no reusable hover or pressed value promoted", use: "Current corporate high-emphasis action" }
149
+ resource-download: { type: button, bg: "#000000", fg: "#ffffff", radius: "6px", padding: "10px 16px 10px 20px", height: "43px", font: "16px / 400", states: "default captured; no reusable hover or pressed value promoted", use: "Current official brand-resource download action" }
150
+ brand-spec-row: { type: listItem, bg: "transparent", fg: "#000000", border: "1px 0 0 #e6e6e6", radius: "0px", padding: "10px 0", font: "16px / 400 / 24px", use: "Current official brand specification row" }
73
151
  ---
74
152
 
75
153
  # Design System Inspiration of KakaoBank (카카오뱅크)
76
154
 
77
155
  ## 1. Visual Theme & Atmosphere
78
156
 
79
- KakaoBank is what happens when a messenger company decides retail banking should feel like a chat thread, not a teller window. Korea's first internet-only bank (launched 2017-07-27) carries the warmth of the Kakao family, but when you actually look at the surfaces side-by-side, the resemblance is more cousins than siblings: KakaoBank's canvas is an even cleaner, more banking-formal white than the parent. The corporate site (`kakaobank.com`) is almost monochrome — black on white with one neutral-gray fill (`#f7f7f7`) — and the signature **KakaoBank Yellow `#FFE300`** is reserved, by official brand guideline, for the symbol, the app icon, and the moments where the bank wants to *announce itself*.
157
+ KakaoBank is an internet bank that presents financial services as part of ordinary mobile life. Its public story spans deposits, savings, loans, investment, foreign exchange, cards, business banking, youth products, and newer AI-led service exploration. The corporate site expresses that breadth with unusually little banking ornament: a white canvas, black type, pale-gray sections, very large Korean headings, and only selective use of the protected KakaoBank Yellow. The result feels digitally accessible while retaining the clarity and restraint expected from a regulated financial institution.
158
+
159
+ That restraint is the distinctive system. The official brand resource defines KakaoBank Yellow as `#FFE300`, alongside black, white, and a narrow neutral palette, and warns against nearby substitute yellows. Yet the current public corporate surface is mostly monochrome. Yellow identifies KakaoBank; it is not proof that every banking CTA, card, success state, or app control uses yellow. The current product page organizes the catalog through large editorial sections and simple service tabs, while the brand-resource page explains the symbol, wordmark, and color system as protected identity assets.
80
160
 
81
- That restraint is the design system's whole thesis. Yellow is loud banking has to feel safe — so yellow shows up where trust has already been established (the app you've installed, the card in your hand, the success screen after a transfer) and stays out of the way during compliance-heavy flows (terms, identity verification, tax forms). The corporate-facing surfaces use **a 90px hero in weight 800**, **Pretendard Variable** as the type stack, and a quiet `#1E1E1E` near-black — the exact same near-black Kakao parent uses, harmonizing with the family without copy-pasting it. In the actual mobile app, the cards (the debit card, the **26주적금** weekly-savings challenge, the **mini** youth account, **세이프박스** safe-box) take over as the main visual language — illustrated cards with Kakao Friends characters peeking through, yellow for the sender's actions, white for the bank's.
161
+ Pretendard Variable carries all visible public UI and editorial roles. It loaded from KakaoBank's own domain and appeared across 645 elements, from the 90px home hero to 14px navigation and 16px body text. Brand character comes from scale, disciplined yellow, and product imagery rather than a proprietary display face.
82
162
 
83
163
  **Key Characteristics:**
84
- - KakaoBank Yellow (`#FFE300`) as the singular brand accent — distinct from Kakao parent (`#FEE500`) and Kakao marketing (`#FAE100`); brand guideline V2.0 explicitly forbids substituting near-yellows
85
- - Pretendard Variable as the primary type stack — system-aligned Korean-first sans, no custom typeface on web
86
- - Banking-formal restraint corporate surfaces are near-monochrome; yellow is reserved for brand and product moments, not chrome
87
- - Card-as-product debit cards, 26주적금, 모임통장, 세이프박스, mini all surface as illustrated cards in the mobile app
88
- - Kakao Friends mascots (Ryan, Apeach, Tube, Muzi) appear contextually on physical card faces, in 26주적금 challenge characters, in moim 메시지카드 — never in compliance chrome
89
- - Near-black `#1E1E1E` for primary text, three-tier gray scale (`#1E1E1E` / `#A3A3A3` / `#CCCCCC`) — no warm grays, no off-blacks
90
- - Single-yellow discipline — the brand guide specifies one yellow value and one only; no tinted sub-shades
91
- - Mobile-app-first — the corporate site is the marketing layer, not the product; the actual DS lives in the iOS/Android client
164
+ - Official single-yellow identity: `#FFE300`, not neighboring Kakao-family yellows
165
+ - White and pale-gray corporate canvas with black-first typography
166
+ - Pretendard Variable loaded across every observed text role
167
+ - 90px/800 home hero and 42px/700 service-page title
168
+ - Flat public components with 0px navigation/tab geometry and 6px black actions
169
+ - Explicit separation between public corporate evidence and native banking-product UI
92
170
 
93
171
  ## 2. Color Palette & Roles
94
172
 
95
- ### Primary
96
- - **KakaoBank Yellow** (`#FFE300`): Primary brand color, app icon, symbol fill, primary CTA in product surfaces, debit card face, success confirmation accents. RGB 255/227/0, PANTONE Yellow 012 C/U, CMYK 0/10/100/0. **Per V2.0 brand guideline, do not substitute `#FAE100`, `#FEE500`, `#FFCC00`, or any near-yellow.**
97
- - **Near Black** (`#1E1E1E`): Primary text, headings, wordmark on light backgrounds, secondary brand color. Same near-black as Kakao parent — intentional family resemblance.
98
- - **Pure White** (`#FFFFFF`): Page background, card surfaces, on-yellow text alternative when contrast permits (chrome only — never body copy).
99
-
100
- ### Neutral Scale (per brand guideline V2.0)
101
- - **Gray** (`#A3A3A3`): Secondary text, captions, disabled labels. PANTONE Cool Gray 6 C/U.
102
- - **Light Gray** (`#CCCCCC`): Borders, dividers, disabled fills. PANTONE Cool Gray 3 C/U.
103
- - **Surface Fill** (`#F7F7F7`): Section backgrounds, card-on-card layering on the corporate site.
104
- - **Surface Subtle** (`#F9F9F9`): Footer surface on the corporate site.
105
-
106
- ### Semantic (banking-functional)
107
- - **Critical Red** (`#E02000`): Error messages, destructive actions, failed-transaction badges. Inherited from Kakao parent for cross-product consistency.
108
- - **Link Blue** (`#007AFF`): Inline action buttons in chat-like flows (iOS-aligned blue), secondary tappable affordances.
109
- - **Positive Green** (`#0FBE6C`): Successful transfers, completed savings goals, verified status — banking apps must read "money moved" instantly.
110
- - **Warning Amber** (`#FF9800`): Caution states (e.g., "limit approaching"), reserved for genuine warnings, not ambient nudges.
111
-
112
- ### Typography Color Roles
113
- - **Heading / Strong** (`#1E1E1E`): h1–h3, balance amounts, account names.
114
- - **Body** (`#1E1E1E`): Default body color on the corporate site (full strength — no muted body).
115
- - **Secondary / Caption** (`#A3A3A3`): Sub-labels, timestamps, FAQ helper text, footer policy links.
116
- - **Inactive Tab** (`#888888`): Sub-nav inactive items on the corporate site.
117
-
118
- ### Surface & Borders
119
- - **Border Default** (`#CCCCCC`): Card borders, input outlines, divider lines.
120
- - **Border Subtle** (`#E6E6E6`): Faint separators inside dense list views (carries from list patterns).
121
- - **Overlay** (`rgba(0, 0, 0, 0.4)`): Modal scrims — lighter than most banks, keeping in-context visibility.
173
+ - **KakaoBank Yellow** (`#ffe300`): official primary identity color and protected brand specification.
174
+ - **Canvas** (`#ffffff`) and **foreground** (`#000000`): dominant current public pairing.
175
+ - **Secondary** (`#888888`): repeated supporting navigation and footer text.
176
+ - **Body gray** (`#444444`): service and brand-resource explanatory text.
177
+ - **Section surface** (`#f7f7f7`): current quiet public section fill.
178
+ - **Divider** (`#e6e6e6`): public service and brand-spec boundaries.
179
+
180
+ Earlier `#E02000`, `#0FBE6C`, `#FF9800`, input, placeholder, and native state roles are not retained. The live public site exposed `#007AFF` on small web controls, but its semantic product role was not clear enough to promote.
122
181
 
123
182
  ## 3. Typography Rules
124
183
 
125
- ### Font Family
126
- - **Primary**: `"Pretendard Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif` — verified live at `kakaobank.com` (computed `font-family` on `body`).
127
- - **Brand Display (logo only)**: Custom wordmark (per guideline — wordmark follows Kakao 공동체 CI rules, not a substitutable webfont).
128
- - **Design Principle**: No custom brand typeface on web. Pretendard Variable carries Korean and Latin equally well; the brand expresses itself through color and the app icon, not through a display face.
129
-
130
- ### Hierarchy (verified at kakaobank.com / kakaobank.com/view/service)
131
-
132
- | Role | Font | Size | Weight | Line Height | Notes |
133
- |------|------|------|--------|-------------|-------|
134
- | Hero Mega | Pretendard | 90px | 800 | ~1.1 | Corporate hero ("나의 첫 번째 AI 은행 카카오뱅크") — verified |
135
- | Display | Pretendard | 42px | 700 | ~1.25 | Service page h1 ("카카오뱅크의 서비스를 소개합니다") — verified |
136
- | Section Title | Pretendard | 32px | 700 | ~1.3 | Mid-page h2 ("새로운 금융 경험, AI 서비스") — verified |
137
- | Heading | Pretendard | 20px | 600 | ~1.4 | Footer column h3 (소개 / 서비스 / ESG / 투자정보) — verified |
138
- | Title | Pretendard | 18px | 600 | ~1.44 | List section titles, modal headers |
139
- | Body Large | Pretendard | 16px | 400 | ~1.5 | Default body, card descriptions, header links — verified |
140
- | Body | Pretendard | 14px | 400/600 | ~1.55 | Sub-nav, dense list rows, button labels (600 when navigational) |
141
- | Caption | Pretendard | 13px | 400 | ~1.55 | Timestamps, helper text |
142
- | Micro | Pretendard | 12px | 400 | ~1.5 | Disclaimers, footer fine print |
143
-
144
- ### Principles
145
- - **One typeface, three weights**: 400 (Regular), 600 (SemiBold), 700/800 (Bold/ExtraBold for hero only). The corporate hero pushes to 800 — that is the brand's confidence moment.
146
- - **Korean-first metric**: Pretendard Variable ships line-heights tuned for Hangul; do not override with a Latin-tuned `line-height` value.
147
- - **No italics**. Banking copy reads upright; emphasis happens through weight, not slant.
148
- - **No custom brand display font on web**. Yellow + the symbol carry brand identity; type stays neutral so account numbers and amounts read as data, not marketing.
184
+ ### Font evidence boundary
185
+
186
+ | Evidence class | Resolution |
187
+ |---|---|
188
+ | Official product-use | KakaoBank's current public home, service, and brand-resource pages establish Pretendard Variable. |
189
+ | Live surface-use | Pretendard Variable loaded/high across 645 visible elements from KakaoBank's first-party WOFF2. |
190
+ | Official distributed asset | The public webfont is first-party delivered; the KakaoBank wordmark remains a protected identity asset rather than a font. |
191
+ | Declared-only | `swiper-icons` was declared with zero visible text use. |
192
+ | Unresolved | Native iOS/Android banking flows and device-specific typography remain unresolved. |
193
+
194
+ | Role | Size | Weight | Line height | Tracking |
195
+ |---|---:|---:|---:|---:|
196
+ | Corporate hero | 90px | 800 | 117px | -0.9px |
197
+ | Service display | 42px | 700 | 52.08px | -0.84px |
198
+ | Section heading | 32px | 700 | 43.52px | -0.64px |
199
+ | Card heading | 24px | 700 | 34.56px | -0.48px |
200
+ | Body/list | 16px | 400 | 24px | normal |
201
+ | Top navigation | 14px | 600 | 21px | -0.14px |
149
202
 
150
203
  ## 4. Component Stylings
151
204
 
152
- ### Buttons
153
-
154
- KakaoBank's corporate site is intentionally chrome-light — buttons on the public web are mostly text affordances with a few iconographic ones. The product-facing button system lives in the mobile app, where the **Yellow Solid** primary CTA is the signature pattern (verified visually on app icon, debit card face, brand resource page swatch — `#FFE300` is the canonical fill).
155
-
156
- **Yellow Solid (Primary CTA — product surfaces / app)**
157
- - Background: `#FFE300` (KakaoBank Yellow)
158
- - Text: `#1E1E1E` (Near Black) — never white on yellow (contrast fail)
159
- - Border: none
160
- - Radius: 12px
161
- - Padding: 14px 20px (default), 16px 24px (large)
162
- - Font: 16px / 600 / Pretendard
163
- - Pressed: opacity 0.85 (no darker yellow exists in the brand palette)
164
- - Disabled: bg `#F7F7F7`, text `#CCCCCC`
165
- - Use: Primary action in product flows ("이체하기", "확인", "다음")
166
-
167
- **Black Solid (Secondary Strong)**
168
- - Background: `#1E1E1E`
169
- - Text: `#FFFFFF`
170
- - Border: none
171
- - Radius: 12px
172
- - Padding: 14px 20px
173
- - Font: 16px / 600 / Pretendard
174
- - Use: Secondary high-emphasis CTA when paired with Yellow Solid; identity verification flows
175
-
176
- **Outline Neutral**
177
- - Background: transparent
178
- - Text: `#1E1E1E`
179
- - Border: 1px solid `#CCCCCC`
180
- - Radius: 12px
181
- - Padding: 14px 20px
182
- - Font: 16px / 600 / Pretendard
183
- - Pressed: bg `#F7F7F7`
184
- - Use: Tertiary actions, "취소", "나중에"
185
-
186
- **Top Nav Link (corporate site — verified)**
187
- - Background: transparent
188
- - Text: `#1E1E1E` → hover/active stays `#1E1E1E` (no color change)
189
- - Border: none
190
- - Padding: 0 20px
191
- - Font: 14px / 600 / Pretendard
192
- - Height: 62px (vertically centered in 62px header band)
193
- - Use: Top navigation items (`소개`, `서비스`, `ESG`, `투자정보`, `고객센터`, `인재영입`)
194
-
195
- **Sub-Nav Tab (corporate site — verified)**
196
- - Background: transparent
197
- - Text inactive: `#888888`
198
- - Text active: `#1E1E1E`
199
- - Border: 0px (active state expressed through color, not underline)
200
- - Padding: 20px 0
201
- - Font: 14px / 400 / Pretendard
202
- - Use: Sub-section nav (`비즈니스`, `기술`, `새소식`)
203
-
204
- **Service Tab (verified — kakaobank.com/view/service)**
205
- - Background: transparent
206
- - Text: `#1E1E1E`
207
- - Border: 0
208
- - Padding: 16px 0
209
- - Font: 16px / 400 / Pretendard
210
- - Height: 61px
211
- - Use: Product-category tabs on the service page (통장, 저축, 대출, 투자, 외환, 카드, 사업자)
212
-
213
- **Critical Solid**
214
- - Background: `#E02000`
215
- - Text: `#FFFFFF`
216
- - Border: none
217
- - Radius: 12px
218
- - Padding: 14px 20px
219
- - Font: 16px / 600
220
- - Use: Destructive actions (계좌 해지, 자동이체 삭제)
221
-
222
- ### Cards
223
-
224
- **Product Card (corporate)**
225
- - Background: `#FFFFFF`
226
- - Border: none (or 1px solid `#E6E6E6` when laid on white)
227
- - Radius: 12px (verified — corporate card-link `border-radius: 12px`)
228
- - Padding: 24px
229
- - Shadow: none — corporate site is shadow-free; depth via background fill `#F7F7F7`
230
- - Use: AI 서비스 / mini / 사업자 / 글로벌 sections on `/view/service`
231
-
232
- **Section Fill Card**
233
- - Background: `#F7F7F7`
234
- - Border: none
235
- - Radius: 16px
236
- - Padding: 32px
237
- - Use: Mid-page promotional sections, FAQ groupings
238
-
239
- **Debit / Savings Card (product visualization)**
240
- - Background: `#FFE300` (KakaoBank Yellow) — face color
241
- - Border: none
242
- - Radius: 16px (mobile-app card visual)
243
- - Aspect: ~1.586:1 (CR-80 card proportion)
244
- - Use: Card preview tiles, 26주적금 progress card, 모임통장 summary card. Kakao Friends mascot illustration (Ryan / Apeach / Muzi) often sits left, account label right, amount bottom-right.
245
-
246
- ### Inputs
247
-
248
- **Default**
249
- - Background: `#FFFFFF`
250
- - Text: `#1E1E1E`
251
- - Border: 1px solid `#CCCCCC`
252
- - Radius: 12px
253
- - Padding: 14px 16px
254
- - Font: 16px / 400
255
- - Placeholder: `#A3A3A3`
256
- - Focus: border `#1E1E1E` 1.5px (no yellow focus — yellow is brand, not state)
257
- - Error: border `#E02000` 1.5px
258
- - Use: Form fields, amount entry, recipient lookup
259
-
260
- **Amount Input (large)**
261
- - Background: transparent
262
- - Text: `#1E1E1E`, 32–48px / 700
263
- - Border: none (underline only on focus, 2px solid `#1E1E1E`)
264
- - Use: Transfer amount entry — banking apps expect amount as a hero numeral
265
-
266
- ### Badges
267
-
268
- **Notification Dot**
269
- - Background: `#E02000`
270
- - Text: `#FFFFFF`
271
- - Border: 1.5px solid `#FFFFFF` (separation from yellow surfaces)
272
- - Radius: 9999px
273
- - Padding: 2px 6px
274
- - Font: 11px / 700
275
- - Use: Unread notification on tab/card
276
-
277
- **Status Pill (Positive)**
278
- - Background: rgba(15, 190, 108, 0.12)
279
- - Text: `#0FBE6C`
280
- - Border: none
281
- - Radius: 9999px
282
- - Padding: 4px 10px
283
- - Font: 12px / 600
284
- - Use: "이체 완료", "적금 진행중"
285
-
286
- **Status Pill (Critical)**
287
- - Background: rgba(224, 32, 0, 0.12)
288
- - Text: `#E02000`
289
- - Use: "이체 실패", "기한 만료"
290
-
291
- ### Tabs (segmented)
292
-
293
- **Segmented Control**
294
- - Container: `#F7F7F7` bg, 12px radius, 4px inner padding
295
- - Inactive tab: transparent, `#A3A3A3` text, 14px / 600
296
- - Active tab: `#FFFFFF` bg, `#1E1E1E` text, 14px / 600, shadow `0 1px 2px rgba(0,0,0,0.08)`
297
- - Use: Switching between account types, period filters
298
-
299
- ### List Items
300
-
301
- **Account Row**
302
- - Background: `#FFFFFF`
303
- - Padding: 16px 20px
304
- - Min-height: 64px
305
- - Avatar: 40px rounded square (12px radius — Kakao family rule)
306
- - Account name: 16px / 600 / `#1E1E1E`
307
- - Account number / sub-label: 13px / 400 / `#A3A3A3`
308
- - Right-aligned amount: 16px / 700 / `#1E1E1E` (color flips to `#E02000` for negative)
309
- - Divider: 1px solid `#E6E6E6` between rows
205
+ ### Current public components
310
206
 
311
- ---
207
+ #### Top navigation
208
+ - Transparent / black, 0px radius, 62px height, `0 20px`
209
+ - Pretendard Variable 14px/600; focus, hover, and pressed captured
210
+
211
+ #### Service-category tab
212
+ - Transparent / black, 1px `#e6e6e6` bottom rule
213
+ - 0px radius, 62px height, `16px 0`, 16px/400
214
+
215
+ #### Corporate black action
216
+ - Black / white, 6px radius, 42px height, `9.5px 18px`
217
+ - Pretendard Variable 15px/600
218
+
219
+ #### Brand-resource download
220
+ - Black / white, 6px radius, 43px height, `10px 16px 10px 20px`
221
+ - Pretendard Variable 16px/400
312
222
 
313
- **Verified:** 2026-05-08
314
- **Tier 1 sources:** kakaocorp.com/view/about/brand/resource (official brand guideline V2.0, 2024-08 — Yellow `#FFE300` / Black `#1E1E1E` / Gray `#A3A3A3` / Light Gray `#CCCCCC`); kakaobank.com/ (live DOM — Pretendard Variable type stack ✓, hero 90px/800 ✓, surface fills `#f7f7f7` / `#f9f9f9` ✓, header 62px / 14px·600 nav links ✓, sub-nav inactive `#888888` ✓); kakaobank.com/view/service (live DOM — display 42px/700 ✓, section h2 32px/700 ✓, service tab 61px/16px·400 ✓, 12px card radius ✓).
315
- **Tier 2 sources:** getdesign.md/kakaobank — no record (explicit "No designs found"). styles.refero.design — not searched (no Kakao-family record per kakao reference).
316
- **Tier 2b status:** unavailable; Tier 1 (live DOM + official brand guideline V2.0) treated as authoritative.
317
- **Conflicts unresolved:** none. Brand guideline `#FFE300` is the single canonical yellow explicitly disambiguated from Kakao parent (`#FEE500`) and Kakao marketing (`#FAE100`). Body weights on the corporate site are intentionally chrome-light; product-facing button specs (Yellow Solid Primary, etc.) are inferred from the canonical yellow + Kakao-family 12px radius pattern, not directly inspected on web (they live in the mobile app).
223
+ #### Brand specification row
224
+ - Transparent / black, 1px `#e6e6e6` top rule
225
+ - `10px 0`, 16px/400/24px
226
+
227
+ Yellow native CTAs, account cards, transfer inputs, status badges, notifications, bottom sheets, and app tabs are intentionally absent until a current inspectable native-product path establishes them.
318
228
 
319
229
  ## 5. Layout Principles
320
230
 
321
- ### Spacing System
322
- - Base unit: 4px
323
- - Scale: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 56px, 64px, 80px
324
- - Horizontal screen padding (mobile): 20px
325
- - Horizontal screen padding (web max): centered max-width 1360px (verified — h2 width on `/view/service`)
326
- - List item vertical padding: 16px
327
- - Section vertical rhythm: 80px between major sections, 32px between sub-sections
328
-
329
- ### Grid & Container
330
- - Web: 1360px content max-width, centered
331
- - Mobile (app): full-width with 20px horizontal gutter
332
- - Card grid: 4-column on desktop, 2-column on tablet, single column on mobile
333
- - Account list: single column, full-width items, 64px row height
334
-
335
- ### Whitespace Philosophy
336
- - **Banking-formal, not bank-formal.** Generous whitespace says "we have nothing to hide" — but it's structured, not luxurious. Every section breathes; no section sprawls.
337
- - **Yellow earns its space.** When yellow appears (card face, hero illustration, primary CTA), it gets ≥40% of its container; partial-yellow accents are forbidden by guideline.
338
- - **Lists density, hero generosity.** Account/transaction lists target 6+ rows per viewport; hero and onboarding screens target 1 idea per viewport.
339
-
340
- ### Border Radius Scale
341
- - Tight (8px): inline tags, small chips
342
- - Standard (12px): buttons, inputs, product cards, avatars (rounded squares — Kakao-family rule, not circles)
343
- - Comfortable (16px): section fill cards, debit card visualization
344
- - Sheet (20px): bottom sheet top corners
345
- - Pill (9999px): status badges, notification dots, segmented control inactive tabs
231
+ - Use large type and generous vertical rhythm to explain complex financial categories.
232
+ - Keep public navigation and tabs geometrically flat; hierarchy comes from placement and weight.
233
+ - Use `#f7f7f7` for section-level grouping instead of elevated cards.
234
+ - Apply KakaoBank Yellow at verified identity moments, not as ambient chrome.
235
+ - Keep official brand-resource layouts separate from banking-task layouts.
346
236
 
347
237
  ## 6. Depth & Elevation
348
238
 
349
- | Level | Treatment | Use |
350
- |-------|-----------|-----|
351
- | Flat (Level 0) | No shadow | Default — corporate site is entirely flat. Most product cards |
352
- | Whisper (Level 1) | `0 1px 2px rgba(0,0,0,0.04)` | Active segmented-tab pip, inline raised chip |
353
- | Subtle (Level 2) | `0 2px 8px rgba(0,0,0,0.06)` | Floating action button, tooltip |
354
- | Sheet (Level 3) | `0 -2px 16px rgba(0,0,0,0.08)` | Bottom sheets, modal dialogs |
355
-
356
- **Shadow Philosophy.** KakaoBank inherits Kakao parent's flat-design discipline and amplifies it for banking-formal trust. The corporate site has zero shadows; depth is communicated through `#FFFFFF` → `#F7F7F7` → `#F9F9F9` background steps and 1px `#E6E6E6` dividers. Mobile-app surfaces use shadows sparingly — the debit card face does not float; it sits flat on white. Yellow never casts a yellow-tinted shadow.
239
+ The promoted public system is shadow-free. Separation comes from white/pale-gray surfaces, `#e6e6e6` rules, and typographic scale. No sheet, card, or focus shadow is promoted for native banking UI.
357
240
 
358
241
  ## 7. Do's and Don'ts
359
242
 
360
243
  ### Do
361
- - Use `#FFE300` exactly match Pantone Yellow 012 C/U, never substitute `#FAE100` / `#FEE500` / `#FFCC00`
362
- - Pair yellow surfaces with `#1E1E1E` text — never white-on-yellow for body copy (contrast fail)
363
- - Use Pretendard Variable on web; respect Korean-tuned line-heights
364
- - Keep the brand symbol on solid Yellow, Black, or White only (per guideline)
365
- - Use 12px radius as the family default (buttons, cards, avatars-as-rounded-squares)
366
- - Reserve Kakao Friends mascots for product moments (cards, 26주적금 challenges, 모임 메시지카드) — never in compliance chrome
367
- - Use full-strength colors — `#1E1E1E` body, `#A3A3A3` caption, `#CCCCCC` border. Avoid in-between grays
368
- - Let the corporate site stay near-monochrome — yellow is for the app, not the marketing chrome
244
+ - Use exact `#FFE300` when the role is an official KakaoBank identity role.
245
+ - Preserve Pretendard Variable's observed Korean-first metrics and tracking.
246
+ - Keep the corporate web surface restrained and largely monochrome.
247
+ - Distinguish official identity, public service marketing, and native banking evidence.
369
248
 
370
249
  ### Don't
371
- - Don't use circular avatars Kakao family uses 12px rounded squares
372
- - Don't tint shadows with yellow shadows stay neutral so yellow remains the only warmth
373
- - Don't use yellow for error or warning states yellow is brand, never status
374
- - Don't introduce a secondary brand hue (no "KakaoBank Blue", no "KakaoBank Green") — semantic blues/greens are utility, not brand
375
- - Don't render the symbol on a non-Yellow/Black/White background — guideline forbidden
376
- - Don't apply the wordmark independently — it follows Kakao 공동체 CI rules, not standalone use
377
- - Don't use pure black `#000000` for text — use `#1E1E1E` to match the family
378
- - Don't use a custom display webfont — Pretendard Variable is the only typeface on web
250
+ - Do not substitute `#FEE500`, `#FAE100`, or another Kakao-family yellow.
251
+ - Do not infer a Yellow CTA or transfer component from a brand swatch.
252
+ - Do not fabricate app error, success, account, badge, or sheet components.
253
+ - Do not turn the public corporate site into a Kakao Friends-heavy app mockup.
379
254
 
380
255
  ## 8. Responsive Behavior
381
256
 
382
- ### Breakpoints
383
- | Name | Width | Key Changes |
384
- |------|-------|-------------|
385
- | Mobile (Primary) | <480px | Full-width app layout, 20px gutter, single-column |
386
- | Tablet | 480–1024px | 2-column card grids, expanded service tabs |
387
- | Desktop | 1024–1360px | 4-column grids, fixed top nav, 1360px content max |
388
- | Wide | >1360px | Content stays at 1360px; canvas extends with `#FFFFFF` margins |
389
-
390
- ### Touch Targets
391
- - Buttons: 48px min-height (default), 56px (large), 40px (compact)
392
- - Tab bar: 56px height, evenly distributed
393
- - List rows: 64px (account list), 56px (settings list)
394
- - Notification dot: 16px diameter minimum
395
-
396
- ### Collapsing Strategy
397
- - Desktop top nav (`소개 / 서비스 / ESG / 투자정보 / 고객센터 / 인재영입`) collapses to hamburger drawer below 768px
398
- - Service product-category tab strip (`통장 / 저축 / 대출 / 투자 / 외환 / 카드 / 사업자`) becomes horizontal scroll below 768px
399
- - Card grids: 4 → 2 → 1 column at desktop / tablet / mobile breakpoints
400
- - Bottom CTA in product flows: sticky full-width with safe area inset
401
-
402
- ### Image Behavior
403
- - Hero illustration (Kakao Friends, 26주적금 character): edge-bleed on mobile, contained on desktop
404
- - Card faces (debit / savings / 모임): 1.586:1 aspect (CR-80 proportion), 16px radius
405
- - Mascot avatars in chat-style flows: 40px rounded square, 12px radius
257
+ The public routes preserve their typographic hierarchy and section grouping while content reflows. Exact mobile-app navigation, banking-task breakpoints, device safe areas, and native keyboard behavior remain unresolved.
406
258
 
407
259
  ## 9. Agent Prompt Guide
408
260
 
409
- ### Quick Color Reference
410
- - Primary CTA: KakaoBank Yellow (`#FFE300`)
411
- - CTA Text on Yellow: Near Black (`#1E1E1E`) — NEVER white on yellow
412
- - Background: Pure White (`#FFFFFF`)
413
- - Surface Fill: Light Fill (`#F7F7F7`)
414
- - Heading text: Near Black (`#1E1E1E`)
415
- - Body text: Near Black (`#1E1E1E`)
416
- - Secondary text: Gray (`#A3A3A3`)
417
- - Inactive nav text: Cool Gray (`#888888`)
418
- - Border: Light Gray (`#CCCCCC`)
419
- - Divider: Border Subtle (`#E6E6E6`)
420
- - Error: Red (`#E02000`)
421
- - Success: Green (`#0FBE6C`)
422
- - Link / iOS-blue action: Blue (`#007AFF`)
423
-
424
- ### Example Component Prompts
425
- - "Create a Yellow Solid primary button: `#FFE300` background, `#1E1E1E` text 16px weight 600, 12px radius, 14×20 padding, 48px min-height, full-width on mobile. Pressed: opacity 0.85. Disabled: `#F7F7F7` bg, `#CCCCCC` text."
426
- - "Build a debit card visualization: `#FFE300` background, 16px radius, 1.586:1 aspect, 24px padding. Top-left: account name 14px weight 600 `#1E1E1E`. Top-right: KakaoBank symbol 24px. Bottom-left: card number masked (•••• •••• •••• 1234) 14px weight 500 `#1E1E1E`. Bottom-right: Kakao Friends mascot illustration 80px."
427
- - "Design an account list row: white bg, 64px row height, 20px h-padding. Left: 40px rounded-square avatar (12px radius) + 12px gap + account name (16px weight 600 `#1E1E1E`) over account number (13px weight 400 `#A3A3A3`). Right: amount (16px weight 700 `#1E1E1E`, `#E02000` if negative). 1px `#E6E6E6` bottom border."
428
- - "Create a 26주적금 progress card: white bg, 1px `#E6E6E6` border, 12px radius, 24px padding. Top: title '26주적금' 18px weight 700 `#1E1E1E`. Middle: 26-dot progress strip — completed dots `#FFE300`, remaining dots `#CCCCCC`, 8px diameter, 8px gap. Bottom: '13주차 진행중' 13px `#A3A3A3` left, 'KRW 130,000' 16px weight 700 `#1E1E1E` right."
429
- - "Design a transfer success screen: full-screen white bg. Center: 64px green check `#0FBE6C` in a circle. Below: '이체가 완료되었어요' 24px weight 700 `#1E1E1E`. Below that: '50,000원을 김카뱅에게 보냈어요' 16px weight 400 `#A3A3A3`. Bottom: Yellow Solid '확인' button (full-width, 56px tall, sticky with 20px safe-area inset)."
430
-
431
- ### Iteration Guide
432
- 1. Yellow is `#FFE300` exactly — not `#FAE100`, not `#FEE500`. Brand guideline is canonical.
433
- 2. Pretendard Variable on web; never embed a custom display font on KakaoBank-styled surfaces.
434
- 3. 12px is THE radius — buttons, cards, avatars (as rounded squares), inputs.
435
- 4. Avatars are rounded squares (12px radius), not circles — Kakao family rule.
436
- 5. Text on yellow is always `#1E1E1E`, never white. Text on black/dark is always `#FFFFFF`.
437
- 6. Banking-formal restraint: don't use yellow as ambient chrome — only as brand and primary action.
438
- 7. Mascots (Ryan, Apeach, Tube, Muzi) are product moments, never compliance moments.
439
- 8. Mobile-first at 375px; 1360px max content width on web.
440
-
441
- ---
261
+ > Build a restrained Korean financial information surface with a white canvas, black-first type, pale `#f7f7f7` section fills, Pretendard Variable, very large bold headings, flat navigation, and 6px black public actions. Use `#FFE300` only for verified KakaoBank identity roles and omit unverified native banking components.
442
262
 
443
263
  ## 10. Voice & Tone
444
264
 
445
- KakaoBank speaks like a **friendly fintech that knows it's still a bank** warm and colloquial enough that you'd forward a notification to your group chat, formal enough that the regulatory copy underneath is bulletproof. The closest sibling is Toss in posture (helpful, plain-spoken, allergic to bank jargon), but the flavor is more **Kakao-character** small turns of phrase that wink at the messenger origin (`이체할게요`, `보냈어요`, `김카뱅에게`), and product names that pun rather than describe (`세이프박스` instead of "secondary holding account", `26주적금` instead of "26-week recurring deposit", `모임통장` instead of "shared group account"). The default sentence ending is the polite-conversational `해요체` (`-어요` / `-예요`) never `합니다체` for body copy, except in legal/약관 surfaces where regulatory clarity demands it.
446
-
447
- The brand explicitly markets itself with the line *"나의 첫 번째 AI 은행"* (verified live, kakaobank.com hero, 90px/800) and *"나의 일상 속 유용한 금융 서비스를 만듭니다"* (verified live, kakaobank.com sub-hero) — `나의` (my) is the recurring possessive. Banking is framed as personal infrastructure, not institutional service.
448
-
449
- | Context | Tone |
450
- |---|---|
451
- | CTAs | 동사 단독 또는 동사+명사, 짧게. `이체하기`, `확인`, `다음`, `보내기` |
452
- | 시스템 메시지 | 관찰형 단문. `이체가 완료되었어요`, `잔액이 부족해요`. 감정 부재 |
453
- | 에러 메시지 | 구체적 원인 + 즉시 행동 한 줄. `잔액이 부족해요. 다른 계좌에서 보내볼래요?` 절대 `오류가 발생했습니다` 단독 사용 금지 |
454
- | 성공 토스트 | 과거형 단문. `이체 완료`. 축하 이모지·과한 메시지 금지 |
455
- | 약관 / 공시 | 격식체 (`-합니다`) — 법적 명확성이 우선 |
456
- | 마케팅 / 새소식 | `해요체` 유지, 캐릭터 개입 가능. `26주 동안 함께 모아봐요!` |
457
- | 빈 상태 | 다음 행동 1개. `친구를 추가하면 이체가 빨라져요`. 절대 `데이터가 없습니다` |
458
- | 신뢰·안전 | 차분, 사실 위주. 공포 마케팅 금지 (`사기 주의!` ❌). 보안 정보는 본문 무게 텍스트로 |
459
-
460
- **Forbidden phrases.** `불편을 드려 죄송합니다`, `데이터가 없습니다`, `오류가 발생했습니다` (단독), `혁신적인`, `최고의`, `업계 최초` (마케팅 superlative). 영어 원문 노출 (`Get Started` → `시작하기`로 번역). 명령형 (`-해라`). Emoji는 product chrome에서 금지 (이모티콘은 콘텐츠라 OK, UI 텍스트엔 금지).
461
-
462
- **Voice samples.**
463
-
464
- - *"나의 첫 번째 AI 은행"* — corporate hero. <!-- verified: kakaobank.com, 2026-05-08 -->
465
- - *"나의 일상 속 유용한 금융 서비스를 만듭니다"* — corporate sub-hero. <!-- verified: kakaobank.com, 2026-05-08 -->
466
- - *"카카오뱅크의 서비스를 소개합니다"* — service page h1. <!-- verified: kakaobank.com/view/service, 2026-05-08 -->
467
- - *"어렵고 복잡한 금융생활, 카카오뱅크 AI가 도와드릴게요."* — AI 서비스 section copy. <!-- verified: kakaobank.com/view/service, 2026-05-08 -->
468
- - *"내 사업장에 맞는 보증서대출을 확인할 수 있어요."* — 사업자 보증서대출 product copy. <!-- verified: kakaobank.com/view/service, 2026-05-08 -->
469
- - *"이체가 완료되었어요"* — illustrative success toast pattern. <!-- illustrative: pattern derived from Kakao family system messages, not verified verbatim in mobile app -->
470
- - *"50,000원을 김카뱅에게 보냈어요"* — illustrative transfer confirmation. <!-- illustrative -->
265
+ KakaoBank's public voice makes finance feel ordinary and useful. It favors direct Korean nouns and verbs, names the service category clearly, and explains benefits without institutional ceremony. Service descriptions should state who a product is for, what financial task it supports, and what the visitor can learn next. Corporate and brand material may be more declarative, while compliance or Help content must stay precise and unambiguous. Avoid playful copy where money movement, identity, or risk is involved. Do not invent rates, user counts, or performance claims.
471
266
 
472
267
  ## 11. Brand Narrative
473
268
 
474
- KakaoBank is **Korea's first internet-only bank**, founded 2016-01 as 'Kakaobank Preparatory Corporation' in Pangyo and **launched commercially on 2017-07-27** as a consortium between **Kakao Corp** and **Korea Investment Holdings** (the lead financial partner — KB Kookmin Bank held a smaller stake in the original consortium but was not the controlling financial partner; this is a common misattribution) ([Wikipedia — KakaoBank](https://en.wikipedia.org/wiki/KakaoBank)). The launch was the cleanest product-market fit Korean banking had ever seen: **1 million users in 5 days**, hitting **23M+ users by January 2024** close to half of South Korea's adult population. The thesis was simple and brutal: branchless banking, no transaction fees, higher deposit interest, and an onboarding flow that opened a real account in under 7 minutes from a smartphone. By **FY2024 the loan book had expanded to ₩44.5T** (from ₩20.7T in FY2020); deposits are in the same magnitude ([KoalaGains KakaoBank stock analysis](https://koalagains.com/stocks/KOSPI/323410)).
475
-
476
- The **2021-08-06 KOSPI IPO** at ₩39,000 priced KakaoBank at **56× book value** — a multiple that drew immediate "bubble or jackpot" headlines because traditional Korean bank price-to-book averages around 0.44× ([Korea Herald — Jackpot or bubble?](https://www.koreaherald.com/article/2666383), [KED Global — KakaoBank becomes Korea's most valuable lender](https://www.kedglobal.com/ipos/newsView/ked202108060001)). The IPO drew an all-time-high ₩2,585T in institutional bids, oversubscribed 1,733×. The stock subsequently fell — market cap dropped 58.7% in 2022 — but the operating story compounded (4-year revenue CAGR 29.2%, net income CAGR 40.3%), and the bank now occupies an unusual niche: a tech-multiple banking license, listed on KOSPI as ticker **323410**, generating banking-margin profits with consumer-tech engagement metrics.
477
-
478
- What KakaoBank refuses: **branch infrastructure** (none — by design), **paper paperwork** (entire account opening is in-app), **Kakao parent's full yellow signature on every surface** (the corporate site is monochrome; yellow is reserved for product and brand moments per V2.0 guideline), and the imitative "fintech blue" that swept Western neobanks in the 2010s. What it embraces: **Kakao Friends mascots** as product flavoring (Ryan / Apeach / Tube / Muzi appear on debit card faces and 26주적금 challenge characters, never in compliance chrome), **cute-formal product naming** (`세이프박스`, `26주적금`, `모임통장`, `mini`), and a single-yellow brand discipline that is documented to **5-decimal precision in PANTONE Yellow 012 C/U** in the V2.0 brand guide ([KakaoBank Brand Identity Guidelines V2.0, 2024-08](https://www.kakaobank.com/static/etc/logo/KakaoBank_BrandIdentityGuidelines_V2.0.pdf)).
479
-
480
- The CEO is **윤호영 (Yun Ho-young)**; 사업자번호 375-88-00197; 고객센터 1599-3333 (verified live in footer). The name *카카오뱅크* literally reads "Kakao Bank" — but the symbol is a stylized **'B' with an 'I' (나, "me") at its center**, and the brand resource page makes the meaning explicit: *"내가 중심이 되는 은행"* — "the bank with me at the center." That is the 1-sentence brand positioning, and every other decision in this document descends from it.
269
+ KakaoBank positions banking as a digital product embedded in everyday routines. The official symbol explains a bank centered on the individual, while the service catalog shows continuous expansion from basic accounts into youth, business, investment, global, and AI-related offerings. The visual identity balances Kakao-family recognition with the restraint expected of a bank: one unmistakable yellow, then a large field of neutral structure. This system allows the company to speak both as a consumer product and as a financial institution. Large Korean headings make service categories approachable; monochrome navigation and pale-gray sections keep attention on information rather than decoration. The protected wordmark and exact yellow establish ownership, but they do not dictate the geometry of native transfers, account cards, or compliance flows. Those product layers require their own evidence.
481
270
 
482
271
  ## 12. Principles
483
272
 
484
- 1. **Yellow is product, not chrome.** `#FFE300` shows up on the symbol, the app icon, the debit card face, the primary CTA — never as ambient marketing background, never tinted, never substituted. *UI implication:* if a designed surface uses `#FFE300` as a >40% fill, it must be either (a) the brand symbol, (b) a card face, or (c) a primary CTA. Otherwise demote to `#F7F7F7` or `#FFFFFF`.
485
- 2. **One yellow, exactly.** The brand guide V2.0 explicitly forbids near-yellows (`#FAE100`, `#FFCC00`, `#FEE500`). *UI implication:* color tokens must reference `#FFE300` by name; tinted shades (yellow-50, yellow-100…) are not in the system. If a designer reaches for "lighter yellow," that is a signal to switch to `#F7F7F7` or white instead.
486
- 3. **Banking-formal, character-flavored.** Compliance copy uses `합니다체`; product copy uses `해요체`; mascots appear in product moments, never in legal/identity-verification flows. *UI implication:* a Kakao Friends illustration on an OTP entry screen is a bug.
487
- 4. **Mobile-app is the product; web is the marketing.** The corporate site is intentionally chrome-light because the actual DS lives in iOS/Android. *UI implication:* don't design web flows that try to replicate the mobile-app experience. Web is for persuasion (hero, services, IR), app is for transactions.
488
- 5. **Kakao family resemblance, not imitation.** `#1E1E1E` near-black, 12px radius, rounded-square avatars, flat-design — these are inherited from the Kakao parent system intentionally. *UI implication:* if you find yourself reaching for circular avatars or pure-black text, you've drifted out of the family.
489
- 6. **Cards over forms.** When the bank wants to show you something — a savings goal, a recent transfer, a 모임 settlement — it shows a card, not a row in a table. *UI implication:* default to card-based summary surfaces; reserve dense rows for searchable history (transactions, statements).
490
- 7. **One accent, real semantics.** Yellow is brand. Red `#E02000` is error. Green `#0FBE6C` is success. Blue `#007AFF` is iOS-aligned action affordance. There is no "KakaoBank green" or "KakaoBank red" — semantics stay semantic. *UI implication:* never use yellow to indicate warning or attention; use the warning amber `#FF9800` exclusively for that, and only sparingly.
273
+ 1. **Put the individual at the center.** Organize information around the user's task, not the bank's internal structure.
274
+ 2. **Use yellow with discipline.** Exact brand recognition is stronger than broad decorative use.
275
+ 3. **Make finance readable.** Strong Korean typography and generous rhythm should reduce cognitive load.
276
+ 4. **Do not confuse brand with product evidence.** A CI guide cannot authorize native transfer controls.
491
277
 
492
278
  ## 13. Personas
493
279
 
494
- *Personas are fictional archetypes informed by publicly described KakaoBank user segments (Korean digital-native banking users 20s–40s, especially mobile-only segments, plus the SMB/사업자 segment introduced post-2021 and the youth/mini segment), not individual people.*
280
+ First-party material establishes task contexts only:
281
+ - An individual comparing everyday banking services.
282
+ - A young user or guardian exploring KakaoBank mini.
283
+ - A business owner reviewing business banking options.
284
+ - A visitor seeking official company, ESG, investor, or brand information.
495
285
 
496
- **민지, 28, 서울.** 마케팅 회사 사원. 월급 통장은 KB지만 생활비·이체는 전부 카카오뱅크. 친구 모임 회비는 모임통장으로 받고, 26주적금으로 연말 여행비 모은다. 카카오뱅크를 "은행"이라기보다는 "돈 쓰는 카톡"이라고 생각함 — UI가 채팅처럼 가벼운 게 그녀가 매일 여는 이유. 종이 통장을 본 적이 거의 없다.
497
-
498
- **준호, 35, 부산.** 1인 카페 운영. **개인사업자통장** + **부가세박스** 조합으로 매출-경비-부가세를 자동 분류. 매년 부가세 신고 직전 서류 떼러 은행 가는 게 사라진 게 그에게 가장 큰 사건. 신용대출도 비대면으로 받았다 — `사장님 정책자금 대출도 비대면으로 간편하게!`라는 카피가 정확히 그를 지칭한다고 느낌.
499
-
500
- **서연, 14, 대전.** 중2. **카카오뱅크 mini** 사용자. 부모님이 만들어준 mini 계정에 용돈이 들어오고, 본인이 mini 카드로 편의점·스타벅스 결제. **mini 내맘대로 저금**으로 굿즈 구입 자금을 모은다. 부모-자녀 공동 가시성이 그녀의 부모님이 mini를 신뢰하는 이유.
501
-
502
- **Mr. 김, 52, 인천.** 중소기업 부장. 디지털 친화는 아니지만 코로나 이후 모든 송금을 카카오뱅크로 옮겼다. 큰 금액 이체할 때 인증 단계가 무서워서 일부러 천천히 진행한다. 빨간 경고색 + 명료한 한 줄 카피 (`잔액 5,000만 원 이상 이체는 추가 인증이 필요해요`)가 그가 신뢰의 신호로 받는 정확한 패턴.
286
+ Project-specific names, ages, balances, credit profiles, income, risk tolerance, and success metrics are intentionally unspecified and must come from the product brief.
503
287
 
504
288
  ## 14. States
505
289
 
506
- | State | Treatment |
507
- |---|---|
508
- | **Empty (계좌 없음, 신규 사용자)** | 16px / 600 / `#1E1E1E` `"아직 계좌가 없어요"` + 14px / 400 / `#A3A3A3` `"카카오뱅크 입출금통장을 만들어보세요"` + Yellow Solid CTA `"통장 만들기"`. 일러스트 1개 (Kakao Friends 캐릭터, 80px) 위에 배치 |
509
- | **Empty (거래 내역 없음)** | 14px / 400 / `#A3A3A3` `"이번 달 거래 내역이 없어요"` 단독. 일러스트 없음. 추천 행동 없음 — 자연히 채워질 테니까 |
510
- | **Empty (필터 결과 없음)** | 14px / 400 / `#A3A3A3` `"조건에 맞는 거래가 없어요"` + 14px / 600 `#1E1E1E` 텍스트 링크 `"필터 초기화"` |
511
- | **Loading (계좌 잔액)** | 잔액 자리에 `#F7F7F7` 스켈레톤 박스 (실제 잔액 폭과 동일), 1.2s 시머. 절대 "0원"으로 채우지 않음 — 0원 표시는 잘못된 정보를 암시 |
512
- | **Loading (이체 진행 중)** | 풀스크린 모달, KakaoBank Yellow 원형 로더 (24px), 아래 16px / 400 / `#A3A3A3` `"이체 중이에요"`. 사용자 입력 차단, 취소 버튼 없음 (이체 트랜잭션은 중단 불가) |
513
- | **Loading (앱 첫 진입)** | KakaoBank 심볼 (`#FFE300` 배경 위 흰 'B+I'), 화면 중앙. 심볼 단독 등장, 텍스트 없음 |
514
- | **Error (인라인 입력)** | 입력창 border `#E02000` 1.5px, 헬퍼 텍스트 13px / 400 / `#E02000`. 실행 가능한 한 줄 (`"계좌번호를 다시 확인해주세요"`) |
515
- | **Error (네트워크)** | 토스트 상단, `#1E1E1E` 배경 흰 텍스트 14px / 400, 4초 자동 dismiss. `"연결이 불안정해요. 잠시 후 다시 시도해주세요."` |
516
- | **Error (이체 실패 — 잔액 부족)** | 풀스크린, 64px `#E02000` ! 아이콘 → 24px / 700 / `#1E1E1E` `"잔액이 부족해요"` → 16px / 400 / `#A3A3A3` `"필요 금액: 50,000원 / 현재 잔액: 32,000원"` → Yellow Solid CTA `"다른 계좌에서 보내기"` + Outline `"확인"` |
517
- | **Success (이체 완료)** | 풀스크린 confirmation. 64px `#0FBE6C` 체크 → 24px / 700 / `#1E1E1E` `"이체가 완료되었어요"` → 16px / 400 / `#A3A3A3` 메타 정보 (보낸 금액, 받는 사람, 시각) → Yellow Solid `"확인"` (sticky, 56px). 토스트 아님 — 이체는 expensive 액션이라 dedicated 화면 |
518
- | **Success (인라인 — 즐겨찾기 추가 등)** | 200ms `#FFE300` 플래시 후 원래 색으로 페이드. 토스트 없음 |
519
- | **Skeleton (거래 내역)** | 64px row 그대로, 텍스트 영역만 `#F7F7F7` 박스. 아바타 자리도 동일한 12px rounded square skeleton |
520
- | **Disabled** | 버튼 bg `#F7F7F7`, 텍스트 `#CCCCCC`. 색상 반전 없음. 지오메트리 동일 — re-enable 시 frame-stable |
521
- | **Loading (긴 작업: 신용 조회)** | 진행률 % + `"약 N분 남음"` 라벨. KakaoBank Yellow progress bar (`#FFE300` 채움, `#F7F7F7` 트랙) |
290
+ Top navigation exposed focus, hover, and pressed states. One current service control exposed a disabled state, but its semantic role was insufficient for promotion. Native loading, empty, transfer success, transfer failure, identity verification, and destructive states remain absent.
522
291
 
523
292
  ## 15. Motion & Easing
524
293
 
525
- **Durations**:
526
-
527
- | Token | Value | Use |
528
- |---|---|---|
529
- | `motion-instant` | 0ms | 토글 / 체크박스 즉시 |
530
- | `motion-fast` | 150ms | 버튼 active, hover, 인라인 success flash |
531
- | `motion-standard` | 250ms | 모달 / 시트 enter, 카드 탭, 탭 전환 |
532
- | `motion-success` | 350ms | 이체 성공 / 적금 완료 confirmation 화면 등장 |
533
- | `motion-page` | 300ms | 네이티브 push/pop |
534
-
535
- **Easings**:
536
-
537
- | Token | Curve | Use |
538
- |---|---|---|
539
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | 시트, 토스트, 화면 push 등장 |
540
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | 모달 dismiss, 토스트 자동 닫기 |
541
- | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | 양방향 전환 |
542
- | `ease-spring-success` | spring (mass 1, stiffness 380, damping 28) | 이체 성공 체크 아이콘 등장 (한정 사용) |
543
-
544
- **Spring stance.** **Spring overshoot은 success confirmation에만 한정 허용** — 이체 성공 / 적금 목표 달성 같은 사용자가 "해냈다"고 느껴야 하는 순간에 한정. 일반 UI 모션은 spring 금지 (은행은 진중함이 우선). Pull-to-refresh는 OS 네이티브 spring 그대로 사용 (override가 더 어색).
545
-
546
- **Signature motions.**
547
-
548
- 1. **이체 성공 체크 등장.** 64px 녹색 체크 아이콘이 `motion-success / ease-spring-success`로 0.6 → 1.0 scale + opacity 0 → 1. 이 한 모션이 KakaoBank의 "끝났어요" 시그니처. 흔들림 없는 완결감.
549
- 2. **카드 탭.** 카드가 98% scale로 압축 (`motion-fast / ease-standard`), tap-up에서 release, 이후 `motion-page / ease-enter`로 라우트 전환.
550
- 3. **잔액 업데이트.** 잔액 숫자가 변할 때, 새 숫자가 위에서 아래로 8px 슬라이드 + 0.5 → 1 opacity (300ms). 카운트업 애니메이션은 사용 안 함 — 정확한 금액이 즉시 보여야 함.
551
- 4. **노란 색 transition 금지.** `#FFE300`은 binary on/off — 중간 yellow tint를 거치는 transition은 brand 색상 인지도를 훼손하므로 허용되지 않음. 노란 surface가 등장할 때는 fade-in 또는 slide-in만, 색상 transition 없음.
552
- 5. **Reduce motion.** `prefers-reduced-motion: reduce` 시 모든 spring → instant fade, 모든 `motion-*` → `motion-instant`. 성공 체크는 spring 없이 0.5초 fade-in으로 대체. 앱은 fully usable 유지.
553
-
554
- <!--
555
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
556
-
557
- Tier 1 — Direct verification (playwright live DOM, 2026-05-08):
558
- - https://www.kakaobank.com/ — hero "나의 첫 번째 AI 은행" 90px/800, sub-hero "나의 일상 속 유용한 금융 서비스를 만듭니다" 32px/700, body Pretendard Variable, monochrome canvas (`#FFFFFF` / `#F7F7F7` / `#F9F9F9`), top nav 14px/600 #1E1E1E.
559
- - https://www.kakaobank.com/view/service — display 42px/700, section h2 32px/700, product copy ("어렵고 복잡한 금융생활, 카카오뱅크 AI가 도와드릴게요.", "내 사업장에 맞는 보증서대출을 확인할 수 있어요."), service tab strip (통장/저축/대출/투자/외환/카드/사업자), product names confirmed (AI 서비스, mini, 개인사업자통장, 부가세박스, 슈퍼뱅크, SCBX 프로젝트).
560
- - https://www.kakaobank.com/view/about/brand/resource — official brand guideline V2.0 page. KakaoBank Yellow `#FFE300` (RGB 255/227/0, PANTONE Yellow 012 C/U), Black `#1E1E1E`, Gray `#A3A3A3`, Light Gray `#CCCCCC`. Symbol meaning ('B' + 'I' = "내가 중심이 되는 은행"). Wordmark follows Kakao 공동체 CI rules. Explicit prohibition: "유사한 다른 값의 노란색을 지정하지 않도록 유의".
561
-
562
- Tier 1 — Brand Identity PDF:
563
- - https://www.kakaobank.com/static/etc/logo/KakaoBank_BrandIdentityGuidelines_V2.0.pdf (referenced; not directly fetched but cross-confirmed via the web brand resource page rendering)
564
-
565
- Tier 2 — Press / secondary (WebSearch, 2026-05):
566
- - https://en.wikipedia.org/wiki/KakaoBank — 2017-07-27 launch, 1M users in 5 days, founding consortium (Kakao Corp + Korea Investment Holdings as lead financial partner — note: the user's task brief mentioned KB Bank as the consortium partner, but Wikipedia and primary press identify Korea Investment Holdings as the lead; this reference uses the verified attribution).
567
- - https://www.kedglobal.com/ipos/newsView/ked202108060001 — KOSPI IPO 2021-08-06, ₩39,000 IPO price, becoming Korea's most valuable lender by market cap at listing.
568
- - https://www.koreaherald.com/article/2666383 — IPO bubble/jackpot framing, 56× book value vs. peer 0.44× average.
569
- - https://koalagains.com/stocks/KOSPI/323410 — FY2020→FY2024 loan book ₩20.7T → ₩44.5T, 4Y revenue CAGR 29.2%, net income CAGR 40.3%, market cap drop 58.7% in 2022.
570
- - https://matrixbcg.com/blogs/brief-history/kakaobank — 2016-01 "Kakaobank Preparatory Corporation" formation, branchless cost-structure thesis, 23M+ users by Jan 2024.
571
-
572
- Tier 2 — Product naming verification (WebSearch, 2026-05):
573
- - 26주적금: https://www.kakaobank.com/products/26weeks (referenced)
574
- - 세이프박스: https://www.kakaobank.com/products/safeboxes (referenced)
575
- - 모임통장 + 모임 체크카드: https://www.kakaobank.com/products/moimcheckcard (referenced)
576
- - mini: https://m.kakaobank.com/FaqTag;tag=mini (referenced)
577
-
578
- Re-verification status:
579
- - 23M+ users (Jan 2024) is carried from secondary press; numbers may drift; re-verify for public quotes.
580
- - IPO price ₩39,000 (the upper-band finalization) — initial range was ₩33,000–₩39,000 per KED Global.
581
- - The "KB Bank consortium" framing in the user task brief is amended to "Kakao Corp + Korea Investment Holdings" per Wikipedia; if KB Bank held a smaller IPO/consortium stake, that detail is not the controlling structure.
582
-
583
- Not independently verified:
584
- - Mobile-app component specs (Yellow Solid Primary CTA, debit card face, success confirmation screen) — these are inferred from the canonical `#FFE300` + Kakao-family 12px-radius pattern + brand guideline V2.0, not directly DOM-inspected. They live in the iOS/Android app, which playwright cannot reach.
585
- - Voice samples marked `illustrative` are derived patterns from Kakao-family system messaging, not verbatim KakaoBank app strings.
586
-
587
- Personas (§13) are fictional archetypes informed by publicly described KakaoBank user segments — Korean digital-native banking users 20s–40s, SMB/사업자 segment, youth/mini segment, late-adopting middle-aged users. Any resemblance to specific individuals is unintended.
588
-
589
- Interpretive claims (editorial, not documented KakaoBank statements):
590
- - "Banking-formal, character-flavored" framing (§12 Principle 3) — editorial reading.
591
- - The "yellow is product, not chrome" principle (§12 Principle 1) — derived from V2.0 guideline restraint patterns + observation that the corporate site is monochrome, not a documented Kakao rule.
592
- - "Cards over forms" (§12 Principle 6) — observational from product naming patterns + Kakao parent's flat design heritage.
593
- -->
294
+ No reusable duration or easing curve is promoted. Public interaction capture establishes state presence, not native banking motion behavior.
594
295
 
595
296
  ---
596
297
 
597
- **Verified:** 2026-05-08
598
- **Tier 1 sources (Philosophy):** kakaobank.com/view/about/brand/resource (official KakaoBank Brand Identity Guidelines V2.0, Aug 2024 — Yellow `#FFE300`, "내가 중심이 되는 은행" symbol meaning, single-yellow discipline); kakaobank.com/ (corporate hero "나의 첫 번째 AI 은행" / 90px·800, sub-hero, monochrome canvas); kakaobank.com/view/service (product copy verified, service taxonomy verified).
599
- **Tier 2 sources:** Wikipedia (KakaoBank — founding 2016-01 / launch 2017-07-27 / Kakao Corp + Korea Investment Holdings consortium), KED Global (KOSPI IPO 2021-08-06 ₩39,000), Korea Herald (IPO 56× book value framing), KoalaGains (FY2020→FY2024 ₩20.7T→₩44.5T loan book), MatrixBCG (1M users in 5 days, 23M+ by Jan 2024), Brandfetch.
600
- **Tier 2 (component DS):** getdesign.md/kakaobank — no record. styles.refero.design — not searched (no Kakao-family record per kakao reference precedent).
601
- **Style ref for tone:** `kakao` (Kakao 공동체 family resemblance — `해요체` body, `합니다체` legal), `toss` (Korean fintech voice posture).
602
- **Conflicts unresolved:** none. The user task brief's "KB Bank consortium" framing is amended to "Korea Investment Holdings" per primary sources; KakaoBank Yellow is precisely `#FFE300` (not `#FAE100` as the brief speculated) per the V2.0 brand guideline.
298
+ **Verified:** 2026-07-12 (omd:migrate)
299
+ **Tier 1 sources:** https://www.kakaobank.com/ ; https://www.kakaobank.com/view/service ; https://www.kakaobank.com/view/about/brand/resource ; https://www.kakaobank.com/static/etc/logo/KakaoBank_BrandIdentityGuidelines_V2.0.pdf
300
+ **Tier 2 attempts:** getdesign.md/kakaobank returned no design record; Refero had no reliable KakaoBank match
301
+ **Conflicts unresolved:** none