oh-my-design-cli 1.8.6 → 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 (275) 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 +2761 -85
  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/airbridge/DESIGN.md +451 -0
  71. package/web/references/alipay/DESIGN.md +179 -420
  72. package/web/references/apple/DESIGN.md +224 -498
  73. package/web/references/asleep/DESIGN.md +402 -0
  74. package/web/references/au/DESIGN.md +334 -0
  75. package/web/references/autopedia/DESIGN.md +382 -0
  76. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  77. package/web/references/baemin/DESIGN.md +332 -491
  78. package/web/references/banksalad/DESIGN.md +269 -180
  79. package/web/references/barogo/DESIGN.md +416 -0
  80. package/web/references/beusable/DESIGN.md +464 -0
  81. package/web/references/bigin/DESIGN.md +454 -0
  82. package/web/references/bilibili/DESIGN.md +206 -374
  83. package/web/references/bmw/DESIGN.md +162 -276
  84. package/web/references/brandi/DESIGN.md +184 -325
  85. package/web/references/buzzvil/DESIGN.md +457 -0
  86. package/web/references/cafe24/DESIGN.md +472 -0
  87. package/web/references/catchtable/DESIGN.md +219 -264
  88. package/web/references/cgv/DESIGN.md +317 -0
  89. package/web/references/channeltalk/DESIGN.md +210 -336
  90. package/web/references/china-airlines/DESIGN.md +291 -0
  91. package/web/references/cjonstyle/DESIGN.md +453 -0
  92. package/web/references/class101/DESIGN.md +168 -387
  93. package/web/references/classum/DESIGN.md +228 -203
  94. package/web/references/claude/DESIGN.md +242 -479
  95. package/web/references/clay/DESIGN.md +179 -377
  96. package/web/references/clickhouse/DESIGN.md +254 -343
  97. package/web/references/codeit/DESIGN.md +470 -0
  98. package/web/references/cohere/DESIGN.md +214 -324
  99. package/web/references/coinone/DESIGN.md +199 -179
  100. package/web/references/corca/DESIGN.md +414 -0
  101. package/web/references/coupang/DESIGN.md +205 -475
  102. package/web/references/cursor/DESIGN.md +240 -381
  103. package/web/references/dabang/DESIGN.md +248 -213
  104. package/web/references/dable/DESIGN.md +431 -0
  105. package/web/references/datarize/DESIGN.md +338 -0
  106. package/web/references/dealicious/DESIGN.md +402 -0
  107. package/web/references/drdiary/DESIGN.md +404 -0
  108. package/web/references/elastic/DESIGN.md +238 -0
  109. package/web/references/elevenlabs/DESIGN.md +183 -321
  110. package/web/references/elice/DESIGN.md +445 -0
  111. package/web/references/eslite/DESIGN.md +257 -0
  112. package/web/references/evaair/DESIGN.md +338 -0
  113. package/web/references/expo/DESIGN.md +238 -331
  114. package/web/references/familymart-tw/DESIGN.md +254 -0
  115. package/web/references/ferrari/DESIGN.md +160 -377
  116. package/web/references/figma/DESIGN.md +197 -451
  117. package/web/references/fitpet/DESIGN.md +445 -0
  118. package/web/references/flex/DESIGN.md +170 -253
  119. package/web/references/framer/DESIGN.md +197 -340
  120. package/web/references/freee/DESIGN.md +211 -533
  121. package/web/references/friendliai/DESIGN.md +431 -0
  122. package/web/references/frip/DESIGN.md +440 -0
  123. package/web/references/furiosaai/DESIGN.md +450 -0
  124. package/web/references/gangnamunni/DESIGN.md +154 -591
  125. package/web/references/gaudiolab/DESIGN.md +414 -0
  126. package/web/references/google/DESIGN.md +290 -398
  127. package/web/references/goorm/DESIGN.md +470 -0
  128. package/web/references/greencar/DESIGN.md +420 -0
  129. package/web/references/hackle/DESIGN.md +472 -0
  130. package/web/references/hashicorp/DESIGN.md +273 -318
  131. package/web/references/heydealer/DESIGN.md +429 -0
  132. package/web/references/humanscape/DESIGN.md +433 -0
  133. package/web/references/hwahae/DESIGN.md +453 -0
  134. package/web/references/hyundai/DESIGN.md +158 -368
  135. package/web/references/hyundaicard/DESIGN.md +171 -121
  136. package/web/references/ibm/DESIGN.md +227 -378
  137. package/web/references/idus/DESIGN.md +450 -0
  138. package/web/references/igaworks/DESIGN.md +437 -0
  139. package/web/references/inflearn/DESIGN.md +221 -366
  140. package/web/references/intuit/DESIGN.md +244 -0
  141. package/web/references/jandi/DESIGN.md +191 -291
  142. package/web/references/jobplanet/DESIGN.md +415 -0
  143. package/web/references/kakao/DESIGN.md +287 -475
  144. package/web/references/kakaobank/DESIGN.md +220 -521
  145. package/web/references/kakaogames/DESIGN.md +220 -0
  146. package/web/references/kakaopay/DESIGN.md +207 -526
  147. package/web/references/karrot/DESIGN.md +227 -251
  148. package/web/references/kb-kookmin/DESIGN.md +308 -0
  149. package/web/references/kbank/DESIGN.md +220 -175
  150. package/web/references/kcd/DESIGN.md +432 -0
  151. package/web/references/kmong/DESIGN.md +281 -356
  152. package/web/references/krds/DESIGN.md +245 -19
  153. package/web/references/kream/DESIGN.md +224 -359
  154. package/web/references/kurly/DESIGN.md +211 -533
  155. package/web/references/kyobobook/DESIGN.md +445 -0
  156. package/web/references/lablup/DESIGN.md +474 -0
  157. package/web/references/lamborghini/DESIGN.md +198 -360
  158. package/web/references/lemonbase/DESIGN.md +452 -0
  159. package/web/references/lguplus/DESIGN.md +259 -0
  160. package/web/references/likelion/DESIGN.md +283 -0
  161. package/web/references/line/DESIGN.md +396 -355
  162. package/web/references/linear.app/DESIGN.md +209 -562
  163. package/web/references/lotteon/DESIGN.md +386 -0
  164. package/web/references/lovable/DESIGN.md +255 -349
  165. package/web/references/makinarocks/DESIGN.md +242 -0
  166. package/web/references/maum-ai/DESIGN.md +423 -0
  167. package/web/references/medibloc/DESIGN.md +425 -0
  168. package/web/references/megabox/DESIGN.md +232 -0
  169. package/web/references/mercari/DESIGN.md +217 -434
  170. package/web/references/microsoft/DESIGN.md +234 -388
  171. package/web/references/mildang/DESIGN.md +411 -0
  172. package/web/references/millie/DESIGN.md +183 -504
  173. package/web/references/minimax/DESIGN.md +264 -322
  174. package/web/references/miricanvas/DESIGN.md +182 -355
  175. package/web/references/miro/DESIGN.md +234 -232
  176. package/web/references/mistral.ai/DESIGN.md +231 -314
  177. package/web/references/mixi/DESIGN.md +234 -0
  178. package/web/references/moin/DESIGN.md +445 -0
  179. package/web/references/mongodb/DESIGN.md +219 -316
  180. package/web/references/moreh/DESIGN.md +437 -0
  181. package/web/references/musinsa/DESIGN.md +184 -510
  182. package/web/references/mynavi/DESIGN.md +242 -0
  183. package/web/references/myrealtrip/DESIGN.md +169 -406
  184. package/web/references/naver/DESIGN.md +328 -499
  185. package/web/references/naverwebtoon/DESIGN.md +172 -395
  186. package/web/references/neosapience/DESIGN.md +441 -0
  187. package/web/references/nhn/DESIGN.md +169 -346
  188. package/web/references/nhncloud/DESIGN.md +185 -123
  189. package/web/references/nota/DESIGN.md +451 -0
  190. package/web/references/notion/DESIGN.md +271 -475
  191. package/web/references/nrise/DESIGN.md +417 -0
  192. package/web/references/ohouse/DESIGN.md +210 -549
  193. package/web/references/oliveyoung/DESIGN.md +217 -326
  194. package/web/references/ollama/DESIGN.md +241 -308
  195. package/web/references/onestore/DESIGN.md +248 -0
  196. package/web/references/palantir/DESIGN.md +256 -0
  197. package/web/references/panasonic/DESIGN.md +276 -0
  198. package/web/references/patternfly/DESIGN.md +259 -0
  199. package/web/references/payhere/DESIGN.md +438 -0
  200. package/web/references/pega/DESIGN.md +262 -0
  201. package/web/references/peoplefund/DESIGN.md +431 -0
  202. package/web/references/petfriends/DESIGN.md +428 -0
  203. package/web/references/pinkfong/DESIGN.md +199 -367
  204. package/web/references/pinterest/DESIGN.md +258 -308
  205. package/web/references/portone/DESIGN.md +446 -0
  206. package/web/references/poya/DESIGN.md +286 -0
  207. package/web/references/pozalabs/DESIGN.md +438 -0
  208. package/web/references/protopie/DESIGN.md +419 -0
  209. package/web/references/qraft/DESIGN.md +448 -0
  210. package/web/references/queenit/DESIGN.md +432 -0
  211. package/web/references/quotabook/DESIGN.md +449 -0
  212. package/web/references/rebellions/DESIGN.md +449 -0
  213. package/web/references/recruit/DESIGN.md +247 -0
  214. package/web/references/remember/DESIGN.md +202 -396
  215. package/web/references/resend/DESIGN.md +274 -348
  216. package/web/references/returnzero/DESIGN.md +460 -0
  217. package/web/references/sakura-internet/DESIGN.md +269 -0
  218. package/web/references/samsung/DESIGN.md +157 -359
  219. package/web/references/sandoll/DESIGN.md +445 -0
  220. package/web/references/sanity/DESIGN.md +241 -375
  221. package/web/references/saramin/DESIGN.md +465 -0
  222. package/web/references/scatterlab/DESIGN.md +412 -0
  223. package/web/references/selectstar/DESIGN.md +439 -0
  224. package/web/references/servicenow/DESIGN.md +289 -0
  225. package/web/references/shiftee/DESIGN.md +468 -0
  226. package/web/references/shinhanbank/DESIGN.md +161 -341
  227. package/web/references/shinhancard/DESIGN.md +208 -319
  228. package/web/references/sionic/DESIGN.md +454 -0
  229. package/web/references/sktelecom/DESIGN.md +310 -0
  230. package/web/references/socar/DESIGN.md +125 -32
  231. package/web/references/softbank/DESIGN.md +231 -0
  232. package/web/references/solapi/DESIGN.md +483 -0
  233. package/web/references/sony/DESIGN.md +234 -0
  234. package/web/references/soop/DESIGN.md +261 -0
  235. package/web/references/spacex/DESIGN.md +184 -323
  236. package/web/references/spotify/DESIGN.md +253 -394
  237. package/web/references/squeezebits/DESIGN.md +441 -0
  238. package/web/references/stayfolio/DESIGN.md +422 -0
  239. package/web/references/stripe/DESIGN.md +212 -491
  240. package/web/references/supabase/DESIGN.md +244 -316
  241. package/web/references/supertone/DESIGN.md +413 -0
  242. package/web/references/tabling/DESIGN.md +415 -0
  243. package/web/references/taishinbank/DESIGN.md +243 -0
  244. package/web/references/teamlab/DESIGN.md +240 -0
  245. package/web/references/teamsparta/DESIGN.md +472 -0
  246. package/web/references/tellingme/DESIGN.md +392 -0
  247. package/web/references/tesla/DESIGN.md +244 -427
  248. package/web/references/thsr/DESIGN.md +284 -0
  249. package/web/references/thumbtack/DESIGN.md +302 -0
  250. package/web/references/together.ai/DESIGN.md +257 -304
  251. package/web/references/toss/DESIGN.md +251 -593
  252. package/web/references/toss-securities/DESIGN.md +255 -178
  253. package/web/references/tossbank/DESIGN.md +195 -491
  254. package/web/references/toyota/DESIGN.md +238 -0
  255. package/web/references/tving/DESIGN.md +197 -245
  256. package/web/references/typed/DESIGN.md +413 -0
  257. package/web/references/uber/DESIGN.md +256 -333
  258. package/web/references/udn/DESIGN.md +250 -0
  259. package/web/references/upbit/DESIGN.md +145 -256
  260. package/web/references/upstage/DESIGN.md +211 -204
  261. package/web/references/uswds/DESIGN.md +287 -0
  262. package/web/references/vercel/DESIGN.md +236 -440
  263. package/web/references/vuno/DESIGN.md +413 -0
  264. package/web/references/wanted/DESIGN.md +215 -487
  265. package/web/references/weverse/DESIGN.md +437 -0
  266. package/web/references/wise/DESIGN.md +223 -231
  267. package/web/references/wisetracker/DESIGN.md +462 -0
  268. package/web/references/wooribank/DESIGN.md +245 -0
  269. package/web/references/yanolja/DESIGN.md +250 -419
  270. package/web/references/yeogiotte/DESIGN.md +235 -418
  271. package/web/references/zapier/DESIGN.md +256 -377
  272. package/web/references/zendesk/DESIGN.md +288 -0
  273. package/web/references/zigzag/DESIGN.md +200 -621
  274. package/dist/install-skills-7UUDOLG2.js +0 -734
  275. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -9,239 +9,316 @@ primary_color: "#3182f6"
