zugzbot 1.2.0 → 1.4.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 (786) hide show
  1. package/.opencode/agents/sdd-coder.md +5 -4
  2. package/.opencode/agents/sdd-orchestrator.md +11 -10
  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 +8 -0
  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 +93 -32
  13. package/.opencode/templates/nextjs-shadcn/components.json +4 -1
  14. package/.opencode/tools/sdd_bootstrap.ts +21 -0
  15. package/.opencode/tools/sdd_catalog.ts +1040 -0
  16. package/.opencode/tools/sdd_core.ts +8 -6
  17. package/.opencode/tools/sdd_lucide.ts +112 -0
  18. package/README.md +1 -7
  19. package/opencode.json +0 -10
  20. package/package.json +1 -3
  21. package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
  22. package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
  23. package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
  24. package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
  25. package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
  26. package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
  27. package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
  28. package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
  29. package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
  30. package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
  31. package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
  32. package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
  33. package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
  34. package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
  35. package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
  36. package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
  37. package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
  38. package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
  39. package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
  40. package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
  41. package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
  42. package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
  43. package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
  44. package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
  45. package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
  46. package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
  47. package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
  48. package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
  49. package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
  50. package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
  51. package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
  52. package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
  53. package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
  54. package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
  55. package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
  56. package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
  57. package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
  58. package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
  59. package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
  60. package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
  61. package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
  62. package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
  63. package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
  64. package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
  65. package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
  66. package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
  67. package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
  68. package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
  69. package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
  70. package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
  71. package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
  72. package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
  73. package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
  74. package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
  75. package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
  76. package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
  77. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  78. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
  79. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
  80. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
  81. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
  82. package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
  83. package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
  84. package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
  85. package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
  86. package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
  87. package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
  88. package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
  89. package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
  90. package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
  91. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  92. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  93. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
  94. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
  95. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
  96. package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
  97. package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
  98. package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
  99. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  100. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
  101. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
  102. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
  103. package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
  104. package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
  105. package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
  106. package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
  107. package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
  108. package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
  109. package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
  110. package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
  111. package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
  112. package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
  113. package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
  114. package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
  115. package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
  116. package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
  117. package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
  118. package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
  119. package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
  120. package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
  121. package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
  122. package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
  123. package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
  124. package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
  125. package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
  126. package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
  127. package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
  128. package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
  129. package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
  130. package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
  131. package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
  132. package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
  133. package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
  134. package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
  135. package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
  136. package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
  137. package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
  138. package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
  139. package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
  140. package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
  141. package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
  142. package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
  143. package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
  144. package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
  145. package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
  146. package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
  147. package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
  148. package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
  149. package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
  150. package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
  151. package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
  152. package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
  153. package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
  154. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  155. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
  156. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
  157. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
  158. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
  159. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
  160. package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
  161. package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
  162. package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
  163. package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
  164. package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
  165. package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
  166. package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
  167. package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
  168. package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
  169. package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
  170. package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
  171. package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
  172. package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
  173. package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
  174. package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
  175. package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
  176. package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
  177. package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
  178. package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
  179. package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
  180. package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
  181. package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
  182. package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
  183. package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
  184. package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
  185. package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
  186. package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
  187. package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
  188. package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
  189. package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
  190. package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
  191. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  192. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
  193. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
  194. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
  195. package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
  196. package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
  197. package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
  198. package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
  199. package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
  200. package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
  201. package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
  202. package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
  203. package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
  204. package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
  205. package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
  206. package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
  207. package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
  208. package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
  209. package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
  210. package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
  211. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
  212. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
  213. package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
  214. package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
  215. package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
  216. package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
  217. package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
  218. package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
  219. package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
  220. package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
  221. package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
  222. package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
  223. package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
  224. package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
  225. package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
  226. package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
  227. package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
  228. package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
  229. package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
  230. package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
  231. package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
  232. package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
  233. package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
  234. package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
  235. package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
  236. package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
  237. package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
  238. package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
  239. package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
  240. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  241. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
  242. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  243. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  244. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
  245. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
  246. package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
  247. package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
  248. package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
  249. package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
  250. package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
  251. package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
  252. package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
  253. package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
  254. package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
  255. package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
  256. package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
  257. package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
  258. package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
  259. package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
  260. package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
  261. package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
  262. package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
  263. package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
  264. package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
  265. package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
  266. package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
  267. package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
  268. package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
  269. package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
  270. package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
  271. package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
  272. package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
  273. package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
  274. package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
  275. package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
  276. package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
  277. package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
  278. package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
  279. package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
  280. package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
  281. package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
  282. package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
  283. package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
  284. package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
  285. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  286. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  287. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
  288. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
  289. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
  290. package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
  291. package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
  292. package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
  293. package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
  294. package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
  295. package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
  296. package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
  297. package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
  298. package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
  299. package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
  300. package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
  301. package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
  302. package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
  303. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  304. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
  305. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
  306. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
  307. package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
  308. package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
  309. package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
  310. package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
  311. package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
  312. package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
  313. package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
  314. package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
  315. package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
  316. package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
  317. package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
  318. package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
  319. package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
  320. package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
  321. package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
  322. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  323. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  324. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
  325. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
  326. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
  327. package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
  328. package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
  329. package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
  330. package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
  331. package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
  332. package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
  333. package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
  334. package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
  335. package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
  336. package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
  337. package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
  338. package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
  339. package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
  340. package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
  341. package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
  342. package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
  343. package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
  344. package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
  345. package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
  346. package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
  347. package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
  348. package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
  349. package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
  350. package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
  351. package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
  352. package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
  353. package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
  354. package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
  355. package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
  356. package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
  357. package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
  358. package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
  359. package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
  360. package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
  361. package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
  362. package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
  363. package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
  364. package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
  365. package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
  366. package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
  367. package/.opencode/oh-my-design/design-md/line/README.md +0 -12
  368. package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
  369. package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
  370. package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
  371. package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
  372. package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
  373. package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
  374. package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
  375. package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
  376. package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
  377. package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
  378. package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
  379. package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
  380. package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
  381. package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
  382. package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
  383. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  384. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
  385. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
  386. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
  387. package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
  388. package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
  389. package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
  390. package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
  391. package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
  392. package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
  393. package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
  394. package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
  395. package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
  396. package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
  397. package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
  398. package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
  399. package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
  400. package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
  401. package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
  402. package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
  403. package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
  404. package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
  405. package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
  406. package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
  407. package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
  408. package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
  409. package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
  410. package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
  411. package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
  412. package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
  413. package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
  414. package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
  415. package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
  416. package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
  417. package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
  418. package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
  419. package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
  420. package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
  421. package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
  422. package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
  423. package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
  424. package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
  425. package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
  426. package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
  427. package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
  428. package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
  429. package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
  430. package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
  431. package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
  432. package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
  433. package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
  434. package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
  435. package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
  436. package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
  437. package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
  438. package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
  439. package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
  440. package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
  441. package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
  442. package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
  443. package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
  444. package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
  445. package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
  446. package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
  447. package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
  448. package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
  449. package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
  450. package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
  451. package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
  452. package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
  453. package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
  454. package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
  455. package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
  456. package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
  457. package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
  458. package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
  459. package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
  460. package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
  461. package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
  462. package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
  463. package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
  464. package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
  465. package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
  466. package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
  467. package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
  468. package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
  469. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  470. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
  471. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  472. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
  473. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  474. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
  475. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
  476. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
  477. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
  478. package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
  479. package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
  480. package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
  481. package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
  482. package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
  483. package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
  484. package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
  485. package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
  486. package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
  487. package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
  488. package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
  489. package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
  490. package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
  491. package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
  492. package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
  493. package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
  494. package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
  495. package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
  496. package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
  497. package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
  498. package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
  499. package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
  500. package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
  501. package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
  502. package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
  503. package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
  504. package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
  505. package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
  506. package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
  507. package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
  508. package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
  509. package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
  510. package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
  511. package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
  512. package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
  513. package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
  514. package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
  515. package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
  516. package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
  517. package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
  518. package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
  519. package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
  520. package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
  521. package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
  522. package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
  523. package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
  524. package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
  525. package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
  526. package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
  527. package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
  528. package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
  529. package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
  530. package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
  531. package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
  532. package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
  533. package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
  534. package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
  535. package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
  536. package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
  537. package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
  538. package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
  539. package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
  540. package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
  541. package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
  542. package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
  543. package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
  544. package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
  545. package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
  546. package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
  547. package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
  548. package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
  549. package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
  550. package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
  551. package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
  552. package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
  553. package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
  554. package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
  555. package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
  556. package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
  557. package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
  558. package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
  559. package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
  560. package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
  561. package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
  562. package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
  563. package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
  564. package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
  565. package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
  566. package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
  567. package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
  568. package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
  569. package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
  570. package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
  571. package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
  572. package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
  573. package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
  574. package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
  575. package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
  576. package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
  577. package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
  578. package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
  579. package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
  580. package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
  581. package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
  582. package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
  583. package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
  584. package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
  585. package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
  586. package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
  587. package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
  588. package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
  589. package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
  590. package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
  591. package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
  592. package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
  593. package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
  594. package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
  595. package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
  596. package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
  597. package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
  598. package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
  599. package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
  600. package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
  601. package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
  602. package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
  603. package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
  604. package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
  605. package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
  606. package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
  607. package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
  608. package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
  609. package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
  610. package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
  611. package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
  612. package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
  613. package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
  614. package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
  615. package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
  616. package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
  617. package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
  618. package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
  619. package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
  620. package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
  621. package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
  622. package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
  623. package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
  624. package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
  625. package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
  626. package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
  627. package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
  628. package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
  629. package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
  630. package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
  631. package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
  632. package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
  633. package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
  634. package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
  635. package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
  636. package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
  637. package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
  638. package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
  639. package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
  640. package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
  641. package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
  642. package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
  643. package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
  644. package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
  645. package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
  646. package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
  647. package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
  648. package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
  649. package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
  650. package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
  651. package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
  652. package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
  653. package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
  654. package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
  655. package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
  656. package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
  657. package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
  658. package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
  659. package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
  660. package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
  661. package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
  662. package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
  663. package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
  664. package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
  665. package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
  666. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  667. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  668. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  669. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
  670. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
  671. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
  672. package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
  673. package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
  674. package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
  675. package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
  676. package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
  677. package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
  678. package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
  679. package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  680. package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
  681. package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
  682. package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  683. package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
  684. package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
  685. package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
  686. package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
  687. package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
  688. package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
  689. package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
  690. package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
  691. package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
  692. package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
  693. package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
  694. package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
  695. package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
  696. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  697. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
  698. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  699. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
  700. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
  701. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
  702. package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
  703. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  704. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
  705. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
  706. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
  707. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
  708. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
  709. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
  710. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
  711. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
  712. package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
  713. package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
  714. package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
  715. package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
  716. package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
  717. package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
  718. package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
  719. package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
  720. package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
  721. package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
  722. package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
  723. package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
  724. package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
  725. package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
  726. package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
  727. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  728. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
  729. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
  730. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
  731. package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
  732. package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
  733. package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
  734. package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
  735. package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
  736. package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
  737. package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
  738. package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
  739. package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
  740. package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
  741. package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
  742. package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
  743. package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
  744. package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
  745. package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
  746. package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
  747. package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
  748. package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
  749. package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
  750. package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
  751. package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
  752. package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
  753. package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
  754. package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
  755. package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
  756. package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
  757. package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
  758. package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
  759. package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
  760. package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
  761. package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
  762. package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
  763. package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
  764. package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
  765. package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
  766. package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
  767. package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
  768. package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
  769. package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
  770. package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
  771. package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
  772. package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
  773. package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
  774. package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
  775. package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
  776. package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
  777. package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
  778. package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
  779. package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
  780. package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
  781. package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
  782. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
  783. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
  784. package/.opencode/tools/akash_catalog.ts +0 -596
  785. package/.opencode/tools/extract-design-pattern.py +0 -182
  786. package/.opencode/tools/sdd_design.ts +0 -303
