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,414 +8,303 @@ primary_color: "#005df9"
8
8
  logo:
9
9
  type: favicon
10
10
  slug: "https://www.google.com/s2/favicons?domain=shinhancard.com&sz=128"
11
- verified: "2026-06-09"
11
+ verified: "2026-07-13"
12
12
  added: "2026-06-09"
13
13
  omd: "0.1"
14
+ verification_v2:
15
+ schema: 2
16
+ checked: "2026-07-13"
17
+ surfaces:
18
+ - { id: home, kind: product-web, url: "https://www.shinhancard.com/pconts/html/main.html", inspected: "2026-07-13" }
19
+ - { id: credit-detail, kind: product-web, url: "https://www.shinhancard.com/pconts/html/card/apply/credit/1232390_2207.html", inspected: "2026-07-13" }
20
+ - { id: premium-detail, kind: product-web, url: "https://www.shinhancard.com/pconts/html/card/apply/premium/1236160_2205.html", inspected: "2026-07-13" }
21
+ sources:
22
+ - { id: home-live, kind: product-surface, url: "https://www.shinhancard.com/pconts/html/main.html", captured: "2026-07-13" }
23
+ - { id: credit-detail-live, kind: product-surface, url: "https://www.shinhancard.com/pconts/html/card/apply/credit/1232390_2207.html", captured: "2026-07-13" }
24
+ - { id: premium-detail-live, kind: product-surface, url: "https://www.shinhancard.com/pconts/html/card/apply/premium/1236160_2205.html", captured: "2026-07-13" }
25
+ conflicts: []
26
+ claims:
27
+ "tokens.colors.primary": &home { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
28
+ "tokens.colors.canvas": *home
29
+ "tokens.colors.surface": *home
30
+ "tokens.colors.tonal": &detail { surface_id: credit-detail, source_id: credit-detail-live, method: computed-style, captured: "2026-07-13" }
31
+ "tokens.colors.surface-accent": *home
32
+ "tokens.colors.ink": *home
33
+ "tokens.colors.body": *home
34
+ "tokens.colors.slate": *home
35
+ "tokens.colors.muted": *home
36
+ "tokens.colors.border": *home
37
+ "tokens.colors.danger": *home
38
+ "tokens.colors.danger-bg": *home
39
+ "tokens.typography.family.sans": *home
40
+ "tokens.typography.display.size": *home
41
+ "tokens.typography.display.weight": *home
42
+ "tokens.typography.display.lineHeight": *home
43
+ "tokens.typography.display.tracking": *home
44
+ "tokens.typography.display.use": *home
45
+ "tokens.typography.title.size": *detail
46
+ "tokens.typography.title.weight": *detail
47
+ "tokens.typography.title.lineHeight": *detail
48
+ "tokens.typography.title.tracking": *detail
49
+ "tokens.typography.title.use": *detail
50
+ "tokens.typography.body.size": *home
51
+ "tokens.typography.body.weight": *home
52
+ "tokens.typography.body.lineHeight": *home
53
+ "tokens.typography.body.tracking": *home
54
+ "tokens.typography.body.use": *home
55
+ "tokens.typography.compact.size": *home
56
+ "tokens.typography.compact.weight": *home
57
+ "tokens.typography.compact.lineHeight": *home
58
+ "tokens.typography.compact.tracking": *home
59
+ "tokens.typography.compact.use": *home
60
+ "tokens.spacing.tight": *home
61
+ "tokens.spacing.compact": *home
62
+ "tokens.spacing.regular": *home
63
+ "tokens.spacing.surface": *detail
64
+ "tokens.rounded.sm": *home
65
+ "tokens.rounded.md": *home
66
+ "tokens.rounded.lg": *home
67
+ "tokens.rounded.xl": *detail
68
+ "tokens.shadow.menu": *home
69
+ "tokens.components.badge-danger.type": *home
70
+ "tokens.components.badge-danger.bg": *home
71
+ "tokens.components.badge-danger.fg": *home
72
+ "tokens.components.badge-danger.radius": *home
73
+ "tokens.components.badge-danger.padding": *home
74
+ "tokens.components.badge-danger.font": *home
75
+ "tokens.components.badge-danger.use": *home
76
+ "tokens.components.badge-blue.type": *home
77
+ "tokens.components.badge-blue.bg": *home
78
+ "tokens.components.badge-blue.fg": *home
79
+ "tokens.components.badge-blue.radius": *home
80
+ "tokens.components.badge-blue.padding": *home
81
+ "tokens.components.badge-blue.font": *home
82
+ "tokens.components.badge-blue.use": *home
14
83
  tokens:
15
- source: live-extract
16
- extracted: "2026-06-09"
84
+ source: reconciled
85
+ extracted: "2026-07-13"
17
86
  components_harvested: true
18
87
  colors:
19
88
  primary: "#005df9"
20
- indigo: "#6268ff"
21
89
  canvas: "#ffffff"
22
90
  surface: "#f8f9fc"
23
- surface-blue: "#f0f4fa"
24
- surface-indigo: "#ebf0ff"
25
- heading: "#101828"
26
- slate: "#344054"
91
+ tonal: "#f0f4fa"
92
+ surface-accent: "#ebf0ff"
93
+ ink: "#101828"
27
94
  body: "#475467"
95
+ slate: "#344054"
28
96
  muted: "#667085"
29
- muted-light: "#818da2"
30
97
  border: "#e4e7ec"
31
- border-strong: "#d0d5dd"
32
- on-primary: "#ffffff"
33
98
  danger: "#f44f4f"
34
99
  danger-bg: "#fff6f5"
35
100
  typography:
36
101
  family: { sans: "Digital One Shinhan" }
37
- display: { size: 32, weight: 900, lineHeight: 1.20, tracking: -0.64, use: "Hero / main visual headline" }
38
- h1: { size: 28, weight: 700, lineHeight: 1.30, tracking: -0.28, use: "Page title" }
39
- section: { size: 21, weight: 700, lineHeight: 1.30, tracking: -0.28, use: "Section heading" }
40
- body-input: { size: 16, weight: 500, lineHeight: 1.69, tracking: -0.32, use: "Form input, emphasized body" }
41
- body: { size: 14, weight: 400, lineHeight: 1.71, tracking: -0.28, use: "Standard reading text, nav links" }
42
- caption: { size: 12, weight: 400, lineHeight: 1.50, use: "Metadata, fine print, timestamps" }
43
- spacing: { xs: 2, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 32, section: 48 }
44
- rounded: { sm: 8, md: 12, lg: 16, full: 9999 }
102
+ display: { size: 32, weight: 800, lineHeight: 1.50, tracking: -0.64, use: "Promotional card title observed on the public home surface" }
103
+ title: { size: 28, weight: 700, lineHeight: 1.50, tracking: -0.56, use: "Detail-page heading observed on credit-card product surface" }
104
+ body: { size: 14, weight: 400, lineHeight: 1.71, tracking: -0.28, use: "Product-page reading text and controls" }
105
+ compact: { size: 12, weight: 300, lineHeight: 1.67, tracking: -0.24, use: "Compact product and menu metadata" }
106
+ spacing: { tight: 4, compact: 8, regular: 12, surface: 20 }
107
+ rounded: { sm: 8, md: 12, lg: 16, xl: 20 }
45
108
  shadow:
46
- hairline: "#e4e7ec 0px 0px 0px 1px"
47
- inset-line: "#d0d5dd 0px -1px 0px 0px inset"
109
+ menu: "rgba(12,17,29,0.1) 0px 4px 16px 0px"
48
110
  components:
49
- button-primary: { type: button, bg: "#005df9", fg: "#ffffff", radius: "16px", padding: "2px 12px", font: "14px / 400", use: "Primary CTA 로그인, SOL페이 다운로드 (shc-btn theme-primary)" }
50
- button-tertiary: { type: button, bg: "#f0f4fa", fg: "#101828", radius: "12px", padding: "2px 8px", font: "14px / 400", use: "Tertiary action 마이페이지, 정보관리 (shc-btn theme-tertiary)" }
51
- button-indigo: { type: button, bg: "#6268ff", fg: "#ffffff", radius: "12px", padding: "2px 8px", font: "14px / 400", use: "Secondary accent action / promo" }
52
- card: { type: card, bg: "#f8f9fc", fg: "#101828", radius: "16px", padding: "24px", font: "14px / 400", use: "Product / loan entry card, hairline #e4e7ec ring" }
53
- card-indigo: { type: card, bg: "#ebf0ff", fg: "#101828", radius: "16px", padding: "24px", use: "Highlighted promo card on indigo tint" }
54
- input-text: { type: input, bg: "#ffffff", fg: "#101828", radius: "8px", font: "16px / 500", use: "Search / form input, 1px #d0d5dd border, focus #005df9" }
55
- badge-danger: { type: badge, bg: "#fff6f5", fg: "#f44f4f", radius: "8px", padding: "2px 8px", font: "12px / 400", use: "Alert / required / error badge" }
56
- tab: { type: tab, bg: "#ffffff", fg: "#667085", radius: "0px", font: "14px / 400", active: "2px bottom border #005df9, fg #101828", use: "Main navigation / content tabs" }
57
- list-item: { type: listItem, bg: "#ffffff", fg: "#344054", radius: "12px", padding: "0px 12px", font: "14px / 400", use: "Menu / quick-link list row, #e4e7ec divider" }
58
- toggle: { type: toggle, bg: "#005df9", fg: "#ffffff", radius: "9999px", use: "On-state switch / segmented selector" }
111
+ badge-danger: { type: badge, bg: "#fff6f5", fg: "#f44f4f", radius: "12px", padding: "2px 8px", font: "11px / 500", use: "Tinted text badge on the public home surface (shc-badge--text type-tint theme-red)" }
112
+ badge-blue: { type: badge, bg: "#ebf0ff", fg: "#005df9", radius: "12px", padding: "2px 8px", font: "11px / 500", use: "Tinted text badge on the public home surface (shc-badge--text type-tint theme-blue)" }
59
113
  ---
60
114
 
61
- # Design System Inspiration of Shinhan Card
115
+ # Shinhan Card Design Reference
62
116
 
63
117
  ## 1. Visual Theme & Atmosphere
64
118
 
65
- Shinhan Card's website reads as the digital face of a major Korean financial institution that has been deliberately modernized for a mobile-first, super-app era. The page opens on a clean white canvas (`#ffffff`) layered with soft off-white and pale-blue surfaces (`#f8f9fc`, `#f0f4fa`), anchored by a single confident interactive blue (`#005df9`) that carries every primary call to action. Where legacy bank sites lean on dense navy chrome and stock imagery, Shinhan Card opts for generous rounded cards, airy spacing, and a restrained two-tone neutral scale that lets the blue do all the signalling. The result feels trustworthy and institutional, yet light and consumer-friendly closer to a fintech app than a traditional card-issuer portal.
66
-
67
- The defining typographic element is the proprietary `Digital One Shinhan` typeface, set across the entire system from 32px hero display down to 12px fine print. It runs with consistently tight negative letter-spacing (around -0.28px at body sizes, widening to -0.64px at display) that packs Korean and Latin glyphs into dense, engineered lines. Body text sits at a comfortable 14px with a generous 24px line-height, giving the dense Hangul a calm, readable rhythm. Headlines escalate in weight rather than only in size — 700 for page and section titles, jumping to 900 for the hero — so hierarchy is felt through ink density as much as scale.
119
+ Shinhan Card is a Korean specialist finance company whose stated business spans credit-card sales, cash advances, instalment finance, card loans, auto lease, and a broader platform-and-data business. The current public web experience connects that institutional remit to the group’s Shinhan SOL Pay digital brand: the company describes SOL Pay as a platform linking financial life and daily life, rather than only a card-management destination. On the captured public product surfaces, that transition is expressed through a bright `#005df9` action blue, quiet white and blue-grey fields, and `Digital One Shinhan` set tightly across product content. The result is a practical product language for card discovery and account-related tasks rather than a generalized marketing style.
68
120
 
69
- What distinguishes Shinhan Card is its use of barely-there elevation. Instead of drop shadows, surfaces are separated by a 1px hairline ring (`#e4e7ec 0px 0px 0px 1px`) and an inset bottom line (`#d0d5dd 0px -1px 0px 0px inset`). Depth is communicated through tinted surface stacking white over `#f8f9fc` over `#f0f4fa` over `#ebf0ff` — rather than blur. This flat, paper-layered aesthetic keeps the interface feeling crisp and document-grade, appropriate for a product where users scan statements, balances, and transactions.
70
-
71
- **Key Characteristics:**
72
- - Proprietary `Digital One Shinhan` typeface across the entire system
73
- - Single interactive blue (`#005df9`) as the sole primary-action color
74
- - Weight-driven hierarchy: 400 body, 700 titles, 900 hero
75
- - Tinted surface stacking (`#ffffff` / `#f8f9fc` / `#f0f4fa` / `#ebf0ff`) instead of drop shadows
76
- - Hairline `#e4e7ec` rings and inset `#d0d5dd` lines for separation
77
- - Generous rounded geometry — 8px / 12px / 16px radius family
78
- - Tight negative tracking (-0.28px body, -0.64px display) for dense Korean text
79
- - Indigo (`#6268ff`) as a secondary accent for promotional moments
121
+ The public system is more varied than the prior snapshot suggested. Product-detail pages carry `#f8f9fc` selection tiles and `#f0f4fa` toned actions; the home surface also exposes red and blue tint badges. Rounded values occur at 8, 12, 16, and 20px, while an opened navigation menu uses a light border and a small, explicit shadow. This reference therefore distinguishes the captured product web surfaces from the company’s corporate narrative and from any unobserved signed-in app, checkout, or documentation UI.
80
122
 
81
123
  ## 2. Color Palette & Roles
82
124
 
83
- ### Primary
84
- - **Shinhan Blue** (`#005df9`): Primary brand color, CTA backgrounds, link text, active tab indicator, focus rings. A saturated, slightly electric blue that anchors the entire system.
85
- - **Ink** (`#101828`): Primary heading and high-emphasis text color. A near-black navy that adds warmth and depth over pure black.
86
- - **Pure White** (`#ffffff`): Page background, card surfaces, button text on the blue.
87
-
88
- ### Accent
89
- - **Indigo** (`#6268ff`): Secondary accent for promotional cards and decorative highlights, paired with its tint surface.
90
- - **Surface Indigo** (`#ebf0ff`): Pale indigo tint for highlighted promo cards and feature callouts.
91
-
92
- ### Neutral Scale
93
- - **Slate** (`#344054`): Strong body text, list rows, secondary headings.
94
- - **Body** (`#475467`): Standard secondary text, descriptions.
95
- - **Muted** (`#667085`): Tertiary text, inactive tab labels, captions.
96
- - **Muted Light** (`#818da2`): Disabled text, placeholders, axis labels.
97
-
98
- ### Surfaces & Borders
99
- - **Surface** (`#f8f9fc`): Default card and panel background.
100
- - **Surface Blue** (`#f0f4fa`): Tertiary button background, subtle filled chips.
101
- - **Border** (`#e4e7ec`): Standard hairline border, dividers, card rings.
102
- - **Border Strong** (`#d0d5dd`): Input borders, inset separator lines.
103
-
104
- ### Feedback
105
- - **Danger** (`#f44f4f`): Error text, alert badges, required-field markers.
106
- - **Danger BG** (`#fff6f5`): Tinted surface behind danger badges and inline errors.
125
+ - **Primary blue** (`#005df9`): observed as the background of `shc-btn theme-primary size-xl` across the home, credit-detail, and premium-detail product surfaces.
126
+ - **Canvas** (`#ffffff`): observed page and expanded-menu surface.
127
+ - **Surface** (`#f8f9fc`): observed on home and product-detail selection tiles.
128
+ - **Tonal surface** (`#f0f4fa`): observed on the `shc-capsule-btn theme-tonal size-md` action on both captured detail pages.
129
+ - **Accent tint** (`#ebf0ff`): observed behind the blue text badge on the home surface.
130
+ - **Ink** (`#101828`), **body** (`#475467`), **slate** (`#344054`), and **muted** (`#667085`): observed text families across the three product surfaces.
131
+ - **Border** (`#e4e7ec`): observed on the open navigation menu and home chip.
132
+ - **Danger tint** (`#fff6f5`) and **danger text** (`#f44f4f`): observed on `shc-badge--text type-tint theme-red` on home.
107
133
 
108
134
  ## 3. Typography Rules
109
135
 
110
- ### Font Family
111
- - **Primary**: `Digital One Shinhan`, with system fallback stack: `-apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`
112
- - The proprietary face covers both Hangul and Latin and is used at every level — there is no separate display or mono family on the marketing surface.
136
+ ### Font evidence classes
113
137
 
114
- ### Hierarchy
138
+ - **Live computed surface-use — `Digital One Shinhan`.** The supplied capture records 691 visible uses across the home, credit-detail, and premium-detail product surfaces. Computed declarations resolve to `"Digital One Shinhan", -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`.
139
+ - **FontFaceSet/source corroboration — `Digital One Shinhan`.** The same bundle reports the family as `loaded` with high confidence and eight first-party source URLs: Light, Medium, Bold, and ExtraBold `.woff`/`.woff2` files under `https://www.shinhancard.com/pconts/static/webfonts/`.
140
+ - **Official distributed product asset.** Those files are served from Shinhan Card’s own webfont path and corroborate the live web family. A publicly indexed Shinhan Card font licence or separate brand-font catalogue was not found in this update, so no reuse licence is asserted.
141
+ - **Declared-only asset — `swiper-icons`.** A data-URL `@font-face` was declared, but the capture records zero visible uses. It is an icon asset, not a UI-family token.
142
+ - **System fallbacks.** The Apple/system/Segoe/Roboto/Arial chain remains a declaration fallback; it is not presented as a Shinhan Card brand font.
115
143
 
116
- | Role | Size | Weight | Line Height | Letter Spacing | Notes |
117
- |------|------|--------|-------------|----------------|-------|
118
- | Display / Hero | 32px (2.00rem) | 900 | 1.20 | -0.64px | Main visual headline, maximum density |
119
- | Page Title (h1) | 28px (1.75rem) | 700 | 1.30 | -0.28px | Top-level page title |
120
- | Section (h2) | 21px (1.31rem) | 700 | 1.30 | -0.28px | Section / card-group heading |
121
- | Body Emphasized / Input | 16px (1.00rem) | 500 | 1.69 | -0.32px | Form input, emphasized body |
122
- | Body | 14px (0.88rem) | 400 | 1.71 | -0.28px | Standard reading text, nav links |
123
- | Caption | 12px (0.75rem) | 400 | 1.50 | normal | Metadata, fine print, timestamps |
144
+ ### Observed hierarchy
124
145
 
125
- ### Principles
126
- - **Weight as hierarchy**: Distinction comes primarily from weight escalation (400 → 700 → 900), not only size. The hero's 900 weight is the heaviest moment in the system.
127
- - **Tight tracking for Hangul density**: Negative letter-spacing (-0.28px body, -0.64px display) keeps dense Korean lines compact and engineered.
128
- - **Generous line-height on body**: 14px body runs at a 24px line box (~1.71) so dense Hangul stays calm and scannable.
129
- - **One family, all levels**: `Digital One Shinhan` carries the entire system, reinforcing brand consistency from hero to fine print.
146
+ | Role | Size | Weight | Line height | Tracking | Captured context |
147
+ |---|---:|---:|---:|---:|---|
148
+ | Promotional title | 32px | 800 | 48px | -0.64px | Home card text |
149
+ | Detail heading | 28px | 700 | 42px | -0.56px | Credit-card product page |
150
+ | Product body/control | 14px | 400 | 24px | -0.28px | Product pages and controls |
151
+ | Compact metadata | 12px | 300 | 20px | -0.24px | Product and menu metadata |
130
152
 
131
- ## 4. Component Stylings
153
+ ## 4. Components
132
154
 
133
- ### Buttons
155
+ ### Primary action
134
156
 
135
- **Primary** (`shc-btn theme-primary`)
157
+ **Default**
136
158
  - Background: `#005df9`
137
- - Text: `#ffffff`
138
- - Padding: 2px 12px (size-xl), 2px 8px (size-lg)
139
- - Radius: 16px (xl), 12px (lg)
140
- - Font: 14px `Digital One Shinhan` weight 400
141
- - Use: Primary CTA "로그인", "신한 SOL페이 다운로드"
159
+ - Text: `#101828`
160
+ - Radius: `16px`
161
+ - Padding: `2px 12px`
162
+ - Font: `14px / 400 / Digital One Shinhan`
163
+ - Use: `shc-btn theme-primary size-xl` on home, credit-detail, and premium-detail public product surfaces; evidence `home::[data-omd-capture="27"]`.
142
164
 
143
- **Tertiary** (`shc-btn theme-tertiary`)
165
+ ### Toned capsule action
166
+
167
+ **Default**
144
168
  - Background: `#f0f4fa`
145
169
  - Text: `#101828`
146
- - Padding: 2px 8px
147
- - Radius: 12px
148
- - Use: Secondary actions "마이페이지", "내 정보관리"
149
-
150
- **Indigo Accent**
151
- - Background: `#6268ff`
152
- - Text: `#ffffff`
153
- - Radius: 12px
154
- - Use: Promotional / accent CTAs paired with `#ebf0ff` surfaces
155
-
156
- ### Cards & Containers
157
- - Background: `#f8f9fc` (standard) or `#ebf0ff` (promo highlight)
170
+ - Radius: `20px`
171
+ - Padding: `8px 12px`
172
+ - Font: `14px / 400 / Digital One Shinhan`
173
+ - Use: `shc-capsule-btn theme-tonal size-md` on both captured product-detail surfaces; evidence `surface-2::[data-omd-capture="29"]`.
174
+
175
+ ### Product-detail tile
176
+
177
+ **Default**
178
+ - Background: `#f8f9fc`
158
179
  - Text: `#101828`
159
- - Radius: 16px
160
- - Padding: 24px
161
- - Separation: 1px hairline ring `#e4e7ec 0px 0px 0px 1px`, no drop shadow
162
- - Use: Loan/product entry cards, feature tiles
180
+ - Radius: `16px`
181
+ - Padding: `20px`
182
+ - Font: `14px / 400 / Digital One Shinhan`
183
+ - Use: captured product-detail tile on both credit and premium pages; evidence `surface-2::[data-omd-capture="20"]`.
163
184
 
164
- ### Inputs & Forms
165
- - Background: `#ffffff`
166
- - Border: `1px solid #d0d5dd`
167
- - Radius: 8px
168
- - Text: `#101828`, 16px weight 500
169
- - Placeholder: `#818da2`
170
- - Focus: `#005df9` border / ring
171
-
172
- ### Badges
173
- **Danger / Alert**
185
+ ### Tinted text badge
186
+
187
+ **Danger**
174
188
  - Background: `#fff6f5`
175
189
  - Text: `#f44f4f`
176
- - Padding: 2px 8px
177
- - Radius: 8px
178
- - Font: 12px weight 400
179
-
180
- ### Tabs / Navigation
181
- - Inactive: `#667085` text, transparent background
182
- - Active: `#101828` text with 2px bottom border `#005df9`
183
- - Font: 14px weight 400
184
- - Sticky header on white with hairline `#e4e7ec` divider
185
-
186
- ### List Items
190
+ - Radius: `12px`
191
+ - Padding: `2px 8px`
192
+ - Font: `11px / 500 / Digital One Shinhan`
193
+ - Use: `shc-badge--text type-tint theme-red` on the public home surface; evidence `home::span`.
194
+
195
+ **Blue**
196
+ - Background: `#ebf0ff`
197
+ - Text: `#005df9`
198
+ - Radius: `12px`
199
+ - Padding: `2px 8px`
200
+ - Font: `11px / 500 / Digital One Shinhan`
201
+ - Use: `shc-badge--text type-tint theme-blue` on the public home surface; evidence `home::span`.
202
+
203
+ ### Navigation menu
204
+
205
+ **Observed open menu**
187
206
  - Background: `#ffffff`
188
- - Text: `#344054`
189
- - Radius: 12px
190
- - Padding: 0px 12px
191
- - Divider: 1px `#e4e7ec` between rows
207
+ - Text: `#101828`
208
+ - Border: `1px solid #e4e7ec`
209
+ - Radius: `12px`
210
+ - Shadow: `rgba(12,17,29,0.1) 0px 4px 16px 0px`
211
+ - Font: `14px / 400 / Digital One Shinhan`
212
+ - State: `expanded`, `menu-open`
213
+ - Use: `shc-dropdown__option` after the captured menu interaction on all three product surfaces; evidence `home::[data-omd-interaction-capture="menu-0-0"]`.
214
+
215
+ Only the defaults and the one expanded menu state above are documented. The supplied evidence records menu expansion only; it does not establish hover, focus, disabled, error, pressed, dialog, toast, input, or tab-state variants for these components.
192
216
 
193
217
  ---
194
218
 
195
- **Verified:** 2026-06-09 (omd-add-reference live inspect)
196
- **Tier 1 sources:** https://www.shinhancard.com, https://www.shinhancard.com/pconts/html/main.html
219
+ **Verified:** 2026-07-13
220
+ **Tier 1 sources:** `https://www.shinhancard.com/pconts/html/main.html` (public product surface), `https://www.shinhancard.com/pconts/html/card/apply/credit/1232390_2207.html` (credit-card detail product surface), `https://www.shinhancard.com/pconts/html/card/apply/premium/1236160_2205.html` (premium-card detail product surface), `https://www.shinhancard.com/pconts/company/html/intro/business/business.html` (official company/business context), `https://www.shinhancard.com/pconts/company/html/promotion/press/1225309_3999.html` (official SOL Pay brand-transition context)
221
+ **Tier 2 sources:** `https://getdesign.md/shinhancard` (attempted; built-in web open safe-open failure and no Shinhan Card record returned by search), `https://styles.refero.design/?q=Shinhan%20Card` (attempted; built-in web open safe-open failure and no matching indexed result returned by search)
222
+ **Conflicts unresolved:** none
223
+
224
+ Legacy primary text, tertiary/indigo button, input, tab, list-row, toggle, universal-card, broad responsive, and all unobserved interactive-state claims were removed because the supplied 2026 three-surface bundle does not support them.
197
225
 
198
226
  ## 5. Layout Principles
199
227
 
200
- ### Spacing System
201
- - Base unit: 8px
202
- - Scale: 2px, 8px, 12px, 16px, 20px, 24px, 32px, 48px
203
- - Notable: Tight inner button padding (2px vertical) contrasts with generous 24px card padding — chrome is dense, content surfaces are airy.
228
+ ### Observed spacing and shape
204
229
 
205
- ### Grid & Container
206
- - Centered main column with full-width tinted section bands
207
- - Product/loan entries arranged as multi-column rounded card grids
208
- - Sticky top header with GNB navigation; footer carries customer-center numbers and legal links over `#ffffff`
209
- - Quick-link rows and statement-style lists use full-width `#ffffff` rows with hairline dividers
230
+ The capture’s most frequent spacing values are 4, 8, 12, 20, and 24px. Component-level evidence gives the useful boundary: the toned action uses 8px 12px padding, while the product-detail tile uses 20px padding. Rounded values are not a single global scale: the captured actions and menus use 8, 12, 16, or 20px according to component.
210
231
 
211
- ### Whitespace Philosophy
212
- - **Paper-layered depth**: Sections are distinguished by tinted surfaces (`#f8f9fc`, `#f0f4fa`, `#ebf0ff`) stacked over white, not by shadows.
213
- - **Airy cards, dense data**: Marketing cards get 24px padding while transactional list rows pack tightly for scanning statements.
214
- - **Rounded calm**: Consistent 12–16px radius across cards and buttons softens the institutional density.
232
+ ### Surface-domain boundary
215
233
 
216
- ### Border Radius Scale
217
- - Small (8px): Inputs, badges, small chips
218
- - Standard (12px): Buttons, list rows, the workhorse radius
219
- - Large (16px): Cards, product tiles, large CTAs
220
- - Full (9999px): Toggles, pill selectors
234
+ The three inspected URLs are public product-web surfaces. They are not a signed-in statement, checkout, or mobile-app capture, so this reference does not prescribe a transactional information architecture, responsive breakpoint map, or a universal grid.
221
235
 
222
236
  ## 6. Depth & Elevation
223
237
 
224
- | Level | Treatment | Use |
225
- |-------|-----------|-----|
226
- | Flat (Level 0) | No shadow | Page background, inline text |
227
- | Hairline (Level 1) | `#e4e7ec 0px 0px 0px 1px` ring | Cards, panels, content tiles |
228
- | Inset Line (Level 2) | `#d0d5dd 0px -1px 0px 0px inset` | Sticky headers, list-row bottoms, input bases |
229
- | Surface Tint (Level 3) | `#f8f9fc` / `#f0f4fa` / `#ebf0ff` stacking | Section separation without blur |
230
- | Focus Ring | `#005df9` outline | Keyboard focus, active input |
231
-
232
- **Shadow Philosophy**: Shinhan Card almost entirely avoids blurred drop shadows. Elevation is communicated through crisp 1px hairline rings (`#e4e7ec`) and inset bottom lines (`#d0d5dd`), reinforced by tinted-surface stacking. This produces a document-grade, paper-layered feel appropriate for a financial product where clarity and precision outrank decorative depth.
238
+ The expanded `shc-dropdown__option` menu is the only directly measured elevated layer: `rgba(12,17,29,0.1) 0px 4px 16px 0px` with a 1px `#e4e7ec` border and 12px radius. The product tiles measured in this bundle use no blur shadow. This is evidence for those two observed contexts, not a general “no-shadow” rule for the whole product.
233
239
 
234
240
  ## 7. Do's and Don'ts
235
241
 
236
242
  ### Do
237
- - Use `#005df9` as the single primary-action and link color
238
- - Separate surfaces with hairline `#e4e7ec` rings and tinted stacking rather than drop shadows
239
- - Use `#101828` (ink navy) for headings instead of pure black
240
- - Escalate weight (400 700 900) to build hierarchy
241
- - Keep radii in the 8–16px family for cards and buttons
242
- - Apply tight negative tracking (-0.28px) on dense Korean body text
243
- - Use `Digital One Shinhan` at every level for brand consistency
243
+
244
+ - Use `#005df9` for a primary action only when applying the observed `shc-btn theme-primary size-xl` pattern.
245
+ - Keep the observed `Digital One Shinhan` webfont metadata when the first-party files can be loaded; otherwise label it unavailable rather than substituting a system font as the brand face.
246
+ - Preserve component provenance: product-detail tile values belong to the two card-detail URLs, while tint badges were observed on home.
247
+ - Treat the 12px-radius elevated menu as an observed open-menu treatment, not a general card token.
244
248
 
245
249
  ### Don't
246
- - Don't introduce a second primary CTA color — blue carries all primary actions
247
- - Don't use heavy blurred drop shadows hairlines and inset lines are the language
248
- - Don't use pure black (`#000000`) for headings always `#101828`
249
- - Don't use pill/fully-rounded shapes on cards those are reserved for toggles
250
- - Don't crowd cards keep the airy 24px padding
251
- - Don't use the indigo (`#6268ff`) accent for standard primary CTAs — it is promotional
252
- - Don't apply positive letter-spacing on Hangul body text
250
+
251
+ - Don't promote the declared `swiper-icons` face or the system fallback chain to Shinhan Card’s UI family.
252
+ - Don't infer a white primary-button label, focus ring, hover style, disabled state, input spec, or tab treatment from the unobserved component states.
253
+ - Don't extend public product-web measurements into signed-in app, checkout, or documentation UI.
254
+ - Don't represent the prior indigo button, full-pill toggle, or universal 24px card as current canonical components without new evidence.
253
255
 
254
256
  ## 8. Responsive Behavior
255
257
 
256
- ### Breakpoints
257
- | Name | Width | Key Changes |
258
- |------|-------|-------------|
259
- | Mobile | <640px | Single column, stacked cards, larger tap targets |
260
- | Tablet | 640–1024px | 2-column card grids, moderate padding |
261
- | Desktop | 1024–1280px | Full multi-column product grids |
262
- | Large Desktop | >1280px | Centered content with generous side margins |
263
-
264
- ### Touch Targets
265
- - Buttons keep comfortable horizontal padding (8–12px) with full-height tap zones
266
- - Navigation links at 14px with adequate row spacing
267
- - Cards span full width on mobile for easy tapping
268
- - `pc-only` list rows collapse out of the mobile layout
269
-
270
- ### Collapsing Strategy
271
- - Hero: 32px display compresses on mobile, weight 900 maintained
272
- - Navigation: horizontal GNB → hamburger / drawer on mobile
273
- - Product cards: multi-column → 2-column → single column stacked
274
- - Statement/list rows: maintain full-width hairline-divided layout
275
- - Section spacing: 48px → reduced on mobile
276
-
277
- ### Image Behavior
278
- - Card thumbnails maintain 16px radius at all sizes
279
- - Tinted section bands persist full-width across breakpoints
280
- - Promo cards keep their `#ebf0ff` surface and indigo accent on mobile
258
+ No viewport comparison is present in the supplied evidence bundle. The reference therefore preserves no breakpoint, mobile-navigation, touch-target, or image-behaviour rule. A responsive claim requires a later capture that records the relevant viewport and component provenance.
281
259
 
282
260
  ## 9. Agent Prompt Guide
283
261
 
284
- ### Quick Color Reference
285
- - Primary CTA: Shinhan Blue (`#005df9`)
286
- - Background: Pure White (`#ffffff`)
287
- - Card surface: Off-white (`#f8f9fc`)
288
- - Promo surface: Surface Indigo (`#ebf0ff`)
289
- - Heading text: Ink (`#101828`)
290
- - Body text: Body (`#475467`)
291
- - Muted text: Muted (`#667085`)
292
- - Border: Hairline (`#e4e7ec`)
293
- - Link: Shinhan Blue (`#005df9`)
294
- - Accent: Indigo (`#6268ff`)
295
- - Error: Danger (`#f44f4f`)
296
-
297
- ### Example Component Prompts
298
- - "Create a hero on white. Headline at 32px Digital One Shinhan weight 900, line-height 1.20, letter-spacing -0.64px, color #101828. Subtitle 16px weight 500, color #475467. Primary blue CTA (#005df9 bg, #ffffff text, 16px radius, 2px 12px padding) and tertiary button (#f0f4fa bg, #101828 text, 12px radius)."
299
- - "Design a product card: #f8f9fc background, 16px radius, 24px padding, 1px hairline ring #e4e7ec, no drop shadow. Title 21px weight 700 #101828, body 14px weight 400 #475467."
300
- - "Build a danger badge: #fff6f5 background, #f44f4f text, 8px radius, 2px 8px padding, 12px weight 400."
301
- - "Create tabs: inactive #667085 14px labels, active #101828 with 2px bottom border #005df9. Sticky white header with hairline #e4e7ec divider."
302
- - "Design an input: white background, 1px solid #d0d5dd border, 8px radius, 16px weight 500 #101828 text, #818da2 placeholder, focus border #005df9."
303
-
304
- ### Iteration Guide
305
- 1. Blue (`#005df9`) is the only primary-action color — never add a second
306
- 2. Weight escalation (400 / 700 / 900) builds hierarchy before size
307
- 3. Separate surfaces with hairline rings + tinted stacking, never heavy shadows
308
- 4. Heading color is `#101828`, body `#475467`, muted `#667085`
309
- 5. Radius family: 8px inputs, 12px buttons/rows, 16px cards, 9999px toggles
310
- 6. Apply -0.28px tracking on body, -0.64px on display
311
- 7. Indigo (`#6268ff`) and `#ebf0ff` are promotional only — not standard CTAs
312
-
313
- ---
262
+ Use this reference as a constrained public-product-web sample, not a complete Shinhan Card application kit. A faithful observed action is `#005df9` background, `#101828` text, 16px radius, 2px 12px padding, and 14px/400 `Digital One Shinhan`; a toned detail-page action is `#f0f4fa`, `#101828`, 20px radius, and 8px 12px padding. For product-detail tiles, use `#f8f9fc`, 16px radius, and 20px padding only in that detail-page context. Do not invent a primary-button contrast color or interaction state.
314
263
 
315
264
  ## 10. Voice & Tone
316
265
 
317
- Shinhan Card's voice is that of a trusted, polished Korean financial partner reassuring, clear, and service-oriented, without the stiffness of a legacy bank. Korean copy favors polite, customer-respecting registers and concrete benefit framing ("목돈이 필요할 때", "카드값이 부담될 때") that meets the user at a moment of need. Labels are plain and functional ("로그인", "마이페이지", "이용대금명세서"), prioritizing comprehension over cleverness. The tone is calm and competent: a major card issuer that wants the digital experience to feel as dependable as its physical card.
266
+ Shinhan Cards official business description uses a practical service register: card, instalment-finance, loan, lease, platform, and data services are named plainly, and SOL Pay is described as connecting financial life and everyday life. The public product surfaces therefore support a clear, task-oriented tone rather than speculative lifestyle copy. The 2023 SOL Pay announcement says the rebrand was intended to make the group’s digital brands easier for customers to understand and use; that supports clarity and familiarity as editorial goals, not a complete public copywriting standard.
318
267
 
319
- | Context | Tone |
320
- |---|---|
321
- | Hero / promo headlines | Benefit-first, situational. Speaks to a user's moment of need. |
322
- | Product descriptions | Concrete and plain. Names the product and the situation it solves. |
323
- | CTAs | Functional imperatives. "로그인", "다운로드", "신청하기". |
324
- | Form / error messages | Polite, specific, guiding. Explains what to fix. |
325
- | Navigation / menu | Noun-based, scannable. Mirrors banking task vocabulary. |
326
- | Legal / disclosure | Formal, regulatory-grade Korean. |
327
- | Customer center | Warm, accessible. Phone numbers surfaced prominently. |
268
+ ### Do
328
269
 
329
- **Forbidden phrases.** Hype superlatives ("혁신적인", "최고의" without basis), exclamation-heavy marketing, emoji on transactional surfaces, and vague benefit claims without a concrete product. The register stays trustworthy and service-grade.
270
+ - Name the card or financial task directly.
271
+ - Use short, respectful Korean labels that help a customer move through a known task.
272
+ - Keep SOL Pay references tied to their stated payment and daily-finance role.
330
273
 
331
- ## 11. Brand Narrative
274
+ ### Don't
332
275
 
333
- Shinhan Card is one of Korea's largest credit-card and consumer-finance companies, part of the Shinhan Financial Group, one of the country's leading financial conglomerates. As a major issuer, its remit spans credit and check cards, card loans (장기/단기카드대출), installment finance, and an expanding digital-payments footprint anchored by the SOL Pay app. The website positions Shinhan Card not merely as a card portal but as a financial-services super-app gateway — surfacing loans, statements, payments, and account management from a single, modernized hub.
276
+ - Don't invent a brand slogan, executive quote, or promotional tone rule from component styling.
277
+ - Don't turn regulatory, eligibility, or lending copy into casual lifestyle claims.
334
278
 
335
- The design reflects a deliberate modernization of the institutional banking experience. Rather than the dense navy chrome and corporate imagery typical of legacy financial portals, Shinhan Card adopts a light, rounded, fintech-adjacent aesthetic: white canvases, tinted surface layering, a single confident blue, and the proprietary `Digital One Shinhan` typeface that ties every touchpoint — web, app, card, and signage — to one coherent brand voice. This is a company signalling that it takes both trust and modern usability seriously.
279
+ ## 11. Brand Narrative
280
+
281
+ Shinhan Card describes itself as a specialist finance company handling credit cards and instalment finance, with card loans and auto lease among its stated businesses. Its official business page places those services alongside a platform-and-data business that uses the digital Shinhan SOL Pay platform to connect customers’ financial lives and daily lives. It also situates the company’s current identity after the 2007 integration with LG Card.
336
282
 
337
- What Shinhan Card embraces: clarity over decoration, a single anchoring brand blue, paper-layered depth that reads as document-grade precision, and benefit-first copy that meets users at moments of financial need. What it avoids: heavy shadows, cluttered legacy chrome, and hype-driven marketing that would undercut a financial institution's credibility.
283
+ The recent public evolution relevant to this reference is the SOL Pay naming transition. In its November 2023 announcement, Shinhan Card said the former life-finance platform Shinhan pLay had been renamed under the group’s Shinhan SOL digital brand while strengthening the card company’s payment identity. The captured web system belongs to public card and product-detail surfaces in that larger context; it is not evidence about the complete logged-in SOL Pay experience.
338
284
 
339
285
  ## 12. Principles
340
286
 
341
- 1. **Trust through clarity.** Every surface prioritizes legibility and scannability appropriate for a product where users read balances, statements, and terms. Decoration never competes with comprehension.
342
- 2. **One anchoring blue.** `#005df9` carries all primary intent. A single, confident interactive color keeps the system disciplined and the brand instantly recognizable.
343
- 3. **Weight, not noise.** Hierarchy is built through weight escalation (400 700 900), letting the neutral palette stay calm while importance is still unmistakable.
344
- 4. **Paper, not blur.** Elevation is hairline rings and tinted stacking, not drop shadows. The interface should feel like a crisp, well-organized document.
345
- 5. **One typeface, one voice.** `Digital One Shinhan` across every level unifies web, app, and physical brand into a single identity.
346
- 6. **Meet the moment of need.** Copy is benefit-first and situational, addressing the user's financial context directly rather than abstractly.
347
- 7. **Modern, but dependable.** Rounded geometry and airy spacing modernize the experience without sacrificing the steadiness a major financial institution must project.
287
+ 1. **Connect card services to daily finance.** Shinhan Card explicitly frames SOL Pay as linking financial life and daily life. *UI implication:* keep public product paths understandable as card, payment, and finance tasks rather than generic platform navigation.
288
+ 2. **Make the group digital brand easier to understand.** The SOL Pay announcement identifies intuitive understanding and easier use as the goal of the brand transition. *UI implication:* prefer direct labels and avoid using visual novelty as a replacement for task clarity.
289
+ 3. **Preserve evidence domains.** Public web product pages, corporate/company material, and a potentially signed-in app answer different questions. *UI implication:* reuse a captured public component only with its URL and state boundary; do not infer hidden product patterns.
348
290
 
349
291
  ## 13. Personas
350
292
 
351
- *Personas below are fictional archetypes informed by publicly observable Shinhan Card user segments (everyday cardholders, loan/credit users, mobile-payment adopters, and SMB owners), not individual people.*
352
-
353
- **Ji-woo Park, 29, Seoul.** Office worker who manages nearly everything through the SOL Pay app. Checks her statement weekly and values being able to see her 이용대금명세서 and reward points at a glance. Trusts Shinhan Card because the digital experience feels as reliable as the physical card, and the clean layout makes scanning transactions effortless.
293
+ ### Evidence-backed service audiences (not fictional personas)
354
294
 
355
- **Min-seok Kang, 41, Incheon.** Needs a short-term card loan to cover a cash-flow gap (단기카드대출). Appreciates that the site surfaces loan options with plain, situational labels ("소액 현금이 필요할 때") rather than burying them in jargon. Wants clear terms and a frictionless application — and distrusts financial sites that feel cluttered or pushy.
295
+ - **Individual, corporate, and public-organization card users.** The official business page describes credit-card payment services for these groups. No individual behaviour, name, or demographic is asserted.
296
+ - **Customers considering card-finance products.** The official page describes short-term and long-term card loans and instalment finance. This supports a service audience only, not a persona journey.
297
+ - **SOL Pay users.** Shinhan Card describes SOL Pay as its digital platform for connecting finance and daily life. The supplied web capture does not expose a signed-in user flow or user-research segment.
356
298
 
357
- **Hye-jin Lim, 35, Busan.** Small-business owner exploring 개인사업자대출 and installment options. Works daily across statements and payment schedules. Values the dense, scannable list rows and the consistency between the web portal and the app. Would be frustrated by any redesign that added decoration at the expense of data density.
358
-
359
- **Seung-ho Yoon, 52, Daegu.** Long-time cardholder who primarily uses the web portal and customer center. Relies on the prominently displayed 고객센터 number and the formal, regulatory-grade disclosure copy to feel confident. Trusts the modernized look precisely because it still reads as a serious financial institution, not a flashy startup.
299
+ Specific personas, motivations, and quotes remain **[FILL IN]** until supported by first-party research or user-provided material.
360
300
 
361
301
  ## 14. States
362
302
 
363
- | State | Treatment |
303
+ | Observed state | Evidence boundary |
364
304
  |---|---|
365
- | **Empty (no transactions)** | White canvas. Single line in Muted (`#667085`) at 14px explaining no activity yet. One Shinhan Blue CTA. No illustration clutter. |
366
- | **Empty (no results)** | Muted (`#667085`) single line. Filter/search summary stays visible so the user can adjust. |
367
- | **Loading** | Skeleton blocks in Border (`#e4e7ec`) at final dimensions, paper-flat with subtle shimmer. No spinner overlays on content. |
368
- | **Error (form validation)** | Field-level. Danger (`#f44f4f`) text + `#fff6f5` tinted background. Message names what is invalid and how to fix it. |
369
- | **Error (request failed)** | Inline banner in Danger tone. Plain-Korean explanation plus a retry or customer-center path. No generic "오류가 발생했습니다" alone. |
370
- | **Success (action saved)** | Brief inline confirmation in Ink (`#101828`); blue accent on the affected row. Calm, no exclamation, no emoji. |
371
- | **Disabled** | Surface and text fade together; primary blue becomes a muted tint rather than switching to gray, preserving brand read. |
372
- | **Focus** | `#005df9` ring/border on inputs and interactive elements for clear keyboard navigation. |
373
- | **Active tab** | `#101828` label with 2px `#005df9` bottom border. |
305
+ | Expanded navigation menu | Captured after a menu interaction on all three product surfaces; white surface, 1px `#e4e7ec` border, 12px radius, and `rgba(12,17,29,0.1) 0px 4px 16px 0px` shadow. |
306
+ | Hover, focus, disabled, error, loading, empty, success, toast, dialog, and form validation | Not established by the supplied bundle; intentionally omitted rather than synthesized. |
374
307
 
375
308
  ## 15. Motion & Easing
376
309
 
377
- **Durations**:
378
-
379
- | Token | Value | Use |
380
- |---|---|---|
381
- | `motion-instant` | 0ms | State commits, selection, focus rings |
382
- | `motion-fast` | 150ms | Hover, button press, tab switch |
383
- | `motion-standard` | 250ms | Drawer, modal, dropdown, accordion |
384
- | `motion-slow` | 350ms | Page-level transitions, hero reveals |
385
-
386
- **Easings**:
387
-
388
- | Token | Curve | Use |
389
- |---|---|---|
390
- | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — sheets, drawers, dropdowns |
391
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
392
- | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
393
-
394
- **Explicitly forbidden.** No bounce, no overshoot, no playful spring on transactional surfaces. A financial institution's motion is steady and predictable; motion exists to clarify continuity (which panel opened, which tab is active), never to delight at the cost of trust.
395
-
396
- **Signature motions.**
397
-
398
- 1. **Tab indicator slide.** The `#005df9` 2px bottom border slides between tabs using `motion-fast / ease-standard`, signalling the active section without abrupt jumps.
399
- 2. **Drawer / GNB reveal.** Mobile navigation slides in with `motion-standard / ease-enter`; surfaces fade their hairline rings into place rather than dropping shadows.
400
- 3. **Surface tint transition.** Section bands crossfade their tinted backgrounds (`#f8f9fc` ↔ `#ebf0ff`) on scroll-into-view with `motion-slow`, keeping the paper-layered feel calm.
401
- 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Tabs and drawers commit immediately; the portal stays fully functional.
402
-
403
- ## 16. Do's and Don'ts
404
-
405
- ### Do
406
- - Anchor every primary action and link in Shinhan Blue (`#005df9`)
407
- - Build hierarchy with weight (400 / 700 / 900) before reaching for size
408
- - Use hairline `#e4e7ec` rings and tinted surface stacking for separation
409
- - Keep `Digital One Shinhan` across all levels for a unified brand voice
410
- - Hold radii in the 8 / 12 / 16px family; reserve 9999px for toggles
411
- - Write benefit-first, situational Korean copy that meets the user's need
412
- - Use Ink (`#101828`) for headings, never pure black
413
-
414
- ### Don't
415
- - Don't add a second primary CTA color alongside the blue
416
- - Don't apply heavy blurred drop shadows — hairlines and inset lines are the depth language
417
- - Don't use the indigo (`#6268ff`) accent for standard primary CTAs
418
- - Don't crowd cards — preserve the airy 24px padding
419
- - Don't use fully-rounded pill shapes on cards or content tiles
420
- - Don't lean on hype superlatives or emoji on transactional surfaces
421
- - Don't apply positive letter-spacing to dense Korean body text
310
+ No motion duration, easing curve, or reduced-motion treatment was captured. The menu’s open state proves that a menu can expand; it does not prove a transition recipe. Motion tokens and animation guidance are therefore **[FILL IN]** pending a capture that records timing and behaviour.