9
9
  logo:
10
10
  type: favicon
11
11
  slug: "https://www.google.com/s2/favicons?domain=tossinvest.com&sz=256"
12
- verified: "2026-05-15"
12
+ verified: "2026-07-13"
13
13
  omd: "0.1"
14
+ verification_v2:
15
+ schema: 2
16
+ checked: "2026-07-13"
17
+ surfaces:
18
+ - { id: public-wts, kind: public-web-trading, url: "https://www.tossinvest.com/?focusedProductCode=A000660", inspected: "2026-07-13" }
19
+ - { id: corporate-info, kind: corporate-marketing, url: "https://home.tossinvest.com/en/corporate-info", inspected: "2026-07-13" }
20
+ - { id: investment-marketing, kind: product-marketing, url: "https://home.tossinvest.com/en/investment-products", inspected: "2026-07-13" }
21
+ sources:
22
+ - { id: wts-live, kind: product-surface, url: "https://www.tossinvest.com/?focusedProductCode=A000660", captured: "2026-07-13" }
23
+ - { id: corporate-live, kind: official-doc, url: "https://home.tossinvest.com/en/corporate-info", captured: "2026-07-13" }
24
+ - { id: investment-live, kind: official-doc, url: "https://home.tossinvest.com/en/investment-products", captured: "2026-07-13" }
25
+ - { id: tps-design, kind: brand-asset, url: "https://toss.im/simplicity-21/sessions/3-3", captured: "2026-07-13" }
26
+ - { id: tossface-repo, kind: brand-asset, url: "https://github.com/toss/tossface", captured: "2026-07-13" }
27
+ conflicts: []
28
+ claims:
29
+ "tokens.colors.primary": &wts { surface_id: public-wts, source_id: wts-live, method: computed-style, captured: "2026-07-13" }
30
+ "tokens.colors.canvas": *wts
31
+ "tokens.colors.foreground": *wts
32
+ "tokens.colors.body": *wts
33
+ "tokens.colors.on-primary": *wts
34
+ "tokens.colors.dialog-canvas": *wts
35
+ "tokens.typography.family.sans": &font { surface_id: public-wts, source_id: wts-live, method: computed-style-and-fontfaceset-source, captured: "2026-07-13" }
36
+ "tokens.typography.compact.size": *wts
37
+ "tokens.typography.compact.weight": *wts
38
+ "tokens.typography.compact.lineHeight": *wts
39
+ "tokens.typography.compact.use": *wts
40
+ "tokens.typography.body.size": *wts
41
+ "tokens.typography.body.weight": *wts
42
+ "tokens.typography.body.lineHeight": *wts
43
+ "tokens.typography.body.use": *wts
44
+ "tokens.typography.marketing-heading.size": &marketing { surface_id: investment-marketing, source_id: investment-live, method: computed-style, captured: "2026-07-13" }
45
+ "tokens.typography.marketing-heading.weight": *marketing
46
+ "tokens.typography.marketing-heading.lineHeight": *marketing
47
+ "tokens.typography.marketing-heading.use": *marketing
48
+ "tokens.spacing.xs": *wts
49
+ "tokens.spacing.sm": *wts
50
+ "tokens.spacing.md": *wts
51
+ "tokens.spacing.lg": *marketing
52
+ "tokens.spacing.xl": *wts
53
+ "tokens.rounded.compact-control": *wts
54
+ "tokens.rounded.primary": *wts
55
+ "tokens.rounded.menu": *wts
56
+ "tokens.rounded.dialog": *wts
57
+ "tokens.rounded.marketing-pill": *marketing
58
+ "tokens.shadow.menu": *wts
59
+ "tokens.shadow.dialog": *wts
60
+ "tokens.components.wts-primary-entry.type": *wts
61
+ "tokens.components.wts-primary-entry.bg": *wts
62
+ "tokens.components.wts-primary-entry.fg": *wts
63
+ "tokens.components.wts-primary-entry.radius": *wts
64
+ "tokens.components.wts-primary-entry.padding": *wts
65
+ "tokens.components.wts-primary-entry.height": *wts
66
+ "tokens.components.wts-primary-entry.font": *wts
67
+ "tokens.components.wts-primary-entry.states": *wts
68
+ "tokens.components.wts-primary-entry.use": *wts
69
+ "tokens.components.investment-primary.type": *marketing
70
+ "tokens.components.investment-primary.bg": *marketing
71
+ "tokens.components.investment-primary.fg": *marketing
72
+ "tokens.components.investment-primary.radius": *marketing
73
+ "tokens.components.investment-primary.padding": *marketing
74
+ "tokens.components.investment-primary.height": *marketing
75
+ "tokens.components.investment-primary.font": *marketing
76
+ "tokens.components.investment-primary.states": *marketing
77
+ "tokens.components.investment-primary.use": *marketing
78
+ "tokens.components.wts-selection-dialog.type": *wts
79
+ "tokens.components.wts-selection-dialog.bg": *wts
80
+ "tokens.components.wts-selection-dialog.fg": *wts
81
+ "tokens.components.wts-selection-dialog.radius": *wts
82
+ "tokens.components.wts-selection-dialog.size": *wts
83
+ "tokens.components.wts-selection-dialog.font": *wts
84
+ "tokens.components.wts-selection-dialog.states": *wts
85
+ "tokens.components.wts-selection-dialog.use": *wts
14
86
  tokens:
15
- source: prose-derived
16
- extracted: "2026-06-09"
87
+ source: reconciled
88
+ extracted: "2026-07-13"
89
+ note: "Only the supplied public WTS and corporate/marketing capture is canonical here. Authenticated or native trading UI, documentation chrome, and declared-only fonts are separate or unresolved evidence domains."
17
90
  colors:
18
91
  primary: "#3182f6"
19
- primary-hover: "#2562b9"
20
- primary-pressed: "#29518e"
21
- brand-text: "#4391ff"
22
- positive: "#dc2e47"
23
- positive-hover: "#ad2136"
24
- positive-pressed: "#8d222f"
25
- positive-text: "#f5445a"
26
- negative: "#3182f6"
27
- negative-text: "#4391ff"
28
- canvas: "#101013"
29
- overlay: "#202025"
92
+ canvas: "#ffffff"
93
+ foreground: "#1a1f29"
94
+ body: "#4e5968"
30
95
  on-primary: "#ffffff"
96
+ dialog-canvas: "#fbfcfd"
31
97
  typography:
32
- family: { sans: "Toss Product Sans", mono: "Toss Product Sans" }
33
- section-h2: { size: 24, weight: 700, use: "Section headers" }
34
- sub-h3: { size: 19, weight: 700, use: "Sub-section headers" }
35
- nav: { size: 15, weight: 500, use: "Global nav links" }
36
- body: { size: 16, weight: 400, use: "Body and button text" }
37
- input: { size: 15, weight: 400, use: "Form field text" }
38
- memo-chip: { size: 12, weight: 600, use: "Contextual pill action" }
39
- on-cta: { size: 16, weight: 400, use: "White on tinted-fill button" }
40
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48 }
41
- rounded: { sm: 4, md: 8, lg: 16, full: 9999 }
98
+ family: { sans: "Toss Product Sans" }
99
+ compact: { size: 13, weight: 600, lineHeight: "20px", use: "Public WTS compact menu-trigger text" }
100
+ body: { size: 16, weight: 400, lineHeight: "23.2px", use: "Public WTS body, tab, menu, and dialog copy" }
101
+ marketing-heading: { size: 18, weight: 700, lineHeight: "28.8px", use: "Investment-product marketing H1" }
102
+ spacing: { xs: 4, sm: 8, md: 12, lg: 14, xl: 16 }
103
+ rounded: { compact-control: 7, primary: 8, menu: 12, dialog: 16, marketing-pill: 100 }
42
104
  shadow:
