zugzbot 1.3.0 → 1.5.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 (784) hide show
  1. package/.opencode/agents/sdd-coder.md +5 -4
  2. package/.opencode/agents/sdd-orchestrator.md +9 -8
  3. package/.opencode/agents/sdd-spec-writer.md +3 -4
  4. package/.opencode/commands/loop.md +1 -1
  5. package/.opencode/plugins/loop-enforcer.ts +0 -1
  6. package/.opencode/plugins/sdd-bridge.ts +1 -1
  7. package/.opencode/rules/sdd-global.md +9 -5
  8. package/.opencode/scripts/lint-charts.js +1 -2
  9. package/.opencode/skills/sdd-foundation-overview/SKILL.md +3 -4
  10. package/.opencode/skills/sdd-methodology/SKILL.md +8 -10
  11. package/.opencode/skills/sdd-quickstart/SKILL.md +5 -9
  12. package/.opencode/skills/shadcn-templates/SKILL.md +71 -15
  13. package/.opencode/templates/nextjs-shadcn/components.json +2 -1
  14. package/.opencode/tools/sdd_catalog.ts +335 -20
  15. package/.opencode/tools/sdd_core.ts +8 -6
  16. package/.opencode/tools/sdd_lucide.ts +112 -0
  17. package/README.md +1 -7
  18. package/opencode.json +0 -10
  19. package/package.json +1 -3
  20. package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
  21. package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
  22. package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
  23. package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
  24. package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
  25. package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
  26. package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
  27. package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
  28. package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
  29. package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
  30. package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
  31. package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
  32. package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
  33. package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
  34. package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
  35. package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
  36. package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
  37. package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
  38. package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
  39. package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
  40. package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
  41. package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
  42. package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
  43. package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
  44. package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
  45. package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
  46. package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
  47. package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
  48. package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
  49. package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
  50. package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
  51. package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
  52. package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
  53. package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
  54. package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
  55. package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
  56. package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
  57. package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
  58. package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
  59. package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
  60. package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
  61. package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
  62. package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
  63. package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
  64. package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
  65. package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
  66. package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
  67. package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
  68. package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
  69. package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
  70. package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
  71. package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
  72. package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
  73. package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
  74. package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
  75. package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
  76. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  77. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
  78. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
  79. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
  80. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
  81. package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
  82. package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
  83. package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
  84. package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
  85. package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
  86. package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
  87. package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
  88. package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
  89. package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
  90. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  91. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  92. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
  93. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
  94. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
  95. package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
  96. package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
  97. package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
  98. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  99. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
  100. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
  101. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
  102. package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
  103. package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
  104. package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
  105. package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
  106. package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
  107. package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
  108. package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
  109. package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
  110. package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
  111. package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
  112. package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
  113. package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
  114. package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
  115. package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
  116. package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
  117. package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
  118. package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
  119. package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
  120. package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
  121. package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
  122. package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
  123. package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
  124. package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
  125. package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
  126. package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
  127. package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
  128. package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
  129. package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
  130. package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
  131. package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
  132. package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
  133. package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
  134. package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
  135. package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
  136. package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
  137. package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
  138. package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
  139. package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
  140. package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
  141. package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
  142. package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
  143. package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
  144. package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
  145. package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
  146. package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
  147. package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
  148. package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
  149. package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
  150. package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
  151. package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
  152. package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
  153. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  154. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
  155. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
  156. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
  157. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
  158. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
  159. package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
  160. package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
  161. package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
  162. package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
  163. package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
  164. package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
  165. package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
  166. package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
  167. package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
  168. package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
  169. package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
  170. package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
  171. package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
  172. package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
  173. package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
  174. package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
  175. package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
  176. package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
  177. package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
  178. package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
  179. package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
  180. package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
  181. package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
  182. package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
  183. package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
  184. package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
  185. package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
  186. package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
  187. package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
  188. package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
  189. package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
  190. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  191. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
  192. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
  193. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
  194. package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
  195. package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
  196. package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
  197. package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
  198. package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
  199. package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
  200. package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
  201. package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
  202. package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
  203. package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
  204. package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
  205. package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
  206. package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
  207. package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
  208. package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
  209. package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
  210. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
  211. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
  212. package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
  213. package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
  214. package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
  215. package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
  216. package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
  217. package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
  218. package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
  219. package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
  220. package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
  221. package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
  222. package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
  223. package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
  224. package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
  225. package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
  226. package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
  227. package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
  228. package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
  229. package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
  230. package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
  231. package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
  232. package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
  233. package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
  234. package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
  235. package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
  236. package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
  237. package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
  238. package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
  239. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  240. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
  241. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  242. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  243. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
  244. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
  245. package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
  246. package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
  247. package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
  248. package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
  249. package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
  250. package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
  251. package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
  252. package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
  253. package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
  254. package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
  255. package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
  256. package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
  257. package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
  258. package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
  259. package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
  260. package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
  261. package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
  262. package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
  263. package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
  264. package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
  265. package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
  266. package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
  267. package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
  268. package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
  269. package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
  270. package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
  271. package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
  272. package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
  273. package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
  274. package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
  275. package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
  276. package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
  277. package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
  278. package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
  279. package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
  280. package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
  281. package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
  282. package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
  283. package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
  284. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  285. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  286. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
  287. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
  288. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
  289. package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
  290. package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
  291. package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
  292. package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
  293. package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
  294. package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
  295. package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
  296. package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
  297. package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
  298. package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
  299. package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
  300. package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
  301. package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
  302. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  303. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
  304. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
  305. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
  306. package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
  307. package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
  308. package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
  309. package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
  310. package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
  311. package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
  312. package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
  313. package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
  314. package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
  315. package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
  316. package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
  317. package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
  318. package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
  319. package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
  320. package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
  321. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  322. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  323. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
  324. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
  325. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
  326. package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
  327. package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
  328. package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
  329. package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
  330. package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
  331. package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
  332. package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
  333. package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
  334. package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
  335. package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
  336. package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
  337. package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
  338. package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
  339. package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
  340. package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
  341. package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
  342. package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
  343. package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
  344. package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
  345. package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
  346. package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
  347. package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
  348. package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
  349. package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
  350. package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
  351. package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
  352. package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
  353. package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
  354. package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
  355. package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
  356. package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
  357. package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
  358. package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
  359. package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
  360. package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
  361. package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
  362. package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
  363. package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
  364. package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
  365. package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
  366. package/.opencode/oh-my-design/design-md/line/README.md +0 -12
  367. package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
  368. package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
  369. package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
  370. package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
  371. package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
  372. package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
  373. package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
  374. package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
  375. package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
  376. package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
  377. package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
  378. package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
  379. package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
  380. package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
  381. package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
  382. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  383. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
  384. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
  385. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
  386. package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
  387. package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
  388. package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
  389. package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
  390. package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
  391. package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
  392. package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
  393. package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
  394. package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
  395. package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
  396. package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
  397. package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
  398. package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
  399. package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
  400. package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
  401. package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
  402. package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
  403. package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
  404. package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
  405. package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
  406. package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
  407. package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
  408. package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
  409. package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
  410. package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
  411. package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
  412. package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
  413. package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
  414. package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
  415. package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
  416. package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
  417. package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
  418. package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
  419. package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
  420. package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
  421. package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
  422. package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
  423. package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
  424. package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
  425. package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
  426. package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
  427. package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
  428. package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
  429. package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
  430. package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
  431. package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
  432. package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
  433. package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
  434. package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
  435. package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
  436. package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
  437. package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
  438. package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
  439. package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
  440. package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
  441. package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
  442. package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
  443. package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
  444. package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
  445. package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
  446. package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
  447. package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
  448. package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
  449. package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
  450. package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
  451. package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
  452. package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
  453. package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
  454. package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
  455. package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
  456. package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
  457. package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
  458. package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
  459. package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
  460. package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
  461. package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
  462. package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
  463. package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
  464. package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
  465. package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
  466. package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
  467. package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
  468. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  469. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
  470. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  471. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
  472. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  473. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
  474. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
  475. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
  476. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
  477. package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
  478. package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
  479. package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
  480. package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
  481. package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
  482. package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
  483. package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
  484. package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
  485. package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
  486. package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
  487. package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
  488. package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
  489. package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
  490. package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
  491. package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
  492. package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
  493. package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
  494. package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
  495. package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
  496. package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
  497. package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
  498. package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
  499. package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
  500. package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
  501. package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
  502. package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
  503. package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
  504. package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
  505. package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
  506. package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
  507. package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
  508. package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
  509. package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
  510. package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
  511. package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
  512. package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
  513. package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
  514. package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
  515. package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
  516. package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
  517. package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
  518. package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
  519. package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
  520. package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
  521. package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
  522. package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
  523. package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
  524. package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
  525. package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
  526. package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
  527. package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
  528. package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
  529. package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
  530. package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
  531. package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
  532. package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
  533. package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
  534. package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
  535. package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
  536. package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
  537. package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
  538. package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
  539. package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
  540. package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
  541. package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
  542. package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
  543. package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
  544. package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
  545. package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
  546. package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
  547. package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
  548. package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
  549. package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
  550. package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
  551. package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
  552. package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
  553. package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
  554. package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
  555. package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
  556. package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
  557. package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
  558. package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
  559. package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
  560. package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
  561. package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
  562. package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
  563. package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
  564. package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
  565. package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
  566. package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
  567. package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
  568. package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
  569. package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
  570. package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
  571. package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
  572. package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
  573. package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
  574. package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
  575. package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
  576. package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
  577. package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
  578. package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
  579. package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
  580. package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
  581. package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
  582. package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
  583. package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
  584. package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
  585. package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
  586. package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
  587. package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
  588. package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
  589. package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
  590. package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
  591. package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
  592. package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
  593. package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
  594. package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
  595. package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
  596. package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
  597. package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
  598. package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
  599. package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
  600. package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
  601. package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
  602. package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
  603. package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
  604. package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
  605. package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
  606. package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
  607. package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
  608. package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
  609. package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
  610. package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
  611. package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
  612. package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
  613. package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
  614. package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
  615. package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
  616. package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
  617. package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
  618. package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
  619. package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
  620. package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
  621. package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
  622. package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
  623. package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
  624. package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
  625. package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
  626. package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
  627. package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
  628. package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
  629. package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
  630. package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
  631. package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
  632. package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
  633. package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
  634. package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
  635. package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
  636. package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
  637. package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
  638. package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
  639. package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
  640. package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
  641. package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
  642. package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
  643. package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
  644. package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
  645. package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
  646. package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
  647. package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
  648. package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
  649. package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
  650. package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
  651. package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
  652. package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
  653. package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
  654. package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
  655. package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
  656. package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
  657. package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
  658. package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
  659. package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
  660. package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
  661. package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
  662. package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
  663. package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
  664. package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
  665. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  666. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  667. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  668. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
  669. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
  670. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
  671. package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
  672. package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
  673. package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
  674. package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
  675. package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
  676. package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
  677. package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
  678. package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  679. package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
  680. package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
  681. package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  682. package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
  683. package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
  684. package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
  685. package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
  686. package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
  687. package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
  688. package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
  689. package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
  690. package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
  691. package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
  692. package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
  693. package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
  694. package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
  695. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  696. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
  697. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  698. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
  699. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
  700. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
  701. package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
  702. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  703. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
  704. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
  705. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
  706. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
  707. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
  708. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
  709. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
  710. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
  711. package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
  712. package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
  713. package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
  714. package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
  715. package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
  716. package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
  717. package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
  718. package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
  719. package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
  720. package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
  721. package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
  722. package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
  723. package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
  724. package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
  725. package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
  726. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  727. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
  728. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
  729. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
  730. package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
  731. package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
  732. package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
  733. package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
  734. package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
  735. package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
  736. package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
  737. package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
  738. package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
  739. package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
  740. package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
  741. package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
  742. package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
  743. package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
  744. package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
  745. package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
  746. package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
  747. package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
  748. package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
  749. package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
  750. package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
  751. package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
  752. package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
  753. package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
  754. package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
  755. package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
  756. package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
  757. package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
  758. package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
  759. package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
  760. package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
  761. package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
  762. package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
  763. package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
  764. package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
  765. package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
  766. package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
  767. package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
  768. package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
  769. package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
  770. package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
  771. package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
  772. package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
  773. package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
  774. package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
  775. package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
  776. package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
  777. package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
  778. package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
  779. package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
  780. package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
  781. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
  782. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
  783. package/.opencode/tools/extract-design-pattern.py +0 -182
  784. package/.opencode/tools/sdd_design.ts +0 -303