@@ -1,688 +0,0 @@
1
- ---
2
- id: banksalad
3
- name: Banksalad
4
- country: KR
5
- category: fintech
6
- homepage: "https://www.banksalad.com"
7
- primary_color: "#04c584"
8
- logo:
9
- type: favicon
10
- slug: "https://www.google.com/s2/favicons?domain=banksalad.com&sz=256"
11
- verified: "2026-05-15"
12
- omd: "0.1"
13
- ds:
14
- name: Banksalad GitHub
15
- url: "https://github.com/banksalad"
16
- type: brand
17
- description: Banksalad's public GitHub org including styleguide repos and BPL (Banksalad Product Library) reference material.
18
- og_image: "https://avatars.githubusercontent.com/u/71009899?s=280&v=4"
19
- tokens:
20
- source: prose-derived
21
- extracted: "2026-06-08"
22
- colors:
23
- primary: "#04c584"
24
- primary-hover: "#10df99"
25
- brand: "#04c584"
26
- canvas: "#ffffff"
27
- foreground: "#2b2b2b"
28
- muted: "#7b7b7b"
29
- on-primary: "#ffffff"
30
- surface-alt: "#fbfbfb"
31
- surface-neutral: "#f5f5f5"
32
- body: "#434444"
33
- placeholder: "#999999"
34
- disabled: "#acacac"
35
- hairline: "#e1e1e1"
36
- mint-tint: "#f3fdfa"
37
- error: "#fe493d"
38
- error-soft: "#ff8a84"
39
- warning: "#fd8700"
40
- warning-deep: "#f56200"
41
- info: "#0099ff"
42
- success: "#04c584"
43
- chart-1: "#34464b"
44
- chart-2: "#5c818a"
45
- chart-3: "#1c6c73"
46
- chart-4: "#a7c7cf"
47
- typography:
48
- family: { sans: "Pretendard", display: "BM JUA" }
49
- hero-display: { size: 52, weight: 700, lineHeight: 1.23, tracking: -1, use: "Largest landing headline; sometimes Jua" }
50
- display-lg: { size: 48, weight: 700, lineHeight: 1.2, tracking: -1, use: "Secondary hero" }
51
- display: { size: 44, weight: 700, lineHeight: 1.25, tracking: -1, use: "Section-opening figures (balances, scores)" }
52
- section-heading: { size: 36, weight: 700, lineHeight: 1.3, tracking: -0.5, use: "Marketing section titles" }
53
- h1: { size: 28, weight: 700, lineHeight: 1.14, use: "In-app section titles" }
54
- h2: { size: 24, weight: 700, lineHeight: 1.17, use: "Card titles, panel headings" }
55
- h3: { size: 20, weight: 700, lineHeight: 1.2, use: "Sub-card headings" }
56
- subhead: { size: 18, weight: 700, lineHeight: 1.3, use: "Featured-button text, key callouts" }
57
- body-lg: { size: 16, weight: 500, lineHeight: 1.5, use: "Standard reading text on data screens" }
58
- body: { size: 14, weight: 500, lineHeight: 1.34, use: "Default body text; 500 not 400" }
59
- body-tight: { size: 13, weight: 500, lineHeight: 1.34, use: "Compact labels" }
60
- caption: { size: 12, weight: 500, lineHeight: 1.34, use: "Metadata, helper text" }
61
- caption-sm: { size: 10, weight: 500, lineHeight: 1, use: "Disclosures, smallest labels" }
62
- button: { size: 16, weight: 700, lineHeight: 1, tracking: -1, use: "All CTAs are 700" }
63
- financial-amount: { size: 24, weight: 700, lineHeight: 1, use: "Comma-grouped, won unit follows in 500" }
64
- spacing: { xs: 4, sm: 8, md: 16, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
65
- rounded: { sm: 2, md: 4, lg: 8, full: 9999 }
66
- shadow:
67
- soft: "rgba(0,0,0,0.08) 0px 1px 1px 0px"
68
- standard: "rgba(0,0,0,0.12) 0px 2px 5px 0px"
69
- elevated: "rgba(0,0,0,0.15) 0px 4px 9px 0px"
70
- modal: "rgba(0,0,0,0.19) 0px 17px 50px 0px"
71
- components_harvested: true
72
- components:
73
- button-primary: { type: button, bg: "#04c584", fg: "#ffffff", radius: "2px", height: "42px", padding: "12px 24px", font: "16px / 700", hover: "bg #10df99 (lightens)", use: "Primary CTA on data/transactional flows" }
74
- button-primary-large: { type: button, bg: "#04c584", fg: "#ffffff", radius: "2px", height: "56px", padding: "16px 32px", font: "18px / 700", hover: "bg #10df99", use: "Hero CTA on landing surfaces" }
75
- button-ghost: { type: button, bg: "#ffffff", fg: "#04c584", border: "1px solid #04c584", radius: "2px", padding: "12px 24px", font: "16px / 700", hover: "bg #f3fdfa mint tint", use: "Secondary action paired with primary" }
76
- button-neutral: { type: button, bg: "#f5f5f5", fg: "#434444", radius: "2px", padding: "12px 24px", font: "16px / 700", hover: "bg #e1e1e1", use: "Cancel / dismiss" }
77
- button-disabled: { type: button, bg: "#e1e1e1", fg: "#acacac", radius: "2px", font: "16px / 700", use: "Disabled state" }
78
- input-text: { type: input, bg: "#ffffff", fg: "#434444", border: "1px solid #e1e1e1", radius: "2px", height: "48px", padding: "0 16px", font: "16px / 500", focus: "border #10df99 + bg #f3fdfa", use: "Default text input" }
79
- input-amount: { type: input, bg: "#ffffff", fg: "#2b2b2b", border: "2px solid #f5f5f5", radius: "2px", height: "56px", padding: "0 16px", font: "22px / 700", focus: "border #10df99 + bg #f3fdfa", use: "Won-amount input, right-aligned, money as heading" }
80
- card-data: { type: card, bg: "#ffffff", border: "1px solid #e1e1e1", radius: "2px", padding: "20px 24px", shadow: "rgba(0,0,0,0.12) 0px 2px 5px 0px", use: "Recommendation/transaction/summary cards" }
81
- card-highlight: { type: card, bg: "#f3fdfa", border: "1px solid #10df99", radius: "2px", padding: "20px 24px", use: "Selected/recommended-pick in comparison lists" }
82
- status-pill: { type: badge, bg: "#f3fdfa", fg: "#04c584", radius: "41px", padding: "4px 10px", font: "12px / 500", use: "Filter chips on recommendation pages" }
83
- badge-warning: { type: badge, bg: "#ffffff", fg: "#f56200", border: "1px solid #fd8700", radius: "2px", padding: "2px 8px", font: "12px / 700", use: "Rate-warning, expiry indicators" }
84
- badge-negative: { type: badge, bg: "#ffffff", fg: "#fe493d", border: "1px solid #fe493d", radius: "2px", padding: "2px 8px", font: "12px / 700", use: "Overdue, declined indicators" }
85
- table-row: { type: listItem, bg: "#ffffff", fg: "#434444", border: "1px solid #e1e1e1 bottom", padding: "12px 16px", font: "14px / 500", use: "Transaction rows; alternates #fbfbfb, amounts right-aligned 14px/700 #2b2b2b positive #fe493d negative" }
86
- ---
87
-
88
- # Design System Inspiration of Banksalad
89
-
90
- ## 1. Visual Theme & Atmosphere
91
-
92
- Banksalad (뱅크샐러드) is the design language of a **trustworthy financial advisor that runs on data, not optimism**. Where Toss flattens money into one cheerful gesture and KakaoPay wraps it in Kakao yellow, Banksalad insists that *more information, clearly presented*, is the actual brand promise. The home page opens on a white canvas (`#ffffff`/`#fbfbfb`) with warm near-black text (`#2b2b2b` for headings, `#434444` for body — never pure `#000`), anchored by a saturated mint-green `#04c584` that does all the interactive work. The green is specifically a **salad-leaf green** (the brand name is literally "Bank + Salad" — financial data freshly tossed for you), warmer than Spotify's `#1db954` and far brighter than the corporate teal that legacy Korean banks default to.
93
-
94
- The single most distinctive geometric choice is the radius scale. The CSS bundle contains **81 occurrences of `border-radius: 2px`** and only 5 of 8px and 3 of 4px. Banksalad is **almost-flat**: 2px is just enough to take the harshness off a corner without softening anything into "app-friendly" plumpness. This is a deliberate rejection of the Toss/Kakao consumer-app idiom (12–16px). It tells the user: this is data, not a toy. The tabular density follows from the same conviction — cards pack rows of numbers tightly, and the 700-weight Pretendard digits never apologize for taking up space.
95
-
96
- Typography pairs **Pretendard** (the de-facto Korean modern sans, designed by Kil Hyun-jin, weight-axis variable) with **BM JUA** ("배민 주아체", Battle Grounds Jua — a rounded, friendly Korean display face) as an accent. Pretendard does 99% of the work; Jua appears only for marketing/landing display moments where Banksalad wants to feel warm rather than clinical. The default weight is **700** (160 of 304 weight declarations) — Banksalad numbers and headings are confident and chunky, with 500 as the secondary "emphasis on body" weight. Light weights (300) appear ~26 times — only for the largest hero numerals where the size carries the authority.
97
-
98
- **Key Characteristics:**
99
- - Pretendard + Apple SD Gothic Neo + Noto Sans KR font stack — Korean-native typography first
100
- - "BM JUA" as accent display font for landing/promotional moments only
101
- - Signature green `#04c584` (mint, salad-leaf) for all interactive moments
102
- - Hover/focus green `#10df99` (one shade brighter) — interaction makes things *lighter*, not darker
103
- - 2px radius dominance — the brand reads as data-tool, not consumer-app
104
- - Warm near-black `#2b2b2b`/`#434444` for type instead of `#000000`
105
- - Mint focus tint `#f3fdfa` on input backgrounds — the only branded background tint in the system
106
- - 700 weight as default for headings and financial figures; 500 for body emphasis
107
- - Subtle single-layer shadows `0 2px 5px rgba(0,0,0,.12)` — never colored, never theatrical
108
- - Teal-gray data palette (`#34464b`/`#5c818a`/`#1c6c73`/`#a7c7cf`) for chart series — cool, advisor-grade
109
-
110
- ## 2. Color Palette & Roles
111
-
112
- ### Primary
113
- - **Salad Green** (`#04c584`): Primary brand color, CTA backgrounds, links, accent rules, financial-status accents. Mint with a touch of grass — readable on white, energetic but not playful.
114
- - **Hover Green** (`#10df99`): Brighter mint applied on hover, focus border, and the resting state of less-prominent CTAs. Banksalad lightens to indicate interaction (opposite of the conventional darken-on-hover pattern).
115
- - **Mint Tint** (`#f3fdfa`): Focus background on inputs, success surface fill. The only branded tint in the system.
116
-
117
- ### Heading & Body
118
- - **Heading** (`#2b2b2b`): Warm near-black for headlines, prominent labels, and financial amounts. Never `#000`.
119
- - **Body** (`#434444`): Standard reading text. Filled-input text color.
120
- - **Body Light** (`#7b7b7b`): Captions, secondary descriptions.
121
- - **Placeholder** (`#999999`): Input placeholders, muted metadata.
122
- - **Disabled** (`#acacac` / `#c0c0c0`): Disabled text and icons.
123
-
124
- ### Surface & Border
125
- - **Page** (`#ffffff`): Default canvas.
126
- - **Surface Light** (`#fbfbfb`): Soft surface alternation, panel fills.
127
- - **Surface Neutral** (`#f5f5f5`): Dividers, separator backgrounds, content shelf fills (most-used neutral after green).
128
- - **Border Input** (`#e1e1e1`): Default input border, divider line.
129
- - **Surface Mint** (`#f3fdfa`): Success-state surface fill.
130
-
131
- ### Data / Chart Palette (teal-slate family)
132
- - **Deep Slate** (`#0b0c0c`): Maximum-depth axis labels.
133
- - **Teal-Slate 900** (`#333a44`): Primary chart series.
134
- - **Teal-Slate 800** (`#34464b`): Secondary chart series, table headers.
135
- - **Teal-Slate 700** (`#436068`): Tertiary chart.
136
- - **Teal 600** (`#1c6c73`): Highlighted data point.
137
- - **Teal-Gray 500** (`#5c818a`): Subdued data, legend.
138
- - **Teal 400** (`#318b93`): Mid-range fills.
139
- - **Pale Teal** (`#a7c7cf`): Background fills for chart bands.
140
-
141
- The teal-slate family is intentionally **cooler than the brand green**, so that chart series read as neutral data rather than as branded surfaces. Banksalad's green is for interaction; teal-slate is for information.
142
-
143
- ### Semantic
144
- - **Error Red** (`#fe493d`): Strong error states, blocking validation.
145
- - **Error Soft** (`#ff8a84`): Light error tint, secondary error indicators.
146
- - **Warning Orange** (`#fd8700`): Warning emphasis (rate spikes, expiry).
147
- - **Warning Deep** (`#f56200`): Highest-severity warning.
148
- - **Warning Light** (`#ff9900`): Soft warning highlights.
149
- - **Info Blue** (`#0099ff`): External links, info notices (used sparingly — green is the default link color).
150
- - **Success Green** (`#04c584` / `#10df99` / `#13bd7e`): Success uses brand green; there is no separate success hue.
151
-
152
- ## 3. Typography Rules
153
-
154
- ### Font Family
155
- - **Primary**: `Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif`
156
- - **Display Accent**: `"BM JUA", sans-serif` — reserved for marketing-landing headlines where a warm, rounded Korean voice is wanted (rare; default to Pretendard)
157
- - Variable-axis Pretendard supplies 300/400/500/700/800/900 weights as needed; subset woff2 files for ExtraBold (800), Bold (700), Medium (500), Regular (400) are preloaded on the home page
158
-
159
- ### Hierarchy
160
-
161
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
162
- |---|---|---|---|---|---|---|
163
- | Hero Display | Pretendard | 52px | 700 | 64px (1.23) | -1px | Largest landing headline; sometimes Jua for marketing warmth |
164
- | Display Large | Pretendard | 48px | 700 | 1.2 | -1px | Secondary hero |
165
- | Display | Pretendard | 38–44px | 700 | 1.25 | -1px | Section-opening figures (balances, scores) |
166
- | Section Heading | Pretendard | 32–36px | 700 | 1.3 | -0.5px | Marketing section titles |
167
- | Heading 1 | Pretendard | 28px | 700 | 32px | normal | In-app section titles |
168
- | Heading 2 | Pretendard | 22–24px | 700 | 28px | normal | Card titles, panel headings |
169
- | Heading 3 | Pretendard | 20px | 700 | 24px | normal | Sub-card headings |
170
- | Subhead | Pretendard | 18px | 700 | 1.3 | normal | Featured-button text, key callouts |
171
- | Body Large | Pretendard | 16px | 500 | 1.5 | normal | Standard reading text on data screens (700 for emphasis) |
172
- | Body | Pretendard | 14px | 500 | 1.34 | normal | Default body text; 500 weight, not 400 |
173
- | Body Tight | Pretendard | 13px | 500 | 1.34 | normal | Compact labels |
174
- | Caption | Pretendard | 12px | 500 | 1.34 | normal | Metadata, helper text |
175
- | Caption Small | Pretendard | 10px | 500 | 1 | normal | Disclosures, smallest labels |
176
- | Button | Pretendard | 16–18px | 700 | tight | -1px on display CTAs | All CTAs are 700 |
177
- | Financial Amount | Pretendard | 20–36px | 700 | 1 | normal | Always 700, comma-grouped, won unit follows in 500 |
178
-
179
- ### Principles
180
- - **700 is the default for everything that matters.** Headings, CTAs, and financial amounts. 500 is for body text. 400 is rare. There is no "400 headline" in Banksalad.
181
- - **Pretendard everywhere.** Banksalad does not mix sans families. Jua is a *single* exception, only for warm marketing display.
182
- - **Korean and Latin are co-equal.** Pretendard's optical metrics align Korean (한글) and Latin in the same line; never assume English is primary.
183
- - **Tight letter-spacing at display.** Hero headlines and 18px+ CTAs use `-1px` tracking to compress for density.
184
- - **Numerals as headings.** Financial amounts at 20–36px / 700 are treated as headings, not body — they get the same hierarchical weight as page titles.
185
- - **Lightweight body is forbidden.** 300 only appears on display sizes where the size itself carries hierarchy (52px hero numerals); never on body text.
186
-
187
- ## 4. Component Stylings
188
-
189
- ### Buttons
190
-
191
- **Primary CTA (Salad Green)**
192
- - Background: `#04c584`
193
- - Text: `#ffffff`
194
- - Border: none
195
- - Radius: 2px
196
- - Padding: 12px 24px
197
- - Height: 42px (line-height-driven)
198
- - Font: 16px / 700 / Pretendard
199
- - Hover: background `#10df99` (lightens — opposite of convention)
200
- - Use: Primary CTA on data tables, recommendation rows, transactional flows ("내 카드 추천 받기", "신청하기")
201
-
202
- **Primary CTA — Large Display**
203
- - Background: `#04c584`
204
- - Text: `#ffffff`
205
- - Border: none
206
- - Radius: 2px
207
- - Padding: 16px 32px
208
- - Height: 56px
209
- - Font: 18px / 700 / Pretendard
210
- - Letter-spacing: -1px
211
- - Hover: `#10df99`
212
- - Use: Hero CTA on landing surfaces ("앱 다운로드", "지금 시작하기")
213
-
214
- **Primary CTA — Hover-Inverted (Retry)**
215
- - Background: `#10df99` (default lighter)
216
- - Text: `#ffffff`
217
- - Border: none
218
- - Radius: 2px
219
- - Padding: 10px 20px
220
- - Font: 14px / 500 / Pretendard
221
- - Hover: background `#04c584` (darkens — the one place Banksalad uses the darken pattern)
222
- - Use: Secondary retry / "다시 시도" actions where the resting state is a softer mint
223
-
224
- **Ghost / Outlined**
225
- - Background: `#ffffff`
226
- - Text: `#04c584`
227
- - Border: 1px solid `#04c584`
228
- - Radius: 2px
229
- - Padding: 12px 24px
230
- - Font: 16px / 700 / Pretendard
231
- - Hover: background `#f3fdfa` (mint tint)
232
- - Use: Secondary actions paired with a Primary CTA
233
-
234
- **Neutral / Cancel**
235
- - Background: `#f5f5f5`
236
- - Text: `#434444`
237
- - Border: none
238
- - Radius: 2px
239
- - Padding: 12px 24px
240
- - Font: 16px / 700 / Pretendard
241
- - Hover: background `#e1e1e1`
242
- - Use: Cancel / "취소" / dismiss actions
243
-
244
- **Disabled**
245
- - Background: `#e1e1e1`
246
- - Text: `#acacac`
247
- - Border: none
248
- - Radius: 2px
249
- - Font: 16px / 700 / Pretendard
250
- - Use: Disabled state (form incomplete, retry cooling down)
251
-
252
- **Link Button (Inline Text Link)**
253
- - Background: transparent
254
- - Text: `#04c584`
255
- - Border: none
256
- - Padding: 0
257
- - Font: 14px / 500 / Pretendard
258
- - Hover: text-decoration: underline
259
- - Use: Inline links within content ("자세히 보기"), table-row jump links
260
-
261
- ### Cards & Containers
262
-
263
- **Data Card (Default)**
264
- - Background: `#ffffff`
265
- - Border: 1px solid `#e1e1e1` (some surfaces use no border + shadow only)
266
- - Radius: 2px
267
- - Padding: 20px 24px
268
- - Shadow: `0 2px 5px rgba(0, 0, 0, 0.12)`
269
- - Use: Recommendation rows, transaction cards, account summary blocks
270
-
271
- **Card — Soft Variant**
272
- - Background: `#fbfbfb`
273
- - Border: none
274
- - Radius: 8px
275
- - Padding: 24px
276
- - Shadow: `0 2px 8px rgba(0, 0, 0, 0.1)`
277
- - Use: Marketing/landing feature cards (the rare 8px-radius case)
278
-
279
- **Card — Highlight (Selected)**
280
- - Background: `#f3fdfa`
281
- - Border: 1px solid `#10df99`
282
- - Radius: 2px
283
- - Padding: 20px 24px
284
- - Use: Selected state in product comparison lists (cards/loans), recommended-pick highlight
285
-
286
- ### Inputs & Forms
287
-
288
- **Text Input (Default)**
289
- - Background: `#ffffff`
290
- - Text: `#999999` (placeholder) / `#434444` (filled)
291
- - Border: 1px solid `#e1e1e1`
292
- - Radius: 2px
293
- - Padding: 0 16px
294
- - Height: 48px
295
- - Font: 16px / 500 / Pretendard
296
-
297
- **Text Input — Focus**
298
- - Background: `#f3fdfa`
299
- - Text: `#434444`
300
- - Border: 1px solid `#10df99`
301
- - Radius: 2px
302
- - Use: Active typing state — the mint tint is the only branded background fill in the system
303
-
304
- **Text Input — Error**
305
- - Background: `#ffffff`
306
- - Text: `#434444`
307
- - Border: 1px solid `#fe493d`
308
- - Radius: 2px
309
- - Error message below: 12px / 500 / `#fe493d`
310
- - Use: Validation failure state
311
-
312
- **Amount Input (Financial)**
313
- - Background: `#ffffff`
314
- - Text: `#2b2b2b`
315
- - Border: 2px solid `#f5f5f5`
316
- - Radius: 2px
317
- - Padding: 0 16px
318
- - Height: 56px
319
- - Font: 22px / 700 / Pretendard (right-aligned)
320
- - Use: Specialized input for entering won amounts — heavier border (2px), bigger type, right-aligned, 700 weight; treats money input as a heading not a form field
321
-
322
- ### Badges & Tags
323
-
324
- **Status Pill (Brand)**
325
- - Background: `#f3fdfa`
326
- - Text: `#04c584`
327
- - Border: none
328
- - Radius: 41px (rare pill — used only on tag chips, not buttons)
329
- - Padding: 4px 10px
330
- - Font: 12px / 500 / Pretendard
331
- - Use: Filter chips ("연회비 없음", "주유 할인") on card-recommendation pages
332
-
333
- **Status Badge (Warning)**
334
- - Background: `#ffffff`
335
- - Text: `#f56200`
336
- - Border: 1px solid `#fd8700`
337
- - Radius: 2px
338
- - Padding: 2px 8px
339
- - Font: 12px / 700 / Pretendard
340
- - Use: Rate-warning, expiry, attention-needed indicators
341
-
342
- **Status Badge (Negative)**
343
- - Background: `#ffffff`
344
- - Text: `#fe493d`
345
- - Border: 1px solid `#fe493d`
346
- - Radius: 2px
347
- - Padding: 2px 8px
348
- - Font: 12px / 700 / Pretendard
349
- - Use: Overdue, declined, blocking-issue indicators
350
-
351
- ### Tables (Financial Data)
352
-
353
- **Table Header Row**
354
- - Background: `#f5f5f5`
355
- - Text: `#7b7b7b`
356
- - Border-bottom: 1px solid `#e1e1e1`
357
- - Padding: 12px 16px
358
- - Font: 13px / 700 / Pretendard / uppercase letter-spacing 0.05em
359
- - Use: Column headers on transaction lists, fee schedules
360
-
361
- **Table Body Row**
362
- - Background: `#ffffff` (alternates with `#fbfbfb` on dense tables)
363
- - Text: `#434444`
364
- - Border-bottom: 1px solid `#e1e1e1`
365
- - Padding: 12px 16px
366
- - Font: 14px / 500 / Pretendard
367
- - Amounts right-aligned: 14px / 700 / `#2b2b2b` (positive) or `#fe493d` (negative)
368
- - Use: Transaction rows, line-item displays
369
-
370
- ### Charts & Data Viz
371
-
372
- **Chart Series Tokens**
373
- - Series 1: `#34464b` (primary)
374
- - Series 2: `#5c818a` (secondary)
375
- - Series 3: `#1c6c73` (tertiary)
376
- - Series 4: `#a7c7cf` (quaternary / pale)
377
- - Highlight: `#04c584` (always reserved for "your value" / user's own data point)
378
- - Negative: `#fe493d`
379
- - Positive trend: `#04c584`
380
-
381
- **Axis & Gridlines**
382
- - Axis label: 10–12px / 500 / `#7b7b7b`
383
- - Gridline: 1px dashed `#e1e1e1`
384
- - Background: `#ffffff` or `#fbfbfb`
385
-
386
- ### Navigation
387
-
388
- - Header: sticky white (`#ffffff`), no shadow at rest, 1px bottom border `#f5f5f5`
389
- - Logo: left, ~24–28px tall, brand wordmark in `#04c584` (or `#2b2b2b` mono variant)
390
- - Nav links: 14px / 500 / Pretendard / `#434444`, hover `#04c584`
391
- - Sign-in CTA: white background, `#2b2b2b` text, 1px solid `#d8dfe6` border, 16px radius, 6px 14px padding, 14px / 400 (the home-page header uses a softer 16px radius for the auth pill — exception to the 2px default; this is the only 16px-radius live observation in the captured DOM)
392
-
393
- ### Shadows
394
-
395
- | Level | Treatment | Use |
396
- |---|---|---|
397
- | Flat | none | Page background, inline elements |
398
- | Soft (L1) | `0 1px 1px rgba(0,0,0,.08)` | Subtle row separators |
399
- | Standard (L2) | `0 2px 5px rgba(0,0,0,.12)` | Default cards — most common (~38 occurrences) |
400
- | Elevated (L3) | `0 4px 9px rgba(0,0,0,.15)` | Dropdowns, popovers |
401
- | Deep (L4) | `0px 2px 8px rgba(0,0,0,.1)` | Floating panels |
402
- | Modal (L5) | `0 17px 50px rgba(0,0,0,.19)` | Modal dialogs |
403
- | Inset | `inset 0 1px 1px rgba(0,0,0,.12)` | Pressed-button / depressed input feel |
404
-
405
- ---
406
-
407
- **Verified:** 2026-05-13 (omd:add-reference CREATE mode)
408
- **Tier 1 sources:** banksalad.com home (live HTML — Pretendard + Jua preload, 16px-radius sign-in pill via playwright DOM); webview-cdn.banksalad.com/.../v2.5c10981711a65fe446400c6ecec36a221b1c3e9e.bundle.css (865 KB CSS bundle — 81× `border-radius: 2px`, primary CTA `#04c584` rule, input focus `#10df99`/`#f3fdfa`, full color-frequency map); blog.banksalad.com/tech/banksalad-product-language-ios/ (BPL principle quote); github.com/banksalad (styleguide org confirmed).
409
- **Tier 2 sources:** getdesign.md/banksalad — **no record** ("No designs found for 'banksalad'"). styles.refero.design/?q=banksalad — **no record** (search returns no banksalad cards). Tier 2 unavailable; Tier 1 treated as authoritative.
410
- **Conflicts unresolved:** none. (Single playwright DOM observation of 16px-radius on the sign-in header pill is documented as an exception in §4 Navigation rather than treated as a token-system conflict — the bundle's overwhelming 81× 2px frequency is the system default.)
411
- **Earlier gap:** none — this is CREATE.
412
-
413
- ## 5. Layout Principles
414
-
415
- ### Spacing System
416
- - Base unit: 4px
417
- - Scale: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px, 64px
418
- - Card internal padding: 20px / 24px (slightly tighter than Toss's 20px-horizontal default — Banksalad packs more data)
419
- - Table-row vertical padding: 12px (denser than consumer apps)
420
-
421
- ### Grid & Container
422
- - Marketing/landing: max content width ~1080–1200px, centered
423
- - App / data surfaces: full-width with 16–24px gutters; tables go edge-to-edge on mobile
424
- - Card-recommendation lists: single-column on mobile, 2–3 column grid on desktop
425
- - Charts: full-width within their card container, never bleed outside
426
-
427
- ### Whitespace Philosophy
428
- - **Density is the brand.** Where Toss says "breathing room for money", Banksalad says "more facts visible without scrolling". A balance, a comparison rate, an interest rate, and three filter chips can coexist in one card.
429
- - **Section rhythm by surface fill.** White (`#ffffff`) and off-white (`#fbfbfb`) sections alternate quietly — not for drama, but to chunk dense data into scannable bands.
430
- - **Tight gaps inside, generous gaps outside.** Inside a comparison card, rows sit on 12px vertical gaps. Between cards, 24–32px. The hierarchy of grouping is communicated through gap-size alone.
431
-
432
- ### Border Radius Scale
433
- - **2px (dominant — 81 occurrences in CSS)**: Buttons, inputs, cards, badges, banners. The signature.
434
- - 4px: Small badges, inline pills.
435
- - 8px: Soft marketing cards (rare).
436
- - 10–12px: Promotional banner corners (rare).
437
- - 30–41px: Filter pills, tag chips, avatar circles.
438
- - 50%: Avatars, icon backdrops.
439
-
440
- Banksalad's 2px is a typographic-engineering commitment: pixel rounding sharp enough to look engineered, soft enough to not draw blood. Any radius ≥ 12px feels Toss-ish and is reserved for explicitly marketing-warmth contexts.
441
-
442
- ## 6. Depth & Elevation
443
-
444
- | Level | Treatment | Use |
445
- |---|---|---|
446
- | Flat (L0) | No shadow | Page background, inline elements |
447
- | Soft (L1) | `0 1px 1px rgba(0,0,0,.08)` | Subtle row lift, list-item separators |
448
- | Standard (L2) | `0 2px 5px rgba(0,0,0,.12)` | Default cards — by far the most common (~38 occurrences) |
449
- | Elevated (L3) | `0 4px 9px rgba(0,0,0,.15)` | Dropdowns, hover-elevated cards |
450
- | Deep (L4) | `0px 2px 8px rgba(0,0,0,.1)` | Floating action panels |
451
- | Modal (L5) | `0 17px 50px rgba(0,0,0,.19)` | Dialog modals, account-switch overlays |
452
- | Inset (L-1) | `inset 0 1px 1px rgba(0,0,0,.12)` | Pressed button state, depressed input visual |
453
- | Halo | `0 0 2px rgba(0,0,0,.26)` | Thin outline on overlay menus and popovers |
454
-
455
- **Shadow Philosophy.** Shadows are **always neutral and single-layer.** No colored shadows, no parallax stacks. Where Stripe brands its shadows in navy and Toss uses near-zero shadows for clinical clarity, Banksalad sits between — visible enough that cards lift off the surface, restrained enough that the data inside is what the eye lands on. The signature `0 2px 5px rgba(0,0,0,.12)` is a small, low-cost lift used 38× in the bundle.
456
-
457
- ## 7. Do's and Don'ts
458
-
459
- ### Do
460
- - Use `#04c584` for every interactive moment — CTAs, links, focus accents, "your data point" on charts
461
- - Use `#10df99` for hover (it's *brighter* than `#04c584` — Banksalad lightens on interaction)
462
- - Use `#f3fdfa` mint tint on input focus background — the only branded surface tint in the system
463
- - Keep border-radius at 2px for buttons, inputs, cards, badges — the system's geometric signature
464
- - Use Pretendard with the full Korean fallback stack; 700 as default weight for headings and CTAs
465
- - Use `#2b2b2b`/`#434444` warm near-blacks for type instead of `#000000`
466
- - Use the teal-slate family (`#34464b`/`#5c818a`/`#1c6c73`/`#a7c7cf`) for chart series — cooler than brand green by design
467
- - Use `#04c584` only for "your value" on a chart — never as a generic data fill
468
- - Right-align financial amounts in tables; use 700 weight for amounts even at 14px
469
- - Use comma-separated won amounts with the currency unit in 500 weight (`12,400,000원`)
470
-
471
- ### Don't
472
- - Don't use Toss's 12px+ rounded corners — Banksalad is 2px; 8px is the soft-marketing exception
473
- - Don't use Kakao yellow, KakaoPay yellow, or any warm accent for primary interaction — green is the sole interactive hue
474
- - Don't use BM JUA inside the app — Jua is for marketing-landing display moments only
475
- - Don't use weight 400 for body — Banksalad's body weight is 500
476
- - Don't apply colored shadows (blue, green, branded) — shadows are always neutral black
477
- - Don't pad financial cards generously like Toss — Banksalad packs density; data is the aesthetic
478
- - Don't approximate currency amounts (`약 120만원`) on primary financial surfaces — bare numerals with commas only
479
- - Don't use `#0099ff` info-blue for default links — green is the default link color; blue is reserved for *external* references
480
- - Don't use Pretendard 300 on body — light weights only at hero display sizes (52px+)
481
- - Don't sprinkle the brand green on chart series — green is for interaction, teal-slate is for data
482
-
483
- ## 8. Responsive Behavior
484
-
485
- ### Breakpoints
486
- | Name | Width | Key Changes |
487
- |---|---|---|
488
- | Mobile | <600px | Single column, full-width tables (horizontal scroll if needed), 16px gutters |
489
- | Tablet | 600–1024px | 2-column card grids, 20px gutters |
490
- | Desktop | 1024–1280px | Full marketing layout, 3-column feature grids |
491
- | Large | >1280px | Centered content max-width ~1200px |
492
-
493
- ### Touch Targets
494
- - Buttons minimum 42px height (default), 56px for hero display CTAs
495
- - Table rows minimum 44px (slightly denser than 48px standard — Banksalad accepts a tighter tap)
496
- - Filter pill chips: 28–32px height
497
- - Input minimum 48px height; amount-input 56px
498
-
499
- ### Collapsing Strategy
500
- - Hero: 52px → 36px on mobile, weight 700 maintained
501
- - Marketing 3-col feature grids → 2-col → single column
502
- - Comparison tables: maintain table form on tablet, switch to stacked cards on mobile (each row becomes a card with key/value pairs)
503
- - Charts: full-width, maintain aspect ratio, axis-label font drops 12px → 10px on mobile
504
- - Filter chip rows: horizontal scroll (no wrap) on mobile to preserve the chip rhythm
505
-
506
- ### Image Behavior
507
- - Card/product logos: 24–40px, consistent square framing within rows
508
- - Chart screenshots in marketing: full-width on mobile, 2-col on desktop
509
- - Decorative illustrations: rare; when used, locked to a single accent illustration per landing surface (no illustration overload — data is the visual)
510
-
511
- ## 9. Agent Prompt Guide
512
-
513
- ### Quick Color Reference
514
- - Primary CTA: Salad Green (`#04c584`)
515
- - Hover: Hover Green (`#10df99`)
516
- - Page background: White (`#ffffff`)
517
- - Surface alt: Off-white (`#fbfbfb`)
518
- - Neutral surface: (`#f5f5f5`)
519
- - Heading text: Warm near-black (`#2b2b2b`)
520
- - Body text: (`#434444`)
521
- - Caption: (`#7b7b7b`)
522
- - Placeholder: (`#999999`)
523
- - Border: (`#e1e1e1`)
524
- - Focus background tint: Mint (`#f3fdfa`)
525
- - Chart series: `#34464b` / `#5c818a` / `#1c6c73` / `#a7c7cf`
526
- - Error: `#fe493d`
527
- - Warning: `#fd8700` / `#f56200`
528
-
529
- ### Example Component Prompts
530
- - "Create a Banksalad-style primary CTA: `#04c584` background, white text, 2px border-radius (not 12px), 700-weight Pretendard at 16px, 12px 24px padding, 42px height. Hover lightens to `#10df99`."
531
- - "Design a card-recommendation row: white background, 1px solid `#e1e1e1` border, 2px radius, 20px 24px padding, shadow `0 2px 5px rgba(0,0,0,.12)`. Card logo 32px left, title 16px/700 `#2b2b2b`, three filter chips below (`#f3fdfa` bg, `#04c584` text, 41px radius, 12px/500), annual-fee figure right-aligned 18px/700 with '원' suffix in 500."
532
- - "Build a focused amount input: 2px border `#f5f5f5`, on focus border `#10df99` and background `#f3fdfa`. Text 22px/700 right-aligned, `#2b2b2b`, won unit in 500 weight following the digits."
533
- - "Create a data chart: white background, axis labels 10px/500 `#7b7b7b`, gridlines 1px dashed `#e1e1e1`. Series 1 `#34464b`, series 2 `#5c818a`, series 3 `#1c6c73`. User's own data point in `#04c584` to make 'your value' pop against neutral teal-slate."
534
- - "Design a transaction table row: alternating `#ffffff` / `#fbfbfb` background, 12px 16px padding, 1px solid `#e1e1e1` bottom border. Date column 14px/500 `#7b7b7b`, merchant 14px/500 `#434444`, amount right-aligned 14px/700 — `#2b2b2b` for positive, `#fe493d` for negative."
535
-
536
- ### Iteration Guide
537
- 1. **Default radius is 2px.** If the AI produces 12px or 16px corners, reject — that's Toss, not Banksalad.
538
- 2. **Default weight is 700 for anything important.** Headings, CTAs, financial amounts. 500 for body. Never 400 for body.
539
- 3. **Green is for interaction only.** Never use `#04c584` as a generic background fill or decorative element. It always means: the user can tap this, or this is the user's own data.
540
- 4. **Hover lightens.** `#04c584` → `#10df99` on hover (the opposite of conventional darken-on-hover). This is a signature.
541
- 5. **Shadows are neutral and single-layer.** `0 2px 5px rgba(0,0,0,.12)` is the workhorse. No colored shadows.
542
- 6. **Chart series are teal-slate, not green.** `#34464b` / `#5c818a` / `#1c6c73` / `#a7c7cf`. Reserve green for the user's own data point.
543
- 7. **Pretendard is non-negotiable.** Always include the full Korean fallback stack. Jua only for marketing display.
544
-
545
- ---
546
-
547
- ## 10. Voice & Tone
548
-
549
- Banksalad speaks like a **trustworthy financial advisor who happens to read the regulations carefully** — calm, factual, slightly older-feeling than Toss, never the "friend with money" voice that consumer-app fintech defaults to. Where Toss says *"송금 완료"*, Banksalad says *"내 신용점수가 5점 올랐어요. 이번 달 카드 결제 이력이 안정적이었기 때문이에요."* The voice explains *why* the number changed, not just that it changed. Korean is the primary register; English UI strings are translations, not parity.
550
-
551
- | Context | Tone |
552
- |---|---|
553
- | CTAs | Imperative, concrete outcome. `내 카드 찾기`, `대출 한도 확인하기`, `신청하기`. Never `시작하기 →` with an arrow flourish. |
554
- | Section headlines | Statement of fact, not a hook. `이번 달 지출 분석` not `이번 달, 얼마나 썼는지 보러 갈까요?`. |
555
- | Recommendations | Justified. Every recommended card or loan has a one-sentence reason next to it (`연 30만원 이상 절약될 수 있어요`). Never a bare ranked list. |
556
- | Financial figures | Bare numerals with commas. `1,240,000원`. Approximations (`약 124만원`) are forbidden on primary surfaces. |
557
- | Success messages | One-line confirmation + the relevant figure. `신용점수가 855점으로 올랐어요.` No emoji, no exclamation. |
558
- | Error / validation | Specific cause + one-line action. `주민등록번호가 일치하지 않아요. 다시 확인해주세요.` Never `오류가 발생했습니다`. |
559
- | Empty states | Explain the *why*, then suggest one next step. `아직 연동된 카드가 없어요. 카드를 연동하면 자동으로 지출 분석이 시작돼요.` |
560
- | Legal / disclosure | Formal `~합니다` endings. Pinned at the bottom of recommendation cards. Treated as part of the product, not a footer afterthought. |
561
- | Health-asset (DNA, screening) | Same calm advisor voice as finance. No marketing exuberance about "discovering your DNA". Just `이번 검사로 18가지 항목을 확인할 수 있어요`. |
562
-
563
- **Forbidden phrases.** `오류가 발생했습니다`, `Oops`, `간단하게`, `최고의 ~`, `놓치지 마세요`, exclamation marks on routine CTAs, emoji on financial surfaces, approximations on money (`약 ~원`), `놀라운 절약` / "amazing savings" / superlative-driven recommendations. Banksalad's voice is the opposite of clickbait — the user came here to think about money, and the product should respect the seriousness of that intent.
564
-
565
- ## 11. Brand Narrative
566
-
567
- Banksalad is the consumer brand of **Rainist (레이니스트)**, founded in **2012 by Kim Tae-hoon (김태훈)** — a Sogang University graduate who started the company inside the Smilegate game-studio incubator and whose **founding team manually classified 16 hours a day of Korean financial-product data to build the first comparison database** ([Hankyung 2019-03-12](https://www.hankyung.com/article/2019031275551)). The founding rejection was specific: every legacy Korean financial portal in 2012 (Bankrate-style aggregators, bank-run comparison pages) presented credit cards and loans in alphabetical lists optimized for the issuer, not the user. Kim Tae-hoon's stated thesis was *"정보 비대칭성을 해소해 누구나 똑똑해지는 세상을 만들겠다"* — "resolve information asymmetry so anyone can become smart [about their own money]" (founder interviews, Korean press 2018–2019). The product's design language follows directly from that thesis: **more facts, clearly tiered, with the reason next to every recommendation.**
568
-
569
- Banksalad's monthly active users tripled to **1.5M in early 2019** ([Korea Herald 2019-02-22](http://www.koreaherald.com/view.php?ud=20190222000548)). The company raised a **₩45B ($37M USD) Series C at a ₩300B ($247M) valuation in 2019** ([Korea Herald 2019-08-28](https://www.koreaherald.com/article/2087712)) and has raised **$169.96M cumulatively** to date (PitchBook). Today the product spans credit-card recommendation, personal loans, mortgages, deposits/savings, and — uniquely — **a free DNA-based health-screening service** that extends the "manage your assets" framing from financial assets to health assets. The home-page tagline as of 2026-05-13 reads *"뱅크샐러드 \| 금융을 넘어 건강 자산까지"* ("Banksalad — from finance to health assets"), making that extension the brand's current positioning.
570
-
571
- The design system is internally called **BPL — Banksalad Product Language**, documented on the official tech blog ([blog.banksalad.com/tech/banksalad-product-language-ios](https://blog.banksalad.com/tech/banksalad-product-language-ios/)). BPL's most-quoted principle is *"Communication cost is most expensive. Code and Show first, argue after that."* BPL is implemented on iOS with LayoutDrivenUI + RxSwift, on Android in Kotlin, on Web through the CSS bundle this DESIGN.md was extracted from. The system explicitly avoids premature component abstraction — similar components stay independent, matching how designers structure their Figma libraries. The mint-green (`#04c584`), the 2px radius, the Pretendard 700 default, the teal-slate chart palette — all are BPL primitives.
572
-
573
- What Banksalad refuses: the cheerful consumer-app voice of Toss and KakaoPay (banksalad explains; it does not delight), the institutional-indigo of legacy Korean banks (which is why it picked green, not blue), the playful illustration of Kakao-family products (Banksalad does not use mascot characters), and the data-density of Bloomberg-terminal aesthetics (the tables are dense but the type is human-readable). Banksalad sits in a narrow middle: serious enough to be an advisor, modern enough to be the app a 26-year-old opens between subway stops.
574
-
575
- ## 12. Principles
576
-
577
- 1. **Show the number, then show the reason.** Every recommended card, loan, or asset comes with a one-sentence justification next to the figure. A ranked list without reasons is a violation of the brand. UI implication: every recommendation card must have a "justification line" slot in its component contract.
578
- 2. **Density is trust.** Where consumer-app fintech treats whitespace as luxury, Banksalad treats density as competence. A user who can see four comparison rows at once is being respected as a researcher. UI implication: card padding 20–24px, not 32px+. Tables ship as tables, not as stacked single-rows.
579
- 3. **Green is interaction, not decoration.** `#04c584` only appears where the user can act (CTA, link, focus, selection) or where the user's own data is shown ("your value" on a chart, "your score"). Never on a decorative gradient, never as a page-section background. UI implication: never use brand green as a fill that does not change on hover.
580
- 4. **2px is a philosophical commitment.** The sharp corner reads as data-tool; Toss/Kakao's 12–16px reads as consumer-toy. Banksalad chooses to look engineered. UI implication: do not import any consumer-app card with rounded corners as-is; re-corner to 2px.
581
- 5. **Numerals are headings.** Financial amounts at 20px+ are styled with the same hierarchical weight (700) as page titles. Money is information of the highest priority — it gets the typographic treatment of a heading, never of body. UI implication: amounts use heading-class typography tokens.
582
- 6. **The reason for the recommendation is part of the product.** Disclaimers, comparison criteria, and rate sources are not legal footers — they are pinned inside the recommendation card, in the same visual frame as the recommendation itself. UI implication: every recommendation component reserves a `disclosure` slot that is always rendered, not collapsed-by-default.
583
- 7. **Korean and Latin numerals must align.** Pretendard's optical alignment between 한글 and Latin numerals is non-negotiable — a column of `1,240,000원` and `$1,240` should read as one column, not two scripts arguing. UI implication: never substitute a Latin-only font for numeric display; Pretendard handles both.
584
- 8. **Charts use teal-slate, not brand green, for the field.** Reserving green for the user's own value makes the user's position immediately legible against neutral series. UI implication: chart `seriesColors` defaults to `[#34464b, #5c818a, #1c6c73, #a7c7cf]`; user's series defaults to `#04c584`.
585
- 9. **Approximations are a betrayal.** `약 ~원` on a primary money surface tells the user the product does not actually know the number. Banksalad's brand promise is information clarity; rounded figures are forbidden where the precise figure exists. UI implication: financial-amount components do not accept a `round: true` flag.
586
-
587
- ## 13. Personas
588
-
589
- *Personas below are fictional archetypes informed by publicly observable Banksalad user segments (Korean millennials managing credit-card portfolios, freelancers comparing loan products, mid-life users tracking health-and-finance side by side), not individual people.*
590
-
591
- **박지혜 (Park Ji-hye), 31, Seoul.** Senior designer at a Seoul-based scaleup. Opens Banksalad once a week to scan her credit-card spend-by-category report. Switches cards every 18 months based on whichever one Banksalad's recommendation engine surfaces with the best annual-savings figure for her actual usage pattern — *not* the one with the flashiest sign-up bonus. Reads the one-sentence justification under every recommendation before tapping; would close the app permanently if it ever shipped a "best card 🔥" list without reasons.
592
-
593
- **김상민 (Mr. Kim), 47, Daegu.** Self-employed, runs a small import business. Uses Banksalad primarily for comparing business-friendly credit cards and tracking interest-rate movements on his three commercial loans. Trusts the product because the rate comparison shows the source date and the underlying assumption (`연 환산 기준`). Pays attention to the disclosure text inside each recommendation card — would lose trust immediately if a recommendation appeared without its rate basis.
594
-
595
- **이수연 (Lee Su-yeon), 28, Seongnam.** UX researcher. Uses Banksalad for two unrelated reasons: monthly spend analysis, and the free DNA-based health screening. Finds the same voice across both surfaces (calm, factual, advisor-tone) reassuring — it makes the health-screening feel like an extension of "manage your assets" rather than a sudden pivot. Compares Banksalad's spend analysis to Toss's and prefers Banksalad's because *"Toss는 다 정리되어 있고 깔끔한데, 뱅크샐러드는 왜 그런지를 알려줘요"* (illustrative paraphrase) — Toss tidies, Banksalad explains.
596
-
597
- **조현우 (Cho Hyun-woo), 39, Busan.** Mid-career operations manager. Reviews Banksalad's monthly credit-report widget — has been watching his credit score climb from 820 to 868 over 14 months. Doesn't tap CTAs; uses Banksalad strictly as a dashboard. Trusts the green `#04c584` "your score" indicator on the score-trend chart because it always shows him *his* position against the teal-slate distribution of the population — the green-vs-teal distinction tells him at a glance which data is about him.
598
-
599
- ## 14. States
600
-
601
- | State | Treatment |
602
- |---|---|
603
- | **Empty (no linked accounts)** | White canvas. Single short paragraph in `#434444` body text explaining why the screen is empty (`아직 연동된 카드가 없어요. 카드를 연동하면 자동으로 지출 분석이 시작돼요.`). One primary CTA in Salad Green (`#04c584`, 2px radius). No illustration. |
604
- | **Empty (filter cleared)** | Single line of `#7b7b7b` caption (`조건에 맞는 결과가 없어요. 필터를 조정해주세요.`). No CTA — user adjusts filters themselves. |
605
- | **Empty (no transactions this period)** | Two-line message in `#434444` explaining the filter scope (`선택한 기간에 거래 내역이 없어요. 다른 기간을 선택하거나 카드 연동을 확인해보세요.`). |
606
- | **Loading (first paint)** | Skeleton blocks at `#f5f5f5` matching the final layout exactly. Financial amounts render as `--원` placeholders rather than skeleton bars — a skeleton bar that resolves to a number is disorienting; `--` is honest. 1s shimmer with 8% white highlight using a `linear-gradient` sweep. |
607
- | **Loading (refresh / in-place)** | Subtle `#04c584` 2px progress bar at top of the section. Previous values stay visible. Never block the table during refresh. |
608
- | **Error (inline field)** | `#fe493d` 1px border on the input, 12px error text below in `#fe493d` weight 500. One actionable sentence (`주민등록번호가 일치하지 않아요. 다시 확인해주세요.`). |
609
- | **Error (recommendation fetch failed)** | Inline banner inside the recommendation card area. `#fe493d` left border, white background, 14px `#434444` text explaining what failed + a `다시 시도하기` button in the retry-button style (`#10df99` resting → `#04c584` on hover). Never a generic toast. |
610
- | **Error (data freshness warning)** | Soft warning banner with `#fd8700` left accent bar, white background, 13px `#7b7b7b` text noting the data is N hours stale. Non-blocking — the user can still see the (possibly stale) figures. |
611
- | **Success (action confirmed)** | Inline confirmation row in `#f3fdfa` mint-tint background, `#04c584` 16px / 700 confirmation text, the relevant figure in 22px / 700 `#2b2b2b` below. No toast for important actions — they get their own confirmation surface. |
612
- | **Success (passive update)** | 3s auto-dismiss toast at top-right. `#2b2b2b` background (NOT brand green — green is reserved for interactive surfaces), white 14px / 500 text, 2px radius, shadow `0 2px 5px rgba(0,0,0,.12)`. No emoji. |
613
- | **Skeleton** | `#f5f5f5` blocks at exact final dimensions, 2px radius matching the component being loaded. 1s shimmer. Financial-amount slots show `--원`, not a bar. |
614
- | **Disabled** | Background `#e1e1e1`, text `#acacac`, 2px radius preserved. Cursor `not-allowed`. The geometry stays identical to the enabled state so re-enabling does not shift layout. |
615
- | **Pressed (button)** | Inset shadow `inset 0 1px 1px rgba(0,0,0,.12)` + background shifts by ~5% darker for the press duration. Returns instantly on release (no spring). |
616
-
617
- ## 15. Motion & Easing
618
-
619
- **Durations:**
620
-
621
- | Token | Value | Use |
622
- |---|---|---|
623
- | `motion-instant` | 0ms | State commits, checkbox flips, focus ring appearance |
624
- | `motion-fast` | 150ms | Hover, focus, button press overlays, inline value updates |
625
- | `motion-standard` | 250ms | Card expand, dropdown open, tab content switch, modal open |
626
- | `motion-slow` | 400ms | Page-level transitions, recommendation-card reveal animation |
627
- | `motion-data` | 600ms | Chart series draw-in, score-bar count-up — slower because the user needs time to read the number |
628
-
629
- **Easings:**
630
-
631
- | Token | Curve | Use |
632
- |---|---|---|
633
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Arriving — modals, dropdowns, sheets |
634
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
635
- | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions, chart draw-in |
636
- | `ease-data` | `cubic-bezier(0.25, 0.46, 0.45, 0.94)` | Score count-up, chart series — eases out gradually so the final value is the calm resting state |
637
-
638
- **Explicitly forbidden.** No spring overshoot anywhere. No bounce. No `cubic-bezier` with a middle control above `1.0`. Banksalad's voice is *advisor*, not *delighter* — spring-easing reads as a consumer app celebrating a transaction, which is the opposite of the brand promise. Where Toss licenses spring easing only for the money-moved checkmark, Banksalad does not license it at all.
639
-
640
- **Signature motions.**
641
-
642
- 1. **Score count-up.** When a credit-score or asset-total updates, the number animates from the previous value to the new value across `motion-data` (600ms) with `ease-data`. The duration is deliberately slow — the user is supposed to read the change, not see it flash. The Korean numeric separators (`,`) re-flow correctly during the count.
643
- 2. **Chart series draw-in.** Time-series charts draw left-to-right in `motion-data` with `ease-standard`. The user's own series (`#04c584`) is drawn *last*, so the eye lands on the user's own data after the surrounding distribution has been established.
644
- 3. **Recommendation card reveal.** When a fresh recommendation set loads, cards fade in with `motion-standard / ease-enter` from `opacity: 0; translateY(4px)`. Translate is intentionally small (4px, not 20px) — the cards arrive, they do not fly in.
645
- 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Score count-ups become instant value swaps. Chart draw-ins render their final state immediately. Banksalad remains fully usable; nothing in the product is information-dependent on motion.
646
-
647
- <!--
648
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
649
-
650
- Direct verification via WebFetch + curl (2026-05-13):
651
- - https://www.banksalad.com/ — confirms current tagline "뱅크샐러드 | 금융을 넘어 건강 자산까지"
652
- and the Pretendard + BM JUA font stack via preload <link> tags.
653
- - https://webview-cdn.banksalad.com/banksalad-web/static/dist/v2.5c10981711a65fe446400c6ecec36a221b1c3e9e.bundle.css
654
- (865 KB) — all token-level claims (#04c584 primary green, 2px dominant radius,
655
- Pretendard with full Korean fallback, 700 default weight, 0 2px 5px rgba(0,0,0,.12)
656
- standard shadow, input focus border #10df99 / background #f3fdfa).
657
- - https://blog.banksalad.com/tech/banksalad-product-language-ios/ — confirms
658
- the design system is internally called "BPL" (Banksalad Product Language)
659
- and the quoted principle "Communication cost is most expensive. Code and Show
660
- first, argue after that."
661
- - https://github.com/banksalad — confirms the official org and the
662
- banksalad/styleguide public repo.
663
-
664
- Brand facts via WebSearch (2026-05-13):
665
- - Hankyung 2019-03-12 — manual 16-hour/day data classification origin
666
- - Korea Herald 2019-02-22 — 1.5M MAU early 2019
667
- - Korea Herald 2019-08-28 — ₩45B Series C at ₩300B valuation
668
- - PitchBook — $169.96M total raised
669
-
670
- Founder mission quote "정보 비대칭성을 해소해 누구나 똑똑해지는 세상을 만들겠다"
671
- is attributed to Kim Tae-hoon per multiple Korean press interviews summarized
672
- in the WebSearch result; the exact phrasing is widely cited in Korean fintech
673
- coverage of Banksalad.
674
-
675
- Personas (§13) are fictional archetypes informed by publicly described
676
- Banksalad user segments (Korean millennials managing credit-card spend,
677
- self-employed users comparing rates, UX researchers using the health-asset
678
- extension, mid-career users using Banksalad as a passive dashboard). Names
679
- are illustrative; they do not refer to real people. Yi Su-yeon's paraphrase
680
- of Toss-vs-Banksalad voice in §13 is explicitly marked illustrative.
681
-
682
- Interpretive claims (e.g., "2px is a philosophical commitment", "green is for
683
- interaction, not decoration", "approximations are a betrayal") are editorial
684
- readings of BPL's observable design choices, not directly sourced Banksalad
685
- statements. They are anchored in the principle quote from BPL_iOS
686
- ("Communication cost is most expensive...") and the founder's mission
687
- ("resolve information asymmetry").
688
- -->