43
- none: "none"
105
+ menu: "0 16px 24px -2px rgba(0,0,0,0.06), 0 8px 56px rgba(0,0,0,0.1)"
106
+ dialog: "0 12px 28px -4px rgba(0,0,0,0.12), 0 8px 56px -4px rgba(0,0,0,0.1)"
44
107
  components_harvested: true
45
108
  components:
46
- button-brand: { type: button, bg: "#3182f6", fg: "#ffffff", use: "Primary CTA brand fill" }
47
- badge-positive: { type: badge, fg: "#f5445a", font: "12/600", use: "Up-tick / 매수 indicator (KR red-up)" }
48
- badge-negative: { type: badge, fg: "#4391ff", font: "12/600", use: "Down-tick / 매도 indicator (KR blue-down)" }
49
- input-field: { type: input, font: "15/400", use: "Form field on dark surface" }
109
+ wts-primary-entry: { type: button, bg: "#3182f6", fg: "#ffffff", radius: "8px", padding: "6px 12px", height: "32px", font: "14px / 600 / 16px", states: "default, focus, and pressed observed; colors and geometry remained the same in the retained samples", use: "Public WTS compact primary link-action" }
110
+ investment-primary: { type: button, bg: "#3182f6", fg: "#ffffff", radius: "100px", padding: "11px 14px", height: "40px", font: "15px / 600 / 18px", states: "default, focus, hover, and pressed observed; no distinct color change retained", use: "Investment-products marketing primary action" }
111
+ wts-selection-dialog: { type: dialog, bg: "#fbfcfd", fg: "#4e5968", radius: "16px", size: "640px x 600px", font: "16px / 400 / 23.2px", states: "dialog-open observed", use: "Public WTS selection dialog container" }
50
112
  ---
51
113
 
52
114
  # Design System Inspiration of Toss Securities (토스증권)
53
115
 
54
116
  ## 1. Visual Theme & Atmosphere
55
117
 
56
- Toss Securities is the brokerage arm inside Korea's fintech super-app, and it inherits its parent's typographic and chromatic DNA while pulling the entire surface into a deep, calm dark mode by default. The page opens not on white but on a near-black canvas page background `rgb(23, 23, 28)` over a deeper surface token `#101013` where money information feels less like banking-product chrome and more like an instrument panel: legible, quiet, technically dense, and resolutely free of decoration. Where retail-banking Toss optimises for "anyone can use this," Toss Securities optimises for "someone watching a chart wants this exact answer right now," and the visual system reflects that pivot without changing brand vocabulary.
118
+ Toss Securities positions itself as an investment platform for both beginners and experienced investors: the company says its mission is to empower everyone with investing, combining access to global markets, investment information, social participation, and expanding channels such as WTS. Its public web language turns that broad promise into a familiar Toss hierarchywhite canvas, dense dark-neutral reading text, a precise blue action color, and a single Korean-first product face—rather than turning the marketing site into a simulation of a trading terminal. The result is an inviting, information-led public entry point for a regulated investment product.
57
119
 
58
- The custom **Toss Product Sans** typeface carries over wholesale from `toss.im` same Korean-Latin optical balancing, same tabular-numeral support that makes price ticks, volume figures, and percent changes line up cleanly across rows. Body sits at 16px / 400, section headings at 24px / 700, sub-section headings at 18.72px / 700, and global navigation uses an intermediate 15px / 500 weight that quietly separates wayfinding from reading. There is no display-only accent typeface; restraint is the rule.
120
+ The supplied 2026-07-13 capture establishes three separate public domains. `www.tossinvest.com` is a public WTS surface with controls, tabs, a menu, and a dialog; `home.tossinvest.com/en/corporate-info` is corporate context; and `home.tossinvest.com/en/investment-products` is a marketing explanation of stocks, ETFs, options, and bonds. They share `#3182f6`, `#ffffff`, `#1a1f29`, `#4e5968`, and Toss Product Sans, but their component geometry is not automatically interchangeable. The compact 32px WTS action and the 40px marketing pill are recorded separately.
59
121
 
60
- What makes Toss Securities visually unique inside the Toss family is the **semantic colour inversion**: the parent product treats blue as "go / primary action," but a securities surface must carry the Korean-finance locale convention where **red means a price went up (positive)** and **blue means a price went down (negative)**. The live token tree honours this — `--tw-semantic-color-fill-positive-default: #dc2e47` (red), `--tw-semantic-color-fill-negative-default: #3182f6` (blue) — and the same Toss Blue `#3182f6` is reused as the brand CTA fill `--tw-semantic-color-fill-brand-default`. Context resolves the ambiguity: a blue rectangle next to a price tick means "this stock fell"; a blue rectangle as a button means "execute." Designers porting this language outside KR/JP/TW **must invert** the positive/negative hue assignments.
122
+ No authenticated account, native app, order-entry flow, or documentation UI was captured in this packet. The former dark-canvas, red/blue market-semantic, token-tree, and two-radius claims are therefore removed rather than carried forward from a legacy snapshot.
61
123
 
62
124
  **Key Characteristics:**
63
- - Dark-mode-first surface (`#101013` deepest, `rgb(23,23,28)` body, `#202025` overlay)
64
- - Toss Product Sans inherited from parent brand — tabular numerals for price data
65
- - KR-finance locale: `positive` = red `#dc2e47`, `negative` = blue `#3182f6` (semantic tokens, not just colour values)
66
- - Toss Blue `#3182f6` carries dual duty as brand CTA AND down-tick — context-disambiguated
67
- - Three-namespace token system on `:root`: `--tw-semantic-*` (role) / `--tw-adaptive-*` (theme-aware primitive) / `--wts-adaptive-*` (Web-Toss-Securities scale)
68
- - Zero box-shadow on production chrome depth via layered surface alpha + translucent 1px borders (`rgba(214,224,239,0.09)`)
69
- - Two-tier radius family: `8px` for cards/inputs/buttons, `32px` for contextual chips/pills
70
- - 416 CSS custom properties live on `:root` — a real internal DS, simply not published
125
+
126
+ - Light public-web canvas: `#ffffff`, `#1a1f29`, and `#4e5968`
127
+ - Shared Toss blue `#3182f6` for observed primary actions and links
128
+ - Loaded Toss Product Sans on the public WTS and investment-marketing surfaces
129
+ - Compact WTS controls at 7–8px corners; expanded menu and dialog containers at 12px and 16px
130
+ - A 100px-radius marketing pill is a marketing-specific component, not a universal product radius
131
+ - Public WTS menu and dialog were interaction-expanded; focus, hover, and pressed states are preserved only where observed
71
132
 