@@ -1,698 +0,0 @@
1
- ---
2
- id: toss
3
- name: Toss
4
- country: KR
5
- category: fintech
6
- homepage: "https://toss.im"
7
- primary_color: "#0064ff"
8
- logo:
9
- type: favicon
10
- slug: "https://static.toss.im/icons/png/4x/icon-toss-logo.png"
11
- verified: "2026-05-15"
12
- omd: "0.1"
13
- ds:
14
- name: TDS
15
- url: "https://tossmini-docs.toss.im/tds-mobile/"
16
- type: system
17
- description: Toss's mobile design system — 40+ components, tokens, and hooks.
18
- tokens:
19
- source: reconciled
20
- extracted: "2026-06-08"
21
- note: "primary = live Toss Blue blue500 (#3182f6); brand = official Pantone 2175C (#0064ff)"
22
- colors:
23
- primary: "#3182f6"
24
- primary-hover: "#2272eb"
25
- brand: "#0064ff"
26
- brand-gray: "#202632"
27
- canvas: "#ffffff"
28
- foreground: "#191f28"
29
- grey-700: "#333d4b"
30
- grey-600: "#4e5968"
31
- muted: "#8b95a1"
32
- surface: "#f2f4f6"
33
- border: "#e5e8eb"
34
- on-primary: "#ffffff"
35
- error: "#f04452"
36
- success: "#03b26c"
37
- warning: "#fe9800"
38
- typography:
39
- family: { sans: "Toss Product Sans", emoji: "Tossface" }
40
- display-hero: { size: 30, weight: 700, lineHeight: 1.33, use: "Splash screens, hero moments" }
41
- display-lg: { size: 26, weight: 700, lineHeight: 1.38, use: "Section headers, key metrics" }
42
- heading-lg: { size: 22, weight: 700, lineHeight: 1.36, use: "Feature titles, modal headers" }
43
- heading: { size: 20, weight: 600, lineHeight: 1.40, use: "Card headings, sub-sections" }
44
- subtitle: { size: 16, weight: 600, lineHeight: 1.50, use: "Navigation titles, list headers" }
45
- body-lg: { size: 16, weight: 400, lineHeight: 1.50, use: "Descriptions, explanations" }
46
- body: { size: 14, weight: 400, lineHeight: 1.57, use: "Standard reading text" }
47
- body-sm: { size: 13, weight: 400, lineHeight: 1.54, use: "Secondary information" }
48
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48 }
49
- rounded: { sm: 4, md: 8, lg: 16, full: 9999 }
50
- shadow:
51
- subtle: "0px 1px 3px rgba(0,0,0,0.06)"
52
- standard: "0px 2px 8px rgba(0,0,0,0.08)"
53
- elevated: "0px 4px 12px rgba(0,0,0,0.12)"
54
- components_harvested: true
55
- components:
56
- button-fill-primary: { type: button, bg: "#3182f6", fg: "#ffffff", radius: 16, padding: "0 20px", font: "17/600", use: "Primary CTA on light surfaces, 56px tall" }
57
- button-fill-dark: { type: button, bg: "#4e5968", fg: "#ffffff", radius: 16, padding: "0 20px", font: "17/600", use: "Strong action where blue too playful" }
58
- button-fill-danger: { type: button, bg: "#f04452", fg: "#ffffff", radius: 16, padding: "0 20px", font: "17/600", use: "Destructive confirmation" }
59
- input-box: { type: input, fg: "#333d4b", radius: 14, padding: "14px 16px", font: "17/400", use: "Standard form input, most-used variant" }
60
- card: { type: card, bg: "#ffffff", radius: 16, use: "White surface with standard shadow" }
61
- ---
62
-
63
- # Design System Inspiration of Toss (토스)
64
-
65
- ## 1. Visual Theme & Atmosphere
66
-
67
- Toss is Korea's fintech super-app that redefined what a financial interface could feel like -- calm, confident, and deceptively simple. The page opens on a clean white canvas (`#ffffff`) with deep charcoal headings (`#191f28`) and a signature blue (`#3182f6`) that functions as the universal interactive accent. This isn't the cold, institutional blue of legacy banking; it's a bright, optimistic cerulean that says "your money is in good hands, and we'll make it easy."
68
-
69
- The custom **Toss Product Sans** typeface is the quiet hero. Developed with Korean type foundries Sandoll and Leedotype, it was purpose-built for financial contexts: numerals and Latin characters are optically weighted to match Korean hangul proportions, and financial symbols (%, commas, ±) are given enhanced legibility. The font ships in 8 weights (300-950) but the UI exercises restraint, primarily using 400, 600, and 700. The system supports both variable-width numerals for display and fixed-width (tabular) numerals for data tables -- context determines mode.
70
-
71
- What defines Toss visually is its OKLCH-based color system, rebuilt from scratch for perceptual uniformity. Colors at the same scale level appear equally bright regardless of hue, enabling consistent semantic coloring where blue-500, red-500, and green-500 carry identical visual weight without manual tuning.
72
-
73
- **Key Characteristics:**
74
- - Toss Blue (`#3182f6`) as the primary interactive color -- bright, optimistic, trustworthy
75
- - Toss Product Sans with Korean-Latin optical balancing and tabular numeral support
76
- - OKLCH color space for perceptual uniformity across all hue scales
77
- - 10-step grey scale (grey50-grey900) with warm undertones
78
- - Three-tier token architecture: primitive → semantic → component
79
- - Minimal shadow system -- trust comes from clarity, not depth
80
- - Mobile-first at 375px design baseline with accessibility scaling up to 310%
81
-
82
- ## 2. Color Palette & Roles
83
-
84
- ### Primary
85
- - **Toss Blue** (`#3182f6`): `blue500`. Primary interactive color -- CTAs, links, active states, selection highlights. The workhorse of every tappable element.
86
- - **Blue Hover** (`#2272eb`): `blue600`. Hover/pressed state for blue500 elements.
87
- - **Blue Light** (`#e8f3ff`): `blue50`. Informational backgrounds, subtle blue-tinted surfaces.
88
- - **Pure White** (`#ffffff`): `background`, `layeredBackground`. Page background, card surfaces.
89
- - **Dark Charcoal** (`#191f28`): `grey900`. Primary heading color, strongest text. Warm near-black with subtle blue undertone.
90
-
91
- ### Brand (Logo/Marketing Only)
92
- - **Brand Blue** (`#0064FF`): Official Toss brand color (Pantone 2175 C). Logo and marketing materials only -- distinct from UI blue500.
93
- - **Brand Gray** (`#202632`): Official secondary brand color (Pantone 433 C). Corporate contexts.
94
-
95
- ### Semantic
96
- - **Error Red** (`#f04452`): `red500`. Error states, destructive actions, negative financial indicators.
97
- - **Success Green** (`#03b26c`): `green500`. Positive financial indicators, confirmations.
98
- - **Warning Orange** (`#fe9800`): `orange500`. Pending states, attention-needed indicators.
99
- - **Caution Yellow** (`#ffc342`): `yellow500`. Soft warnings, highlight moments.
100
- - **Info Teal** (`#18a5a5`): `teal500`. Informational accent, alternative categorization.
101
- - **Premium Purple** (`#a234c7`): `purple500`. Premium features, special offers.
102
-
103
- ### Neutral Scale
104
- - **Grey 50** (`#f9fafb`): Lightest gray, `greyBackground` surface.
105
- - **Grey 100** (`#f2f4f6`): Secondary background, card fills, disabled surfaces.
106
- - **Grey 200** (`#e5e8eb`): Default border color, dividers, input backgrounds.
107
- - **Grey 400** (`#b0b8c1`): Placeholder text, disabled icon fills.
108
- - **Grey 500** (`#8b95a1`): Caption text, secondary labels.
109
- - **Grey 600** (`#6b7684`): Body text, descriptions, metadata.
110
- - **Grey 700** (`#4e5968`): Emphasized body text, sub-headings.
111
- - **Grey 800** (`#333d4b`): Strong labels, navigation text.
112
-
113
- ### Surface & Borders
114
- - **Border Default**: `#e5e8eb` (grey200). Standard card borders, input borders, dividers.
115
- - **Border Strong**: `#d1d6db` (grey300). Emphasized borders, active input outlines.
116
- - **Background Float**: `#ffffff`. `floatBackground`. Floating elements -- tooltips, dropdowns.
117
- - **Overlay Scrim**: `rgba(2,9,19,0.5)` to `rgba(2,9,19,0.91)`. `greyOpacity` scale. Blue-tinted dark overlays.
118
-
119
- ## 3. Typography Rules
120
-
121
- ### Font Family
122
- - **Primary**: `"Toss Product Sans", "Tossface", "SF Pro KR", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Basier Square", "Apple SD Gothic Neo", Roboto, "Noto Sans KR", sans-serif`
123
- - **Monospace**: `"SF Mono", SFMono-Regular, Menlo, Consolas, monospace`
124
- - **Emoji**: `Tossface` -- Toss's custom emoji font (3500+ emojis, open-source on GitHub)
125
-
126
- ### Hierarchy
127
-
128
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
129
- |------|------|------|--------|-------------|----------------|-------|
130
- | Display Hero | Toss Product Sans | 30px | 700 | 40px (1.33) | normal | Splash screens, hero moments |
131
- | Display Large | Toss Product Sans | 26px | 700 | 36px (1.38) | normal | Section headers, key metrics |
132
- | Heading Large | Toss Product Sans | 22px | 700 | 30px (1.36) | normal | Feature titles, modal headers |
133
- | Heading | Toss Product Sans | 20px | 600 | 28px (1.40) | normal | Card headings, sub-sections |
134
- | Subtitle | Toss Product Sans | 16px | 600 | 24px (1.50) | normal | Navigation titles, list headers |
135
- | Body Large | Toss Product Sans | 16px | 400 | 24px (1.50) | normal | Descriptions, explanations |
136
- | Body | Toss Product Sans | 14px | 400 | 22px (1.57) | normal | Standard reading text |
137
- | Body Small | Toss Product Sans | 13px | 400 | 20px (1.54) | normal | Secondary information |
138
- | Caption | Toss Product Sans | 12px | 400 | 18px (1.50) | normal | Timestamps, fine print |
139
- | Number Display | Toss Product Sans | 30px+ | 700 | tight | normal | Financial amounts -- tabular nums |
140
-
141
- ### Principles
142
- - **Eight weights, three used**: Ships 300-950, but UI uses 400 (body), 600 (emphasis), 700 (headings). Restraint over variety.
143
- - **Dual numeral modes**: Variable-width for display, fixed-width (tabular) for financial tables and stock tickers. Context determines mode.
144
- - **Korean-Latin optical balance**: Korean characters and Latin/numerals are independently weighted so mixed text looks harmonious without manual kerning.
145
- - **Financial symbol optimization**: %, comma separators, ±, currency symbols, and directional arrows given enhanced legibility at small sizes.
146
-
147
- ## 4. Component Stylings
148
-
149
- ### Buttons
150
-
151
- Toss `<Button>` is a 2-axis component: **variant** × **color** × size. Default size is `xlarge` (the values below); see the size-scale paragraph at the end for `small`/`medium`/`large`. Verified against `tossmini-docs.toss.im/tds-mobile/components/button` (TDS Mobile, public docs).
152
-
153
- **Fill / Primary**
154
- - Background: `#3182f6`
155
- - Text: `#ffffff`
156
- - Border: none
157
- - Radius: 16px
158
- - Padding: 0 20px
159
- - Font: 17px / 600 / Toss Product Sans
160
- - Pressed: dim overlay via `--button-pressed-background-color` + `--button-pressed-opacity`
161
- - Disabled: bg opacity scaled by `--button-disabled-opacity-color`
162
- - Loading: 3-dot indicator replacing label, button width preserved
163
- - Use: Primary CTA on light surfaces (송금하기, 확인) — 56px tall
164
-
165
- **Fill / Dark**
166
- - Background: `#4e5968`
167
- - Text: `#ffffff`
168
- - Border: none
169
- - Radius: 16px
170
- - Padding: 0 20px
171
- - Font: 17px / 600 / Toss Product Sans
172
- - Use: Strong action where blue would feel too playful (admin/settings CTA)
173
-
174
- **Fill / Danger**
175
- - Background: `#f04452`
176
- - Text: `#ffffff`
177
- - Border: none
178
- - Radius: 16px
179
- - Padding: 0 20px
180
- - Font: 17px / 600 / Toss Product Sans
181
- - Use: Destructive confirmation (계좌 삭제, 거래 취소)
182
-
183
- **Fill / Light**
184
- - Background: `#ffffff`
185
- - Text: `#1b64da`
186
- - Border: none
187
- - Radius: 16px
188
- - Padding: 0 20px
189
- - Font: 17px / 600 / Toss Product Sans
190
- - Use: CTA on dark / colored surfaces (sits on non-white bg to be legible)
191
-
192
- **Weak / Primary**
193
- - Background: `rgba(100, 168, 255, 0.15)`
194
- - Text: `#2272eb`
195
- - Border: none
196
- - Radius: 16px
197
- - Padding: 0 20px
198
- - Font: 17px / 600 / Toss Product Sans
199
- - Use: Secondary action paired with Fill / Primary on the same screen
200
-
201
- **Weak / Dark**
202
- - Background: `rgba(2, 32, 71, 0.05)`
203
- - Text: `#4e5968`
204
- - Border: none
205
- - Radius: 16px
206
- - Padding: 0 20px
207
- - Font: 17px / 600 / Toss Product Sans
208
- - Use: Neutral / cancel-style secondary (취소, 닫기)
209
-
210
- **Weak / Danger**
211
- - Background: `rgba(251, 136, 144, 0.15)`
212
- - Text: `#e42939`
213
- - Border: none
214
- - Radius: 16px
215
- - Padding: 0 20px
216
- - Font: 17px / 600 / Toss Product Sans
217
- - Use: Subtle destructive action (archive instead of delete)
218
-
219
- **Weak / Light**
220
- - Background: `rgba(255, 255, 255, 0.15)`
221
- - Text: `#ffffff`
222
- - Border: none
223
- - Radius: 16px
224
- - Padding: 0 20px
225
- - Font: 17px / 600 / Toss Product Sans
226
- - Use: Secondary on dark / colored surfaces
227
-
228
- Display modes — `inline` (auto-width), `block` (full-width with line break), `full` (fills parent). Size scale (height · font · radius): `small` 32px · 13px / 600 · 8px; `medium` 38px · 15px / 600 · 10px; `large` 48px · 17px / 600 · 14px; `xlarge` (default) 56px · 17px / 600 · 16px. CSS-var customization: `--button-color`, `--button-background-color`, `--button-pressed-background-color`, `--button-pressed-opacity`, `--button-disabled-opacity-color`, `--button-loader-color`, `--button-loading-background-color`, `--button-gradient-color`.
229
-
230
- ### Inputs
231
-
232
- Toss `<TextField>` has 4 variants: `box` (default), `line`, `big`, `hero`. `hasError` toggles error state. Verified at `tossmini-docs.toss.im/tds-mobile/components/TextField/text-field`.
233
-
234
- **Box (default)**
235
- - Background: `rgba(0, 23, 51, 0.02)`
236
- - Text: `#333d4b`
237
- - Border: 1px solid `rgba(2, 32, 71, 0.05)`
238
- - Radius: 14px
239
- - Padding: 14px 16px
240
- - Font: 17px / 400 / Toss Product Sans
241
- - Placeholder: `#b0b8c1`
242
- - Focus: border `#3182f6`
243
- - Use: Standard form input — most-used variant
244
-
245
- **Line**
246
- - Background: transparent
247
- - Text: `#333d4b`
248
- - Border: 1px solid `#e5e8eb` (bottom only)
249
- - Radius: 0px
250
- - Padding: 0px 0px 4px
251
- - Font: 17px / 400 / Toss Product Sans
252
- - Use: Underline-style input on dense forms
253
-
254
- **Big**
255
- - Background: transparent
256
- - Text: `#333d4b`
257
- - Border: 1px solid `#e5e8eb` (bottom only)
258
- - Radius: 0px
259
- - Padding: 0px 0px 4px
260
- - Font: 22px / 600 / Toss Product Sans
261
- - Use: Highlighted single-line input (amount, name)
262
-
263
- **Hero**
264
- - Background: transparent
265
- - Text: `#333d4b`
266
- - Border: 1px solid `#e5e8eb` (bottom only)
267
- - Radius: 0px
268
- - Padding: 0px 0px 4px
269
- - Font: 30px / 600 / Toss Product Sans
270
- - Use: Eye-catching hero input — large amount entry, sign-up moment
271
-
272
- **Error**
273
- - Background: `rgba(0, 23, 51, 0.02)` (box variant base)
274
- - Text: `#333d4b`
275
- - Border: 1px solid `#f04452`
276
- - Radius: 14px
277
- - Padding: 14px 16px
278
- - Font: 17px / 400 / Toss Product Sans
279
- - Use: `hasError` state — paired with inline help message in `#f04452`
280
-
281
- `SplitTextField` (OTP), `SecureKeypad` (financial PIN with randomised digit positions), and `TextArea` are documented separately under TDS but reuse the same focus ring and base radii.
282
-
283
- ### Cards
284
-
285
- **Standard**
286
- - Background: `#ffffff`
287
- - Border: none
288
- - Radius: 12px
289
- - Padding: 20px
290
- - Shadow: `0px 2px 8px rgba(0,0,0,0.08)`
291
- - Use: Account, transaction, balance — the workhorse surface
292
-
293
- **Featured**
294
- - Background: `#ffffff`
295
- - Border: none
296
- - Radius: 16px
297
- - Padding: 24px
298
- - Shadow: `0px 2px 8px rgba(0,0,0,0.08)`
299
- - Use: Hero/promotional cards on the home tab
300
-
301
- **Compact**
302
- - Background: `#ffffff`
303
- - Border: 1px solid `#e5e8eb`
304
- - Radius: 8px
305
- - Padding: 12px
306
- - Shadow: none
307
- - Use: Inline list items where a softer 1px edge replaces shadow
308
-
309
- ### Badges
310
-
311
- Toss `<Badge>` is a 3-axis component: **variant** × **color** × **size**. Variants `fill | weak`. Colors `blue | teal | green | red | yellow | elephant`. Sizes `xsmall | small | medium | large` (each shifts radius/font/padding). Verified at `tossmini-docs.toss.im/tds-mobile/components/badge`.
312
-
313
- **Fill / Blue (medium default)**
314
- - Background: `#3182f6`
315
- - Text: `#ffffff`
316
- - Border: none
317
- - Radius: 12px
318
- - Padding: 3px 7px
319
- - Font: 13px / 700 / Toss Product Sans
320
- - Use: Primary status / category emphasis ("NEW", "BEST")
321
-
322
- **Fill / Green**
323
- - Background: `#22c55e`
324
- - Text: `#ffffff`
325
- - Border: none
326
- - Radius: 12px
327
- - Padding: 3px 7px
328
- - Font: 13px / 700 / Toss Product Sans
329
- - Use: Success / completion state (입금 완료, 송금 성공)
330
-
331
- **Fill / Red**
332
- - Background: `#ef4444`
333
- - Text: `#ffffff`
334
- - Border: none
335
- - Radius: 12px
336
- - Padding: 3px 7px
337
- - Font: 13px / 700 / Toss Product Sans
338
- - Use: Negative / blocking state (실패, 차단)
339
-
340
- **Fill / Yellow**
341
- - Background: `#eab308`
342
- - Text: `#ffffff`
343
- - Border: none
344
- - Radius: 12px
345
- - Padding: 3px 7px
346
- - Font: 13px / 700 / Toss Product Sans
347
- - Use: Caution / pending (검토 중, 보류)
348
-
349
- **Weak / Blue**
350
- - Background: `rgba(100, 168, 255, 0.15)`
351
- - Text: `#2272eb`
352
- - Border: none
353
- - Radius: 12px
354
- - Padding: 3px 7px
355
- - Font: 13px / 700 / Toss Product Sans
356
- - Use: Subtle informational badge
357
-
358
- **Weak / Green**
359
- - Background: `rgba(34, 197, 94, 0.15)`
360
- - Text: `#16a34a`
361
- - Border: none
362
- - Radius: 12px
363
- - Padding: 3px 7px
364
- - Font: 13px / 700 / Toss Product Sans
365
- - Use: Subtle success state
366
-
367
- **Weak / Red**
368
- - Background: `rgba(239, 68, 68, 0.15)`
369
- - Text: `#dc2626`
370
- - Border: none
371
- - Radius: 12px
372
- - Padding: 3px 7px
373
- - Font: 13px / 700 / Toss Product Sans
374
- - Use: Subtle negative state
375
-
376
- **Weak / Elephant**
377
- - Background: `rgba(2, 32, 71, 0.05)`
378
- - Text: `#4e5968`
379
- - Border: none
380
- - Radius: 12px
381
- - Padding: 3px 7px
382
- - Font: 13px / 700 / Toss Product Sans
383
- - Use: Neutral metadata badge
384
-
385
- Size scale (height · font · radius · padding): `xsmall` 21px · 10px / 600 · 9px · 3px 7px; `small` 24px · 12px / 700 · 11px · 3px 7px; `medium` 26px · 13px / 700 · 12px · 3px 7px; `large` 29px · 14px / 700 · 13px · 4px 8px. Color also supports `teal` and full mapping for each color name; values above show the most-used 4 fills + 4 weaks at medium size.
386
-
387
- ### Tabs
388
-
389
- **Bottom Tab (Active)**
390
- - Background: `#ffffff`
391
- - Text: `#191f28`
392
- - Border: 1px solid `#e5e8eb` (top border only)
393
- - Active: `#3182f6` (icon and label)
394
- - Disabled: `#b0b8c1` (icon) + `#8b95a1` (label)
395
- - Font: 11px / 500 / Toss Product Sans
396
- - Use: Bottom navigation bar — fixed white background, no shadow
397
-
398
- **Segmented**
399
- - Background: `#f2f4f6`
400
- - Text: `#8b95a1`
401
- - Border: none
402
- - Radius: 12px
403
- - Padding: 8px 16px
404
- - Active: `#ffffff` background + `#191f28` text + `0px 2px 4px rgba(0,0,0,0.06)` shadow
405
- - Font: 14px / 600 / Toss Product Sans
406
- - Use: Section switching within a screen (월/주/일 전환)
407
-
408
- ### Toasts
409
-
410
- **Default**
411
- - Background: `#191f28`
412
- - Text: `#ffffff`
413
- - Border: none
414
- - Radius: 8px
415
- - Padding: 12px 16px
416
- - Shadow: `0px 4px 12px rgba(0,0,0,0.12)`
417
- - Font: 14px / 500 / Toss Product Sans
418
- - Use: Auto-dismissing transient notification ("복사되었습니다"). Money-moved success is a dedicated screen, never a toast.
419
-
420
- ### Dialogs
421
-
422
- **Centered Modal**
423
- - Background: `#ffffff`
424
- - Text: `#191f28`
425
- - Border: none
426
- - Radius: 16px
427
- - Padding: 24px
428
- - Shadow: `0px 4px 12px rgba(0,0,0,0.12)`
429
- - Use: AlertDialog / ConfirmDialog for confirmation prompts
430
-
431
- **Bottom Sheet**
432
- - Background: `#ffffff`
433
- - Text: `#191f28`
434
- - Border: none
435
- - Radius: 16px (top corners only)
436
- - Padding: 24px 20px
437
- - Shadow: `0px -4px 12px rgba(0,0,0,0.08)`
438
- - Use: Bottom-attached overlay for selection, picker, secondary form (managed via `overlay-kit`)
439
-
440
- ### Toggles
441
-
442
- **Default**
443
- - Background: `#3182f6` (on) / `#d1d6db` (off)
444
- - Border: none
445
- - Radius: 9999px
446
- - Thumb: `#ffffff` 18px circle with `0px 1px 2px rgba(0,0,0,0.1)` shadow
447
- - Use: Boolean settings (알림 켜기, 자동 송금)
448
-
449
- ---
450
-
451
- **Verified:** 2026-05-08 (full-depth, A1 loop)
452
- **Tier 1 sources:** tossmini-docs.toss.im/tds-mobile (TDS Mobile spec docs — Button/TextField/Badge), toss.im (live DOM via playwright — `.p-button` web variants `#3182f6` / 7px radius / 15px / 600, distinct from TDS Mobile geometry; nav links `#4e5968` 8px transparent; App Store/Play CTA `rgba(0,12,30,0.8)` / 7px / 17px·600)
453
- **Tier 2 sources:** getdesign.md/toss — no record. styles.refero.design — no record (?q=Toss returns 0 hits).
454
- **Tier 2b status:** unavailable; Tier 1 (TDS Mobile docs + live web inspect) treated as authoritative per pipeline.
455
- **Surface split:** §4 above documents the **TDS Mobile (app)** system. The marketing web (toss.im) uses a **distinct `.p-button` system** — Primary `#3182f6` / 7px / 15px·600 / 11×16 / 40px height; Secondary Light Blue `#e8f3ff` bg / `#1b64da` text / 7px (parallel geometry). Both retained as parallel systems.
456
- **Conflicts unresolved:** none. TDS Mobile geometry (16px radius, 17px·600) and web `.p-button` (7px, 15px·600) coexist on different surfaces and were not in conflict.
457
-
458
- ## 5. Layout Principles
459
-
460
- ### Spacing System
461
- - Base unit: 8px
462
- - Common values: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px
463
- - Horizontal padding: 20px (slightly wider than typical 16px)
464
- - Financial data grids: tighter 4px internal spacing
465
-
466
- ### Grid & Container
467
- - Design baseline: 375px mobile width
468
- - Content: full-width with 20px horizontal padding
469
- - No explicit multi-column grid -- single-column, mobile-first
470
- - Transaction lists: full-width rows with consistent left-align for amounts
471
-
472
- ### Whitespace Philosophy
473
- - **Breathing room for money**: Financial numbers get extra surrounding space. A balance at 30px with 32px margins communicates security through spaciousness.
474
- - **Progressive density**: Summary screens are spacious; detail/transaction screens are denser. The deeper you go, the more information-dense.
475
- - **Grouped by function**: Send/receive/invest actions separated by 24px+ gaps; related data within a group uses 8-12px gaps.
476
-
477
- ### Border Radius Scale
478
- - Compact (4px): Small badges, inline elements
479
- - Standard (8px): Inputs, small buttons, compact cards
480
- - Comfortable (12px): Standard cards, dialog corners
481
- - Large (16px): Featured cards, bottom sheet top corners
482
- - Pill (9999px): Toggle switches, floating chips
483
-
484
- ## 6. Depth & Elevation
485
-
486
- | Level | Treatment | Use |
487
- |-------|-----------|-----|
488
- | Flat (Level 0) | No shadow | Page background, inline elements |
489
- | Subtle (Level 1) | `0px 1px 3px rgba(0,0,0,0.06)` | Slight lift, list item separation |
490
- | Standard (Level 2) | `0px 2px 8px rgba(0,0,0,0.08)` | Cards, content panels |
491
- | Elevated (Level 3) | `0px 4px 12px rgba(0,0,0,0.12)` | Dropdowns, popovers, floating buttons |
492
- | Modal (Level 4) | `0px 8px 24px rgba(0,0,0,0.16)` | Bottom sheets, dialogs, modals |
493
-
494
- **Shadow Philosophy**: Toss keeps shadows minimal and neutral. In a financial app, visual noise undermines trust -- elevation is communicated through subtle opacity differences rather than dramatic depth. Pure black with low opacity creates clinical precision matching the fintech context. Where Stripe uses brand-colored shadows, Toss uses restraint as its brand statement.
495
-
496
- ### Blur Effects
497
- - Menu components use backdrop blur for lightweight floating panels
498
- - Navigation bar applies subtle blur on scroll for the sticky header
499
-
500
- ## 7. Do's and Don'ts
501
-
502
- ### Do
503
- - Use Toss Blue (`#3182f6`) for all interactive elements -- links, buttons, toggles, selections
504
- - Apply the full font stack with Korean fallbacks including Tossface emoji
505
- - Use tabular (fixed-width) numerals for financial data and transaction amounts
506
- - Use 700 weight for financial amounts and headings, 400 for body, 600 for emphasis
507
- - Keep border-radius between 8px-16px for most elements
508
- - Show positive changes in green (`#03b26c`), negative in red (`#f04452`)
509
- - Use blue50 (`#e8f3ff`) for subtle informational backgrounds
510
-
511
- ### Don't
512
- - Don't confuse Brand Blue (`#0064FF`) with UI Blue (`#3182f6`) -- brand is for marketing/logo only
513
- - Don't use heavy shadows -- rely on background color layering, not depth
514
- - Don't use bold (700) for body text -- reserved for headings and financial amounts
515
- - Don't mix variable-width and tabular numerals in the same data context
516
- - Don't use warm accent colors (orange, pink) for primary actions -- blue is the sole interactive hue
517
- - Don't use border-radius > 16px except for pills/toggles
518
- - Don't add decorative elements to financial data displays -- clarity is the aesthetic
519
-
520
- ## 8. Responsive Behavior
521
-
522
- ### Breakpoints
523
- | Name | Width | Key Changes |
524
- |------|-------|-------------|
525
- | Mobile (Primary) | <480px | Full design fidelity, 375px baseline |
526
- | Tablet | 480-768px | Expanded cards, optional side margins |
527
- | Desktop (Web) | >768px | Centered column, max-width ~480px for mobile-web parity |
528
-
529
- ### Touch Targets
530
- - Buttons: xlarge (~56px), large (~48px), medium (~40px), small (~36px)
531
- - List items: minimum 52px row height for financial actions
532
- - Keypad buttons: large targets (56-64px) for secure input
533
-
534
- ### Collapsing Strategy
535
- - Desktop web mirrors mobile layout in a centered column
536
- - Bottom sheet → modal dialog on larger screens
537
- - Sticky bottom CTA bar with safe area insets on all devices
538
- - Horizontal scrolling card carousels for product discovery
539
-
540
- ### Image Behavior
541
- - Bank/service logos: 24-40px with consistent sizing within context
542
- - Tossface emojis: inline at text size, display size for decorative use
543
- - Charts/graphs: full-width, responsive, maintain aspect ratio
544
-
545
- ## 9. Agent Prompt Guide
546
-
547
- ### Quick Color Reference
548
- - Primary CTA: Toss Blue (`#3182f6`)
549
- - CTA Hover: Blue 600 (`#2272eb`)
550
- - Background: Pure White (`#ffffff`)
551
- - Background Surface: Light Gray (`#f2f4f6`)
552
- - Heading text: Dark Charcoal (`#191f28`)
553
- - Body text: Medium Gray (`#6b7684`)
554
- - Caption text: Gray (`#8b95a1`)
555
- - Placeholder: Soft Gray (`#b0b8c1`)
556
- - Border: Gray 200 (`#e5e8eb`)
557
- - Success/Positive: Green (`#03b26c`)
558
- - Error/Negative: Red (`#f04452`)
559
- - Warning: Orange (`#fe9800`)
560
-
561
- ### Example Component Prompts
562
- - "Create a balance card: white bg, 12px radius, 20px padding. Balance label 14px weight 400, #8b95a1. Amount 30px weight 700, #191f28, tabular numerals. Currency '원' 20px weight 400. Shadow 0px 2px 8px rgba(0,0,0,0.08)."
563
- - "Build a send-money button: #3182f6 bg, white text, 16px weight 600, min-height 56px, 12px radius, full-width. Pressed: overlay dim. Loading: 3-dot white animation."
564
- - "Design a transaction row: full-width, 16px h-padding, 52px min-height. Left: 32px circle icon + name (14px weight 600, #191f28) + category (13px weight 400, #8b95a1). Right: amount (14px weight 600, #f04452 expense / #03b26c income)."
565
- - "Create an OTP input: 6 boxes, each 48px wide, 56px tall, 8px radius, 1px border #e5e8eb. Active: 2px border #3182f6. Digit: 24px weight 700, centered, #191f28."
566
- - "Design a bottom tab bar: white bg, top border 1px #e5e8eb. 4 tabs evenly spaced. Active: #3182f6 icon + #191f28 label 11px weight 500. Inactive: #b0b8c1 icon + #8b95a1 label. Tab height 56px with safe area."
567
-
568
- ### Iteration Guide
569
- 1. Always use the full Toss Product Sans font stack with Korean fallbacks
570
- 2. Primary interactive color is `#3182f6` (blue500) -- never `#0064FF` (brand blue)
571
- 3. Financial numbers: 700 weight, tabular numerals, right-aligned in lists
572
- 4. Grey scale has warm undertones: grey900 `#191f28`, grey50 `#f9fafb`
573
- 5. Border-radius: 8px inputs, 12px cards, 16px sheets, pill for toggles
574
- 6. Shadows are single-layer, pure black opacity, no colored tints
575
- 7. Mobile-first: design at 375px, 20px horizontal padding
576
-
577
- ---
578
-
579
- ## 10. Voice & Tone
580
-
581
- Toss speaks like a friend who happens to be a fiduciary: calm, unhurried, zero jargon, positive statements without hedging. Balance is stated, not "approximately" anything. Korean is the primary voice — English UI strings are secondary translations, not parity. Sentences end in periods; buttons do not. No emoji in financial contexts. Tossface exists as brand decoration but is disallowed on money-handling screens.
582
-
583
- | Context | Tone |
584
- |---|---|
585
- | CTAs | Imperative, short Korean verb form (`송금하기`, `확인`, `가입하기`) |
586
- | Success toasts | Past-tense single sentence (`송금이 완료되었어요`). No emoji. |
587
- | Error messages | Specific + blameless + actionable. Never `문제가 발생했습니다`. |
588
- | Onboarding screens | Second-person, one idea per screen, no bullet lists. |
589
- | Financial amounts | Bare numerals with comma separators, then currency unit. `1,240,000원`, never `₩1.24M`. |
590
- | Empty states | Explain the *why* in one line, offer one action. Never `데이터가 없습니다`. |
591
- | Legal / disclosure | Korean financial-regulation tone — formal `합니다` endings. Single exception to the casual voice. |
592
-
593
- **Forbidden phrases.** `불편을 드려 죄송합니다`, `Oops`, `죄송하지만`, `약 ~원` (approximation on money), any sentence starting with `I'm sorry` in English strings. Rounded currency amounts (`약 120만원`) are forbidden on primary surfaces; exact numerals only.
594
-
595
- ## 11. Brand Narrative
596
-
597
- Toss is the consumer brand of **Viva Republica** (비바리퍼블리카), founded by **Lee Seung-gun (이승건)** — a former dentist who [left a Samsung-owned hospital](https://en.wikipedia.org/wiki/Lee_Seung-gun) to build it ([Wikipedia: Viva Republica](https://en.wikipedia.org/wiki/Viva_Republica), [Fortune Asia, 2025](https://fortune.com/asia/2025/04/23/toss-founder-lee-seunggun-south-korea-viva-republica/)). Lee tried **eight failed ventures** before Toss; the Toss money-transfer product launched in 2014 ([Caproasia, 2025](https://www.caproasia.com/2025/07/26/south-korea-financial-app-toss-plans-united-states-ipo-in-2026)) into a Korean banking market dominated by legacy institutions — KB, Shinhan, Woori, Hana — each with institutional-indigo websites, 12-digit account numbers, Active-X plug-ins, and the presumption that handling money had to feel like filing taxes. The founding rejection was of that entire aesthetic vocabulary. The specific cerulean `#3182f6` was chosen because it was **not** the indigo of any incumbent bank. The optimism of the color was the whole thesis: money could feel light.
598
-
599
- Toss reached **20M+ users by 2021** (Wikipedia) and operates as a financial super-app spanning lending, payments, brokerage, insurance, and credit scoring. As of 2025, the company plans a **US IPO in 2026 at ~$15B valuation**, raising $2.5B (Caproasia, July 2025), with investors including Altos Ventures, Goodwater Capital, HongShan Capital, PayPal, GIC, and Korea Development Bank.
600
-
601
- Toss is not a neo-bank. It's a super-app: one interface holds transfers, investments, credit scoring, insurance, brokerage, and lending. The design's job is to flatten that complexity into **one gesture per screen**. That requires extreme restraint — shadows are single-layer black, palette is blue-and-neutral, type is one family in three weights. Every ornamental move costs clarity, and clarity is the entire brand promise.
602
-
603
- What Toss refuses: the institutional seriousness of legacy finance, the playfulness of consumer apps (no bright pink, no illustrations of cartoon piggy banks), the data-viz density of Bloomberg-style terminals. Toss occupies a narrow middle — calm but optimistic, dense with functionality but spacious in presentation.
604
-
605
- ## 12. Principles
606
-
607
- 1. **Breathing room for money.** Financial amounts get ≥1.5× the surrounding spacing of normal text. A balance at 30px with 32px margins is correct; the same balance at 16px margins looks cheap and therefore untrustworthy.
608
- 2. **Progressive density.** Summary screens are spacious; detail and transaction screens are dense. The deeper the user navigates, the more information per pixel — they've committed to the context and want facts.
609
- 3. **One action per screen.** If a screen has two primary buttons, it is two screens. Secondary actions are acceptable; two primaries are never acceptable.
610
- 4. **Blue is interaction, not decoration.** `#3182f6` appears only where the user can tap. It never decorates. Illustrations, ornaments, borders, and headers never use blue500 unless they are interactive surfaces.
611
- 5. **Restraint communicates trust.** Shadows are single-layer, pure black, low opacity. No colored shadows, no multi-layer elevation stacks. In finance, visual noise is credibility tax.
612
- 6. **Korean and Latin are co-equal.** Never assume one is primary. Typography stacks, optical weights, and tabular numerals all assume both scripts render simultaneously in the same line.
613
- 7. **Numbers are typography.** Financial amounts use 700 weight and tabular numerals with the same care as display headings. Amounts never inherit body-text weight.
614
- 8. **Negative space is a brand asset.** If reducing padding would fit more on screen, the answer is another screen, not tighter packing.
615
-
616
- ## 13. Personas
617
-
618
- *Personas below are fictional archetypes informed by publicly described Korean fintech user segments, not individual people.*
619
-
620
- **정민 (Jeongmin), 28, Seoul.** Software engineer at a mid-size startup. Opens Toss 2–3 times a day — morning subway, post-lunch balance check, evening transfer to a flatmate. Expects the app to open directly to the account screen and paint in under 1s. If she has to tap twice to see her money, she's already irritated. Uses both Korean and English on-device; reads financial English natively but prefers Korean UI for speed.
621
-
622
- **이선생님 (Mr. Lee), 54, Busan.** Runs a three-person machining shop. His daughter set up Toss for him two years ago. Primary use: transferring to suppliers and receiving invoice payments. Needs one-tap repeat transfer — he has about 12 regular counterparties. Distrusts anything that looks like an advertisement. Would uninstall the app before tapping a promoted banner. Reads Korean only; English strings on product surfaces are invisible to him. Values receipts and transaction history — never deletes them.
623
-
624
- **예은 (Yeeun), 21, Daegu.** University student, third year, Economics. Toss is her primary banking app — she opened her first account through it, and has never touched a legacy bank's web interface except under duress. Expects Toss Blue to be "banking blue." If another financial app uses cerulean, she assumes it's imitating Toss. Sends ₩5,000–₩30,000 amounts constantly (splitting bills, paying back friends). Treats the app like a messaging app with money attached.
625
-
626
- ## 14. States
627
-
628
- | State | Treatment |
629
- |---|---|
630
- | **Empty (first use)** | Single paragraph of `grey700` body text explaining *why* the screen is empty (`아직 거래내역이 없어요`), plus one suggested action as a secondary button (blue50 bg, blue500 text). Never an illustration. Never `데이터가 없습니다`. |
631
- | **Empty (filter cleared)** | Single line of `grey500` caption (`조건에 맞는 결과가 없어요`). No button — user resets the filter themselves. |
632
- | **Loading (first paint)** | Skeleton blocks matching the final layout's structure at `#f2f4f6` (grey100). Financial amounts render as `--` until resolved; they never appear as skeleton blocks (would look like they have a placeholder value). |
633
- | **Loading (refresh)** | Top bar pull-down spinner in blue500. No overlay, no blocking. Content stays visible with its previous values. |
634
- | **Error (inline field)** | `#f04452` (red500) 2px border on the input, error text below in red500 13px. One actionable sentence (`계좌번호를 다시 확인해주세요`). |
635
- | **Error (toast)** | `#191f28` background, white 14px 400 text, 3s auto-dismiss. One sentence. No icons. Bottom of screen with 20px inset. |
636
- | **Error (screen-blocking)** | Reserved for server outage. White screen, centered single-line message in `grey900` 16px weight 600, retry button in blue500 below. No illustration. |
637
- | **Success (inline flash)** | Brief flash of `#e8f3ff` (blue50) background behind the updated element, 300ms fade to default. For routine actions like toggling a setting. |
638
- | **Success (money moved)** | Dedicated confirmation screen — not a toast. `#03b26c` (green500) checkmark top-center, exact amount in 30px weight 700 below, recipient name, timestamp. Single button: `확인`. This weight is intentional; money moving is never a toast. |
639
- | **Skeleton** | `#f2f4f6` blocks at exact final dimensions. 1.2s shimmer as `linear-gradient` with 8% white highlight. Rounded at component radius (8px/12px/16px per component). Never used on financial amounts — those show `--`. |
640
- | **Disabled** | Button opacity drops per `--button-disabled-opacity-color`. No grey-out of input borders — disabled inputs keep `grey200` border, so the geometry is stable if re-enabled. |
641
- | **Loading inside pressed button** | Text is replaced by the 3-dot white animation. Width of the button does not change. Press is visually committed; user cannot double-submit. |
642
-
643
- ## 15. Motion & Easing
644
-
645
- **Durations** (named, not raw milliseconds):
646
-
647
- | Token | Value | Use |
648
- |---|---|---|
649
- | `motion-instant` | 0ms | Toggle flips, checkbox state changes |
650
- | `motion-fast` | 150ms | Hover, focus, small reveals, button press overlay |
651
- | `motion-standard` | 250ms | The default — sheet opens, card expands, tab switches |
652
- | `motion-slow` | 400ms | Emphasized transitions — success checkmarks, onboarding step advances |
653
- | `motion-page` | 350ms | Full-screen transitions between top-level routes |
654
-
655
- **Easings:**
656
-
657
- | Token | Curve | Use |
658
- |---|---|---|
659
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Things appearing — sheets, toasts, screen pushes |
660
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Things leaving — dismissals, pops |
661
- | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — collapsible cards, tab content |
662
- | `ease-spring` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Reserved. Only for money-moved success checkmark. Nowhere else — overshoot on routine UI would feel unserious. |
663
-
664
- **Signature motions.**
665
-
666
- 1. **Money-moves.** When a balance updates, the old number slides up 20px and fades out (`motion-fast / ease-exit`), the new number slides in from below 20px (`motion-standard / ease-enter`). Never cross-fade money — a financial amount flickering between values looks like a bug.
667
- 2. **Bottom-sheet presentation.** Sheets rise from `y+40px` with `motion-standard / ease-enter` and a synchronized backdrop fade from `rgba(2,9,19,0)` to `rgba(2,9,19,0.5)`. Dismissal uses `motion-fast / ease-exit` — leaving feels lighter than entering.
668
- 3. **Success checkmark.** On money-moved confirmation, the checkmark draws over `motion-slow` with `ease-spring`. This is the one place spring easing is licensed. Everywhere else, standard easing.
669
- 4. **Reduce motion.** If `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. No exceptions. Crossfades replace slides. The app stays usable; just less kinetic.
670
-
671
- <!--
672
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
673
-
674
- Direct verification via WebFetch (2026-04-19):
675
- - https://toss.im/ — confirms Viva Republica (비바리퍼블리카) as operating company,
676
- unified-finance super-app positioning ("내 모든 금융 내역을 한눈에 조회하고 한 곳에서 관리하세요"),
677
- and mission framing "모두의 금융에 자유를" (financial freedom for everyone).
678
- - https://slash.page/ — confirms Toss maintains a public open-source engineering
679
- presence ("Copyright © 2024 Viva Republica - Toss Frontend Chapter"), with
680
- packages including overlay-kit, suspensive, use-funnel — demonstrating the
681
- design/engineering self-documentation culture referenced in §12 Principles.
682
-
683
- Base DESIGN.md (sections 1–9) is the source for token-level claims including
684
- Toss Blue #3182f6, Toss Product Sans, the OKLCH-based palette, and shadow tokens.
685
-
686
- Not independently verified via WebFetch — widely documented public facts used:
687
- - Toss (Viva Republica) was founded in 2013; the money-transfer app launched in 2015.
688
- - Korean legacy-bank institutional palette context (KB, Shinhan, Woori, Hana) is
689
- general industry knowledge, not a sourced Toss statement.
690
-
691
- Personas (§13) are fictional archetypes informed by publicly described Korean
692
- fintech user segments. Any resemblance to specific individuals is unintended.
693
-
694
- Interpretive claims (e.g., "the specific cerulean was chosen because it was
695
- not the indigo of any incumbent bank") are editorial readings of the design,
696
- not documented Toss statements.
697
- -->
698
-