72
133
  ## 2. Color Palette & Roles
73
134
 
74
- ### Brand (CTA, links, active)
75
- - **Toss Blue** (`#3182f6`): `--tw-semantic-color-fill-brand-default`. Primary CTA fill, brand icon, brand link.
76
- - **Toss Blue Hover** (`#2562b9`): `--tw-semantic-color-fill-brand-defaultHover`.
77
- - **Toss Blue Pressed** (`#29518e`): `--tw-semantic-color-fill-brand-defaultPressed`.
78
- - **Brand Text** (`#4391ff`): `--tw-semantic-color-txt-brand`. Brand-coloured inline text.
79
- - **Brand Text Hover** (`#74b1f8`): `--tw-semantic-color-txt-brandHover`.
80
-
81
- ### Semantic — KR finance convention (CRITICAL)
82
- - **Positive / Up / 매수** (`#dc2e47`): `--tw-semantic-color-fill-positive-default`. RED. Used for rising prices, gain indicators, buy confirms.
83
- - **Positive Hover** (`#ad2136`): `--tw-semantic-color-fill-positive-defaultHover`.
84
- - **Positive Pressed** (`#8d222f`): `--tw-semantic-color-fill-positive-defaultPressed`.
85
- - **Positive Text** (`#f5445a`): `--tw-semantic-color-txt-positive`.
86
- - **Positive Text Hover** (`#ff7187`): `--tw-semantic-color-txt-positiveHover`.
87
- - **Positive Weak** (`rgba(219,81,87,0.2)`): `--tw-semantic-color-fill-positive-weak`. Tinted background for up-tick rows.
88
- - **Negative / Down / 매도** (`#3182f6`): `--tw-semantic-color-fill-negative-default`. BLUE. Same hex as Brand — context disambiguates.
89
- - **Negative Text** (`#4391ff`): `--tw-semantic-color-txt-negative`.
90
- - **Negative Weak** (`rgba(67,122,223,0.2)`): `--tw-semantic-color-fill-negative-weak`.
91
-
92
- > **Locale rule**: This is non-negotiable for KR/JP/TW finance UI. Porting to US/EU markets requires swapping all `positive-*` tokens to green and all `negative-*` tokens to red. Toss Securities does not ship that variant publicly; it must be authored downstream.
93
-
94
- ### Surface (dark default)
95
- - **Surface 100** (`#101013`): `--tw-semantic-color-bg-surface100`. Deepest surface — page floor.
96
- - **Body composite** (`rgb(23, 23, 28)`): rendered body background as observed via getComputedStyle.
97
- - **Overlay 300** (`#202025`): `--tw-semantic-color-bg-overlay300`. Modal/sheet overlay base.
98
- - **Panel border outer** (`rgba(214,224,239,0.09)`): `--tw-semantic-color-component-panel-borderOuter`. Translucent dividers — depth without shadow.
99
-
100
- ### Text (dark surface)
101
- - **Primary** (`rgba(242,246,255,0.9)`): `--tw-semantic-color-txt-neutral-primary`. Default reading text.
102
- - **Primary Hover** (`rgba(255,255,255,0.96)`).
103
- - **Primary Pressed** (`#FFFFFF`).
104
- - **Secondary observed** (`rgba(253,253,254,0.89)`): inline secondary text — slightly warmer alpha.
105
- - **Tertiary observed** (`rgba(242,242,255,0.47)`): disabled / muted captions.
106
- - **Body default rendered** (`rgb(195, 195, 198)`): composited body text — neutral cool grey.
107
- - **Static white** (`#FFFFFF`): `--tw-semantic-color-txt-staticWhite`. On-CTA text.
108
-
109
- ### Icon
110
- - **Icon brand** (`#3182f6`).
111
- - **Icon neutral primary** (`rgba(217,223,235,0.8)`).
112
- - **Icon positive** (`#f5445a`) — up-tick chevron.
113
- - **Icon negative** (`#4391ff`) — down-tick chevron.
135
+ - **Primary action** (`#3182f6`): observed on the public WTS compact primary action and the investment-products marketing CTA.
136
+ - **Canvas** (`#ffffff`): observed public WTS and marketing page canvas.
137
+ - **Foreground** (`#1a1f29`): observed compact WTS foreground.
138
+ - **Supporting text** (`#4e5968`): observed WTS menu, dialog, and cross-surface supporting text.
139
+ - **On primary** (`#ffffff`): observed text on `#3182f6` actions.
140
+ - **Dialog canvas** (`#fbfcfd`): observed public WTS dialog container.
114
141
 
115
- ## 3. Typography Rules
142
+ The packet does not establish a public positive/negative market-color system, dark trading canvas, error color, success color, or hover palette. Those values are intentionally absent rather than inferred from the Toss parent brand or a previous snapshot.
116
143
 
117
- ### Font Family
144
+ ## 3. Typography Rules
118
145
 
119
- **Primary**: `"Toss Product Sans", Tossface, -apple-system, system-ui, "Bazier Square", "Noto Sans KR", "Segoe UI", "Apple SD Gothic Neo", sans-serif`
146
+ ### Font evidence boundary
147
+
148
+ | Evidence class | Resolution |
149
+ |---|---|
150
+ | Official product-use | Toss’s first-party design conference describes Toss Product Sans as a typeface developed for financial numbers and symbols across mobile, desktop, and offline contexts. |
151
+ | Live computed surface-use | `Toss Product Sans` is the computed first family on the supplied public WTS and investment-marketing capture: loaded/high, 419 visible uses, backed by matching FontFaceSet records and dated `static.toss.im/tps/20260223/` sources. It is the canonical public-web UI family. |
152
+ | Official distributed brand asset | Tossface is a separate Toss-designed emoji font distributed through the official `toss/tossface` repository in TTF, OTF, WOFF, and WOFF2 formats. |
153
+ | Declared-only | Tossface has `@font-face` sources in this capture but zero visible first-family uses. It remains contextual asset information, not `tokens.typography.family.sans`. |
154
+ | System / unresolved | The computed fallback stack includes platform and Korean system faces. No fallback is promoted as a Toss Securities type token, and native-app typography was not inspected. |
155
+
156
+ ### Observed hierarchy
157
+
158
+ | Role | Size | Weight | Line height | Surface |
159
+ |---|---:|---:|---:|---|
160
+ | Compact menu trigger | 13px | 600 | 20px | Public WTS |
161
+ | Body, tab, menu, dialog | 16px | 400 | 23.2px | Public WTS |
162
+ | Investment-products H1 | 18px | 700 | 28.8px | Marketing |
163
+ | Marketing primary action | 15px | 600 | 18px | Marketing |
164
+
165
+ ## 4. Components
166
+
167
+ ### Public WTS compact primary entry
168
+
169
+ **Default / focus / pressed**
170
+ - Background: `#3182f6`
171
+ - Text: `#ffffff`
172
+ - Radius: `8px`
173
+ - Padding: `6px 12px`
174
+ - Height: `32px`
175
+ - Font: `14px / 600 / 16px Toss Product Sans`
176
+ - Focus: observed; retained color and geometry remained unchanged
177
+ - Pressed: observed; retained color and geometry remained unchanged
178
+ - Use: public WTS compact link-action at `home::[data-omd-capture="6"]`
179
+
180
+ ### Investment-products marketing primary
181
+
182
+ **Default / focus / hover / pressed**
183
+ - Background: `#3182f6`
184
+ - Text: `#ffffff`
185
+ - Radius: `100px`
186
+ - Padding: `11px 14px`
187
+ - Height: `40px`
188
+ - Font: `15px / 600 / 18px Toss Product Sans`
189
+ - Focus: observed; no distinct color change retained
190
+ - Hover: observed; no distinct color change retained
191
+ - Pressed: observed; no distinct color change retained
192
+ - Use: investment-products marketing action at `surface-3::[data-omd-capture="11"]`
193
+
194
+ ### Public WTS expanded menu
195
+
196
+ **Menu-open**
197
+ - Background: `#ffffff`
198
+ - Text: `#4e5968`
199
+ - Radius: `12px`
200
+ - Size: `160px x 204px`
201
+ - Shadow: `0 16px 24px -2px rgba(0,0,0,0.06), 0 8px 56px rgba(0,0,0,0.1)`
202
+ - Font: `16px / 400 / 23.2px Toss Product Sans`
203
+ - States: expanded and menu-open observed
204
+ - Use: public WTS menu container at `home::[data-omd-interaction-capture="menu-0-0"]`
205
+
206
+ ### Public WTS selection dialog
207
+
208
+ **Dialog-open**
209
+ - Background: `#fbfcfd`
210
+ - Text: `#4e5968`
211
+ - Radius: `16px`
212
+ - Size: `640px x 600px`
213
+ - Shadow: `0 12px 28px -4px rgba(0,0,0,0.12), 0 8px 56px -4px rgba(0,0,0,0.1)`
214
+ - Font: `16px / 400 / 23.2px Toss Product Sans`
215
+ - States: dialog-open observed
216
+ - Use: public WTS dialog container at `home::[data-omd-interaction-capture="dialog-1-0"]`
217
+
218
+ Only selectors, surfaces, and states present in the supplied raw collector evidence are described here. The capture did not establish native-order, card, toast, error, disabled, or checkout variants.
120
219
 
121
- Tossface is Toss's open-source emoji font (3500+ glyphs, parent-brand asset). Toss Product Sans is loaded via parent-domain CDN — Toss Securities does not appear to serve its own webfont copy on this surface.
220
+ ---
221
+ **Verified:** 2026-07-13
222
+ **Tier 1 sources:** https://www.tossinvest.com/?focusedProductCode=A000660 · https://home.tossinvest.com/en/corporate-info · https://home.tossinvest.com/en/investment-products · https://toss.im/simplicity-21/sessions/3-3 · https://github.com/toss/tossface
223
+ **Tier 2 sources:** https://getdesign.md/toss-securities (direct detail attempt; no importable record returned) · https://styles.refero.design/?q=Toss%20Securities (query attempt; no importable record returned)
224
+ **Conflicts unresolved:** none
122
225
 
123
- ### Hierarchy (observed live)
226
+ ## 5. Layout & Spacing
124
227
 
125
- | Role | Size | Weight | Notes |
126
- |------|------|--------|-------|
127
- | Section H2 | 24px | 700 | "지수 목록" / "실시간 차트" |
128
- | Sub-section H3 | 18.72px | 700 | "필터" / "종목 정보" |
129
- | Nav link | 15px | 500 | Global nav |
130
- | Body / button text | 16px | 400 | Body default |
131
- | Input text | 15px | 400 | Form fields |
132
- | Memo chip | 12px | 600 | Contextual pill action |
133
- | On-CTA text | 16px | 400 | White on tinted-fill button |
228
+ The observed public WTS uses compact 4px, 8px, 12px, and 16px spacing clusters; the investment-marketing CTA contributes a 14px horizontal inset. Treat this as a small observed set, not as a complete spacing scale. WTS has square-edged tabs, 7–8px compact controls, a 12px menu, and a 16px dialog; the marketing pill’s 100px radius belongs only to that action.
134
229
 
135
- ### Numeric & data treatment
136
- Tabular numerals inherit from Toss Product Sans variable-width / tabular-mode toggle. Price ticks, order-book columns, and percent changes use the tabular mode so digits align by column without `font-variant-numeric` patching at each surface.
230
+ ## 6. Iconography & Imagery
137
231
 
138
- ## 4. Iconography & Imagery
232
+ The public WTS capture shows compact control and text-led UI; the expanded menu and dialog establish interaction containers but not a reusable icon family. The investment-products page uses product imagery and explanatory marketing content. No proprietary chart, illustration, or native-app icon system is promoted from this evidence.
139
233
 
140
- - Icon weight: medium-stroke, single-tone (`--tw-semantic-color-icon-*`).
141
- - Brand icon set inherits from parent Toss icon system.
142
- - No decorative illustration on data surfaces — the price chart IS the imagery.
143
- - Marketing surfaces (homepage feed) use product screenshots of the order panel itself, recursively.
234
+ ## 7. Usage Guidelines
144
235
 
145
- ## 5. Layout & Spacing
236
+ ### Do
146
237
 
147
- - **Two-pane stock detail**: chart + price panel (left) / order panel (right rail).
148
- - **Card radius**: `8px` (cards, inputs, default buttons).
149
- - **Chip radius**: `32px` (pill controls memo, filter chips).
150
- - **Icon button radius**: `6–8px` with compact padding (`3px 6px` to `6px 8px`).
151
- - **No box-shadow** on any production chrome element sampled.
152
- - Surface depth = base `#101013` → body `rgb(23,23,28)` composite → overlay `#202025` for sheets.
153
- - Translucent `rgba(214,224,239,0.09)` 1px borders for panel separation.
238
+ - Keep public WTS compact actions distinct from the 40px marketing pill.
239
+ - Use `#3182f6` with `#ffffff` for the observed primary action pairing.
240
+ - Preserve the recorded WTS container progression: 12px menu, 16px dialog.
241
+ - Use Toss Product Sans where the verified public web family is available; label unavailable specimens rather than substituting a system face as if it were Toss Product Sans.
242
+ - Limit interaction claims to the observed WTS focus, pressed, expanded/menu-open, and dialog-open states.
154
243
 
155
- ## 6. Components
244
+ ### Don't
156
245
 
157
- ### Buttons
158
- - **Ghost (default observed)**: bg `rgba(217,217,255,0.11)` / text `#fff` or `rgba(253,253,254,0.89)` / radius `8px` / 16px text / 400 weight.
159
- - **Brand CTA (inferred from token tree, not sampled directly on this surface)**: bg `#3182f6` / text `#fff` / radius `8px`.
160
- - **Memo chip**: bg `rgba(217,217,255,0.11)` / radius `32px` / 12px / 600 / padding `0 8px`.
161
- - **Icon button**: radius `6–8px` / padding `3×6` to `6×8`.
246
+ - Reintroduce an unverified dark trading canvas or red/blue market semantics from the legacy snapshot.
247
+ - Treat the corporate or investment-marketing page as proof of authenticated or native trading UI.
248
+ - Generalize the 100px marketing pill to WTS controls.
249
+ - Promote Tossface to the UI family merely because it is declared in the stack.
250
+ - Invent disabled, error, loading, toast, card, or checkout variants not seen in the capture.
162
251
 
163
- ### Order panel (stock detail)
164
- - Panels: 차트 · 호가 · 시세 · 일반주문 · 개인·외국인·기관 · 체결가.
165
- - Order types: 일반주문 / 정규장 주문 예약.
252
+ ## 8. Accessibility & Density
166
253
 
167
- ### Navigation
168
- - Global: 홈 · 피드 · 주식 골라보기 · 내 계좌 · 내 투자.
169
- - Secondary: 관심 · 최근 본 · 실시간.
170
- - Auth: 로그인.
254
+ The public WTS samples use `#1a1f29` and `#4e5968` on light surfaces, while primary actions use `#ffffff` on `#3182f6`. The packet establishes visible selected and unselected tab/radio controls plus menu and dialog expansion, but it does not provide a full keyboard, screen-reader, contrast, disabled, error, or responsive audit. Retain the observed state distinction and perform a product-specific accessibility audit before extending it to account or order entry.
171
255
 
172
- ### Price tick (semantic)
173
- - Up → text `#f5445a` (icon `#f5445a`), weak tint `rgba(219,81,87,0.2)`.
174
- - Down → text `#4391ff` (icon `#4391ff`), weak tint `rgba(67,122,223,0.2)`.
256
+ ## 9. Voice
175
257
 
176
- ## 7. Motion & Interaction
258
+ The official corporate language is direct, inclusive, and opportunity-oriented: it frames the service around better investment experiences, access to global markets, and technology that makes investing easier. The samples below are original tone guidance, not verbatim Toss Securities copy.
177
259
 
178
- State tokens captured for all interactive roles:
260
+ - “See the choice clearly, then decide.”
261
+ - “투자를 더 쉽게, 다음 기회를 더 가깝게.”
262
+ - “One account, more ways to invest.”
179
263
 
180
- - **Brand**: default `#3182f6` → hover `#2562b9` → pressed `#29518e`.
181
- - **Positive**: default `#dc2e47` → hover `#ad2136` → pressed `#8d222f`.
182
- - **Negative**: default `#3182f6` → hover `#2562b9` → pressed `#29518e`.
183
- - **Ghost-fill family**: `*-ghostHover` / `*-ghostPressed` / `*-weakHover` / `*-weakPressed` exist for every role — fine-grained state language.
264
+ ## 10. Voice & Tone
184
265
 
185
- Motion timing tokens not captured this pass (no live transition introspection performed) — flagged for UPDATE.
266
+ | Attribute | Do | Don't |
267
+ |---|---|---|
268
+ | Inclusive | Explain options for a broad investor range. | Assume expertise or exclude beginners. |
269
+ | Direct | Name the product, market, and next action plainly. | Make a regulated choice sound effortless or guaranteed. |
270
+ | Useful | Pair a feature with the decision it supports. | Use market drama as decoration. |
186
271
 
187
- ## 8. Accessibility & Density
272
+ The examples in §9 are illustrative paraphrases only; no tagline or customer promise is reproduced as official copy.
188
273
 
189
- - Dark surface + `rgba(242,246,255,0.9)` primary text ≈ AA-passing contrast on `#101013` (~14:1).
190
- - Body composited grey `rgb(195,195,198)` on `rgb(23,23,28)` ≈ 11:1 — comfortable AA.
191
- - **Locale risk**: KR red/blue convention is opposite to most US/EU expectations. Cross-locale users may misread direction.
192
- - High data density tolerates 16px body baseline because tabular numerals stabilise column scanning.
274
+ ## 11. Brand Narrative
193
275
 
194
- ## 9. Voice (illustrative, fresh derivations not verbatim Toss copy)
276
+ Toss Securities is a Korean securities company building an investment platform around the mission “To Empower Everyone with Investing.” Its official company page describes an aim to offer better investing experiences and access to opportunities in global capital markets.
195
277
 
196
- - "Watch the tick. Move when it matters."
197
- - "차트는 정직해요. 결정은 빠르게."
198
- - "Real prices. Real depth. No theatre."
278
+ The current public company narrative expands that scope from stock trading toward an inclusive platform for beginners and experts, with investment content, a social community, broader investment products, and WTS access. Its investment-products page makes the portfolio breadth concrete through domestic and overseas stocks, ETFs, U.S. stock options, and overseas bonds.
199
279
 
200
- §10 voice samples above are tone-shape paraphrases derived from observing the calm/declarative product voice on the live surface, not lifted from Toss Securities marketing copy. Brand owns its own taglines; we do not reproduce them.
280
+ The company page also records current international expansion milestones, including a U.S. broker-dealer license in 2025. This is company context, not a claim about any uninspected product interface.
201
281
 
202
- ## 10. Personas (FILL IN — surface-inferred placeholders)
282
+ ## 12. Principles
203
283
 
204
- - **A. Active retail trader, KR 20s–30s**: opens app multiple times intraday, watches a small watchlist, executes via mobile. Wants speed and signal. `[FILL IN with sourced research]`
205
- - **B. Long-horizon individual investor, KR 30s–50s**: monthly rebalance, ETF + blue-chip focus, uses 내 계좌 dashboard primarily. `[FILL IN]`
206
- - **C. First-time investor onboarding from Toss core**: came in via Toss super-app, expects continuity of brand and trust. `[FILL IN]`
284
+ 1. **Opportunity should be broadly reachable.** The stated mission is to empower everyone with investing.
285
+ *UI implication:* explain product choices and next actions without presuming expert knowledge.
286
+ 2. **Global-market access should feel connected.** The company describes global products and WTS as access channels.
287
+ *UI implication:* make market, product, and account context explicit rather than relying on implicit navigation.
288
+ 3. **Technology should make investing easier.** The official narrative connects technology and AI with better decisions.
289
+ *UI implication:* present information as decision support, not as a promise of outcomes.
207
290
 
208
- ## 11. Anti-patterns (don't steal)
291
+ ## 13. Personas
209
292
 
210
- - **Do not** copy positive=red / negative=blue into non-KR/JP/TW locales without inversion.
211
- - **Do not** assume Toss Blue means "brand CTA" everywhere — on Securities it also means "down-tick."
212
- - **Do not** introduce box-shadow as elevation language; this system has chosen translucent borders + layered surface alphas.
213
- - **Do not** introduce a third radius tier; the system is deliberately two-tier (`8px` / `32px`).
214
- - **Do not** introduce a display-only typeface; restraint is the point.
293
+ *These are official audience-scope archetypes, not user-research findings or synthetic satisfaction scores.*
215
294
 
216
- ## 12. Reference URLs
295
+ - **Beginning investor:** the company explicitly names beginners among the people its inclusive platform should serve. Use plain explanations and visible product context.
296
+ - **Experienced investor:** the same platform is intended to include experts. Keep high-information paths available without representing unobserved native or authenticated UI as canonical.
297
+ - **Cross-market investor:** the official product range includes domestic and overseas investments. Make product and market boundaries explicit.
217
298
 
218
- - Production app: https://tossinvest.com (homepage)
219
- - Production stock surface: https://www.tossinvest.com/stocks/A005930/order (Samsung Electronics order panel)
220
- - Parent brand DS context: https://toss.im (typography + base colour origin)
221
- - Tossface (open-source emoji): https://github.com/toss/tossface
299
+ ## 14. States
222
300
 
223
- ## 13. Verification footer
301
+ | State | Evidence boundary |
302
+ |---|---|
303
+ | Focus | Public WTS compact primary and marketing primary focus samples were captured; retained colors and geometry did not change. |
304
+ | Hover | Public WTS tabs and marketing primary were captured in hover; only the retained computed values are documented. |
305
+ | Pressed | Public WTS compact primary, tabs, and marketing primary were captured pressed; no new palette is inferred. |
306
+ | Expanded / menu-open | One public WTS menu interaction was expanded and recorded. |
307
+ | Dialog-open | One public WTS dialog interaction was opened and recorded. |
308
+ | Selected / unchecked | Public WTS tab and radio-like controls exposed selected and unchecked states. |
309
+ | Disabled | Not observed; no disabled token or variant is claimed. |
310
+ | Error | Not observed; no error token or variant is claimed. |
311
+ | Loading / skeleton | Not observed; no loading or skeleton token is claimed. |
312
+ | Empty / success | Not observed; no empty or success treatment is claimed. |
224
313
 
225
- - **Tier 1 official DS**: ✗ NEGATIVE — no `design.tossinvest.com`, no `tossinvest.com/design`, no `tossinvest.com/brand` portal; GitHub org `@toss` (45+ repos, verified for `toss.im`) has zero Toss-Securities-specific design-system / Storybook / token repository; no `toss-im` or `toss-securities` GitHub org exists. Production code exposes 416 `:root` CSS custom properties across three namespaces (`--tw-semantic-*`, `--tw-adaptive-*`, `--wts-adaptive-*`) — the closest public artifact, captured directly.
226
- - **Tier 2 indexes**: not consulted (consistent with KR fintech systemic gap logged in `2026-05-13-kr10.md` and `2026-05-14-kr10.md` audits).
227
- - **Tier 3 live capture**: ✓ CDP `:9222` getComputedStyle on **two surfaces** — homepage (601 DOM samples, 416 `:root` vars) + stock order surface (`A005930/order`). 12 raw_samples retained in `.live-inspect-proof.json` (≥5 floor).
228
- - **IP guardrails**: brand assets reference-only; no verbatim Toss Securities taglines/copy reproduced; voice samples in §9 are fresh derivations; logo not redistributed; persona block in §10 explicitly marked `[FILL IN]` (no fabricated quotes).
229
- - **Flagged for UPDATE**: (a) motion timing tokens not captured this pass; (b) light-mode variant — `--tw-adaptive-*` namespace implies a theme switch but only dark default observed live; (c) personas pending public-research sourcing; (d) primary CTA visual not directly sampled (token tree confirms `#3182f6` fill but live surface served ghost-button variants on inspected paths).
314
+ ## 15. Motion & Easing
230
315
 
231
- ## 14. Do's and Don'ts
316
+ No duration, easing, or transition token was measured in the supplied evidence. The captured hover, focus, pressed, menu, and dialog snapshots establish state presence only; they do not authorize a motion scale. Keep any future motion specification separate until first-party computed transition evidence is available.
232
317
 
233
- ### Do
234
- - Build dark-mode-first, layering surfaces from deepest #101013 to body rgb(23,23,28) to overlay #202025 for sheets
235
- - Encode the KR-finance locale by using red #dc2e47 for positive/up ticks and blue #3182f6 for negative/down ticks via the positive/negative semantic tokens
236
- - Create depth with translucent rgba(214,224,239,0.09) 1px borders and layered surface alpha instead of elevation
237
- - Keep the two-tier radius scale, using 8px for cards, inputs, and buttons and 32px for pill controls like memo and filter chips
238
- - Set type from the observed hierarchy: 24px/700 section H2, 18.72px/700 sub-section H3, 15px/500 nav links, and 16px/400 body
239
- - Use Toss Product Sans tabular numerals so price ticks, order-book columns, and percent changes align by column
318
+ ## 16. Reference URLs
240
319
 
241
- ### Don't
242
- - Copy positive=red / negative=blue into non-KR/JP/TW locales without inverting positive-* to green and negative-* to red
243
- - Assume Toss Blue #3182f6 always means brand CTA, since on this surface it is also the down-tick fill and only context disambiguates
244
- - Introduce box-shadow as elevation language; this system deliberately uses translucent borders plus layered surface alphas
245
- - Add a third radius tier beyond the deliberate two-tier 8px / 32px scale
246
- - Introduce a display-only accent typeface; restraint is the rule and there is no decorative accent face
247
- - Decorate data surfaces with illustration; the price chart itself is the imagery
320
+ - Public WTS surface: https://www.tossinvest.com/?focusedProductCode=A000660
321
+ - Corporate context: https://home.tossinvest.com/en/corporate-info
322
+ - Investment-products marketing: https://home.tossinvest.com/en/investment-products
323
+ - Toss Product Sans context: https://toss.im/simplicity-21/sessions/3-3
324
+ - Tossface official repository: https://github.com/toss/tossface