zugzbot 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (784) hide show
  1. package/.opencode/agents/sdd-coder.md +5 -4
  2. package/.opencode/agents/sdd-orchestrator.md +9 -8
  3. package/.opencode/agents/sdd-spec-writer.md +3 -4
  4. package/.opencode/commands/loop.md +1 -1
  5. package/.opencode/plugins/loop-enforcer.ts +0 -1
  6. package/.opencode/plugins/sdd-bridge.ts +1 -1
  7. package/.opencode/rules/sdd-global.md +9 -5
  8. package/.opencode/scripts/lint-charts.js +1 -2
  9. package/.opencode/skills/sdd-foundation-overview/SKILL.md +3 -4
  10. package/.opencode/skills/sdd-methodology/SKILL.md +8 -10
  11. package/.opencode/skills/sdd-quickstart/SKILL.md +5 -9
  12. package/.opencode/skills/shadcn-templates/SKILL.md +71 -15
  13. package/.opencode/templates/nextjs-shadcn/components.json +2 -1
  14. package/.opencode/tools/sdd_catalog.ts +335 -20
  15. package/.opencode/tools/sdd_core.ts +8 -6
  16. package/.opencode/tools/sdd_lucide.ts +112 -0
  17. package/README.md +1 -7
  18. package/opencode.json +0 -10
  19. package/package.json +1 -3
  20. package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
  21. package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
  22. package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
  23. package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
  24. package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
  25. package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
  26. package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
  27. package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
  28. package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
  29. package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
  30. package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
  31. package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
  32. package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
  33. package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
  34. package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
  35. package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
  36. package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
  37. package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
  38. package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
  39. package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
  40. package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
  41. package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
  42. package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
  43. package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
  44. package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
  45. package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
  46. package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
  47. package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
  48. package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
  49. package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
  50. package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
  51. package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
  52. package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
  53. package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
  54. package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
  55. package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
  56. package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
  57. package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
  58. package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
  59. package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
  60. package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
  61. package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
  62. package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
  63. package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
  64. package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
  65. package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
  66. package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
  67. package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
  68. package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
  69. package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
  70. package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
  71. package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
  72. package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
  73. package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
  74. package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
  75. package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
  76. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  77. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
  78. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
  79. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
  80. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
  81. package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
  82. package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
  83. package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
  84. package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
  85. package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
  86. package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
  87. package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
  88. package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
  89. package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
  90. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  91. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  92. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
  93. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
  94. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
  95. package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
  96. package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
  97. package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
  98. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  99. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
  100. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
  101. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
  102. package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
  103. package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
  104. package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
  105. package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
  106. package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
  107. package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
  108. package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
  109. package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
  110. package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
  111. package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
  112. package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
  113. package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
  114. package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
  115. package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
  116. package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
  117. package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
  118. package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
  119. package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
  120. package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
  121. package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
  122. package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
  123. package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
  124. package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
  125. package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
  126. package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
  127. package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
  128. package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
  129. package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
  130. package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
  131. package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
  132. package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
  133. package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
  134. package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
  135. package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
  136. package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
  137. package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
  138. package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
  139. package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
  140. package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
  141. package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
  142. package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
  143. package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
  144. package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
  145. package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
  146. package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
  147. package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
  148. package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
  149. package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
  150. package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
  151. package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
  152. package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
  153. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  154. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
  155. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
  156. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
  157. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
  158. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
  159. package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
  160. package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
  161. package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
  162. package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
  163. package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
  164. package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
  165. package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
  166. package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
  167. package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
  168. package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
  169. package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
  170. package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
  171. package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
  172. package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
  173. package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
  174. package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
  175. package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
  176. package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
  177. package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
  178. package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
  179. package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
  180. package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
  181. package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
  182. package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
  183. package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
  184. package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
  185. package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
  186. package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
  187. package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
  188. package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
  189. package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
  190. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  191. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
  192. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
  193. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
  194. package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
  195. package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
  196. package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
  197. package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
  198. package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
  199. package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
  200. package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
  201. package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
  202. package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
  203. package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
  204. package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
  205. package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
  206. package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
  207. package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
  208. package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
  209. package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
  210. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
  211. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
  212. package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
  213. package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
  214. package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
  215. package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
  216. package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
  217. package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
  218. package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
  219. package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
  220. package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
  221. package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
  222. package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
  223. package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
  224. package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
  225. package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
  226. package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
  227. package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
  228. package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
  229. package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
  230. package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
  231. package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
  232. package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
  233. package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
  234. package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
  235. package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
  236. package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
  237. package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
  238. package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
  239. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  240. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
  241. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  242. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  243. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
  244. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
  245. package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
  246. package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
  247. package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
  248. package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
  249. package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
  250. package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
  251. package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
  252. package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
  253. package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
  254. package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
  255. package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
  256. package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
  257. package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
  258. package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
  259. package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
  260. package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
  261. package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
  262. package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
  263. package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
  264. package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
  265. package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
  266. package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
  267. package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
  268. package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
  269. package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
  270. package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
  271. package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
  272. package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
  273. package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
  274. package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
  275. package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
  276. package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
  277. package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
  278. package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
  279. package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
  280. package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
  281. package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
  282. package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
  283. package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
  284. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  285. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  286. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
  287. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
  288. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
  289. package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
  290. package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
  291. package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
  292. package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
  293. package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
  294. package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
  295. package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
  296. package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
  297. package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
  298. package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
  299. package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
  300. package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
  301. package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
  302. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  303. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
  304. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
  305. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
  306. package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
  307. package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
  308. package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
  309. package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
  310. package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
  311. package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
  312. package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
  313. package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
  314. package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
  315. package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
  316. package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
  317. package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
  318. package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
  319. package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
  320. package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
  321. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  322. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  323. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
  324. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
  325. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
  326. package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
  327. package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
  328. package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
  329. package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
  330. package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
  331. package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
  332. package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
  333. package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
  334. package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
  335. package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
  336. package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
  337. package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
  338. package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
  339. package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
  340. package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
  341. package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
  342. package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
  343. package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
  344. package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
  345. package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
  346. package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
  347. package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
  348. package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
  349. package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
  350. package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
  351. package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
  352. package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
  353. package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
  354. package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
  355. package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
  356. package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
  357. package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
  358. package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
  359. package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
  360. package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
  361. package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
  362. package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
  363. package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
  364. package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
  365. package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
  366. package/.opencode/oh-my-design/design-md/line/README.md +0 -12
  367. package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
  368. package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
  369. package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
  370. package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
  371. package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
  372. package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
  373. package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
  374. package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
  375. package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
  376. package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
  377. package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
  378. package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
  379. package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
  380. package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
  381. package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
  382. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  383. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
  384. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
  385. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
  386. package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
  387. package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
  388. package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
  389. package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
  390. package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
  391. package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
  392. package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
  393. package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
  394. package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
  395. package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
  396. package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
  397. package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
  398. package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
  399. package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
  400. package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
  401. package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
  402. package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
  403. package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
  404. package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
  405. package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
  406. package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
  407. package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
  408. package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
  409. package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
  410. package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
  411. package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
  412. package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
  413. package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
  414. package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
  415. package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
  416. package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
  417. package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
  418. package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
  419. package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
  420. package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
  421. package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
  422. package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
  423. package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
  424. package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
  425. package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
  426. package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
  427. package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
  428. package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
  429. package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
  430. package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
  431. package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
  432. package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
  433. package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
  434. package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
  435. package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
  436. package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
  437. package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
  438. package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
  439. package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
  440. package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
  441. package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
  442. package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
  443. package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
  444. package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
  445. package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
  446. package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
  447. package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
  448. package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
  449. package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
  450. package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
  451. package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
  452. package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
  453. package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
  454. package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
  455. package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
  456. package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
  457. package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
  458. package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
  459. package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
  460. package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
  461. package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
  462. package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
  463. package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
  464. package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
  465. package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
  466. package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
  467. package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
  468. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  469. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
  470. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  471. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
  472. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  473. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
  474. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
  475. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
  476. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
  477. package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
  478. package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
  479. package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
  480. package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
  481. package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
  482. package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
  483. package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
  484. package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
  485. package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
  486. package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
  487. package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
  488. package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
  489. package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
  490. package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
  491. package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
  492. package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
  493. package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
  494. package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
  495. package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
  496. package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
  497. package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
  498. package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
  499. package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
  500. package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
  501. package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
  502. package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
  503. package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
  504. package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
  505. package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
  506. package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
  507. package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
  508. package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
  509. package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
  510. package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
  511. package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
  512. package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
  513. package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
  514. package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
  515. package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
  516. package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
  517. package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
  518. package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
  519. package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
  520. package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
  521. package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
  522. package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
  523. package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
  524. package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
  525. package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
  526. package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
  527. package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
  528. package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
  529. package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
  530. package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
  531. package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
  532. package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
  533. package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
  534. package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
  535. package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
  536. package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
  537. package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
  538. package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
  539. package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
  540. package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
  541. package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
  542. package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
  543. package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
  544. package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
  545. package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
  546. package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
  547. package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
  548. package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
  549. package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
  550. package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
  551. package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
  552. package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
  553. package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
  554. package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
  555. package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
  556. package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
  557. package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
  558. package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
  559. package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
  560. package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
  561. package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
  562. package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
  563. package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
  564. package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
  565. package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
  566. package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
  567. package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
  568. package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
  569. package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
  570. package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
  571. package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
  572. package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
  573. package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
  574. package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
  575. package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
  576. package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
  577. package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
  578. package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
  579. package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
  580. package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
  581. package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
  582. package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
  583. package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
  584. package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
  585. package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
  586. package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
  587. package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
  588. package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
  589. package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
  590. package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
  591. package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
  592. package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
  593. package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
  594. package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
  595. package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
  596. package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
  597. package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
  598. package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
  599. package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
  600. package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
  601. package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
  602. package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
  603. package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
  604. package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
  605. package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
  606. package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
  607. package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
  608. package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
  609. package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
  610. package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
  611. package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
  612. package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
  613. package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
  614. package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
  615. package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
  616. package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
  617. package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
  618. package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
  619. package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
  620. package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
  621. package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
  622. package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
  623. package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
  624. package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
  625. package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
  626. package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
  627. package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
  628. package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
  629. package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
  630. package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
  631. package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
  632. package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
  633. package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
  634. package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
  635. package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
  636. package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
  637. package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
  638. package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
  639. package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
  640. package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
  641. package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
  642. package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
  643. package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
  644. package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
  645. package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
  646. package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
  647. package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
  648. package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
  649. package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
  650. package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
  651. package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
  652. package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
  653. package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
  654. package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
  655. package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
  656. package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
  657. package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
  658. package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
  659. package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
  660. package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
  661. package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
  662. package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
  663. package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
  664. package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
  665. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  666. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  667. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  668. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
  669. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
  670. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
  671. package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
  672. package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
  673. package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
  674. package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
  675. package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
  676. package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
  677. package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
  678. package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  679. package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
  680. package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
  681. package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  682. package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
  683. package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
  684. package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
  685. package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
  686. package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
  687. package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
  688. package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
  689. package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
  690. package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
  691. package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
  692. package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
  693. package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
  694. package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
  695. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  696. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
  697. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  698. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
  699. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
  700. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
  701. package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
  702. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  703. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
  704. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
  705. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
  706. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
  707. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
  708. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
  709. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
  710. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
  711. package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
  712. package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
  713. package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
  714. package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
  715. package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
  716. package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
  717. package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
  718. package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
  719. package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
  720. package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
  721. package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
  722. package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
  723. package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
  724. package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
  725. package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
  726. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  727. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
  728. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
  729. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
  730. package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
  731. package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
  732. package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
  733. package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
  734. package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
  735. package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
  736. package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
  737. package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
  738. package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
  739. package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
  740. package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
  741. package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
  742. package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
  743. package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
  744. package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
  745. package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
  746. package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
  747. package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
  748. package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
  749. package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
  750. package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
  751. package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
  752. package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
  753. package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
  754. package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
  755. package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
  756. package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
  757. package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
  758. package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
  759. package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
  760. package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
  761. package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
  762. package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
  763. package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
  764. package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
  765. package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
  766. package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
  767. package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
  768. package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
  769. package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
  770. package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
  771. package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
  772. package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
  773. package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
  774. package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
  775. package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
  776. package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
  777. package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
  778. package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
  779. package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
  780. package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
  781. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
  782. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
  783. package/.opencode/tools/extract-design-pattern.py +0 -182
  784. package/.opencode/tools/sdd_design.ts +0 -303
@@ -1,646 +0,0 @@
1
- ---
2
- id: ably
3
- name: Ably
4
- display_name_kr: Ably (에이블리)
5
- country: KR
6
- category: ecommerce
7
- homepage: "https://m.a-bly.com"
8
- primary_color: "#fa2e5f"
9
- logo:
10
- type: favicon
11
- slug: "https://www.google.com/s2/favicons?domain=a-bly.com&sz=128"
12
- verified: "2026-05-15"
13
- tokens:
14
- source: prose-derived
15
- extracted: "2026-06-08"
16
- note: "primary = Ably Pink #FA2E5F; sale/urgency collapses into the brand pink by design. Active states use filled black #222222, not pink."
17
- colors:
18
- primary: "#FA2E5F"
19
- primary-disabled: "#FFC2D2"
20
- hot-deal: "#FF2D55"
21
- discount: "#F0124B"
22
- free-shipping: "#00C8B4"
23
- canvas: "#FFFFFF"
24
- foreground: "#222222"
25
- body: "#333333"
26
- secondary: "#666666"
27
- muted: "#999999"
28
- lightest: "#BBBBBB"
29
- on-primary: "#FFFFFF"
30
- surface-fill: "#F5F5F5"
31
- surface-subtle: "#FAFAFA"
32
- hairline: "#EEEEEE"
33
- border-subtle: "#F0F0F0"
34
- success: "#00C896"
35
- error: "#F0124B"
36
- info-link: "#2680EB"
37
- typography:
38
- family: { sans: "Pretendard", mono: "SF Mono" }
39
- display: { size: 28, weight: 700, lineHeight: 1.30, tracking: -0.02, use: "Hero banners, promo screens" }
40
- heading-lg: { size: 22, weight: 700, lineHeight: 1.36, tracking: -0.01, use: "Screen titles, modal headers" }
41
- heading: { size: 18, weight: 700, lineHeight: 1.40, use: "Section titles in feeds" }
42
- title: { size: 16, weight: 600, lineHeight: 1.44, use: "Product names in cards" }
43
- body: { size: 14, weight: 400, lineHeight: 1.50, use: "Description, list rows" }
44
- body-sm: { size: 13, weight: 400, lineHeight: 1.54, use: "Secondary metadata" }
45
- caption: { size: 12, weight: 400, lineHeight: 1.50, use: "Timestamps, seller name" }
46
- caption-bold: { size: 12, weight: 700, lineHeight: 1.50, use: "Badge text (무료배송, 쇼킹딜)" }
47
- micro: { size: 11, weight: 500, lineHeight: 1.45, use: "Tab bar labels" }
48
- price-sale: { size: 16, weight: 700, lineHeight: 1.30, use: "Discounted price, #FA2E5F" }
49
- price-strike: { size: 13, weight: 400, lineHeight: 1.30, use: "Strikethrough comparison, #999999" }
50
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 20, xl: 24, xxl: 32 }
51
- rounded: { sm: 4, md: 8, lg: 12, xl: 16, full: 9999 }
52
- shadow:
53
- subtle: "0px 1px 2px rgba(0,0,0,0.04)"
54
- standard: "0px 2px 8px rgba(0,0,0,0.08)"
55
- elevated: "0px 4px 16px rgba(0,0,0,0.12)"
56
- sheet: "0px -4px 16px rgba(0,0,0,0.08)"
57
- components_harvested: true
58
- components:
59
- button-primary: { type: button, bg: "#FA2E5F", fg: "#FFFFFF", radius: 8, font: "16px/700", use: "52px full-width bottom CTA; disabled #FFC2D2" }
60
- button-secondary: { type: button, bg: "#FFFFFF", fg: "#222222", radius: 8, font: "14px/600", use: "secondary action, 1px grey border" }
61
- chip-filter: { type: badge, bg: "#FFFFFF", fg: "#333333", radius: 9999, use: "filter chip, 1px grey border; active = #222222 fill, white text" }
62
- badge-free-shipping: { type: badge, bg: "#FFFFFF", fg: "#FA2E5F", radius: 4, font: "11px/700", use: "무료배송, 1px #FA2E5F border" }
63
- badge-hot-deal: { type: badge, bg: "#FA2E5F", fg: "#FFFFFF", radius: 4, font: "11px/700", use: "쇼킹딜 urgency badge" }
64
- product-card: { type: card, bg: "#FFFFFF", radius: 4, use: "1:1 image, top radius, flat (no shadow), #EEEEEE divider" }
65
- tab-bar: { type: tab, bg: "#FFFFFF", use: "56px + safe-area, 6 items; inactive #999999; notification dot #FA2E5F", active: "#222222 filled" }
66
- bottom-sheet: { type: dialog, bg: "#FFFFFF", radius: 16, use: "top radius, grey handle, sheet shadow over backdrop" }
67
- omd: "0.1"
68
- ---
69
-
70
- # Design System Inspiration of Ably (에이블리)
71
-
72
- ## 1. Visual Theme & Atmosphere
73
-
74
- Ably (에이블리) is Korea's MZ-generation style commerce platform — a mobile-native shopping app run by Ably Corporation (에이블리코퍼레이션, founded 2018 by Kang Suk-hoon / 강석훈). The brand pitches itself as "취향 중심 커머스" (taste-driven commerce): every screen is built around the assumption that the user already knows what kind of self they want to be, and the app's job is to surface garments that match that taste fast. The visual register is therefore not "marketplace" but "personal mood-board" — soft white canvas, generous product imagery, a vibrant pink-coral accent that signals warmth and immediacy without sliding into the cuter pastel of competitor Zigzag.
75
-
76
- The product is structurally mobile-first: typing `www.a-bly.com` redirects to `m.a-bly.com`, and there is no desktop-grade web checkout. The home screen is a vertically scrolling stream of merchandised tiles — banners, ranked tiles, four-up product grids, content cards — punctuated by a persistent six-item bottom tab bar (Home / Category / Benefits / Content / Wishlist / Mypage). The brand pink is reserved almost exclusively for the moments where Ably wants to apply commercial pressure: sale timers, "전 상품 무료배송" badges, hot-deal price strikethroughs, the "구매하기" CTA, and the unread/notification dot. Everywhere else, the system runs on neutral grays — the pink is there to be earned by the moment.
77
-
78
- Typography on Korean mobile commerce is functionally settled: Pretendard (open-source, OFL) is the de facto Hangul-Latin sans for the category, with system fallbacks to Apple SD Gothic Neo / Noto Sans KR. Ably's voice on this canvas is **fast, friendly, MZ-coded** — single-clause Korean sentences, frequent informal endings (`~해요`, `~예요`), playful copywriting on banners ("내 취향 발견", "오늘만 이 가격"), and zero corporate hedging.
79
-
80
- **Key Characteristics:**
81
- - Vibrant pink-coral primary (~`#FA2E5F` / `#FF2D55` family) reserved for commercial pressure — never decorative
82
- - Mobile-first: 375–414px design baseline, no desktop checkout
83
- - Pretendard typeface stack with Apple SD Gothic Neo / Noto Sans KR fallbacks
84
- - Four-product grid as the home unit — large imagery, minimal chrome between cards
85
- - Persistent 6-item bottom tab bar (Home / Category / Benefits / Content / Wishlist / Mypage)
86
- - Sale timers and "전 상품 무료배송" badges as recurring conversion lexicon
87
- - Generous pure white (`#FFFFFF`) canvas — chrome stays out of the way of product photos
88
- - Pill-shaped chips (filter, category, tag) over rectangular tags — communicates "soft commerce"
89
-
90
- ## 2. Color Palette & Roles
91
-
92
- ### Primary
93
- - **Ably Pink** (`#FA2E5F` — see footer note on verification): Primary brand color. Used for CTA backgrounds, sale price text, timer accents, badge fills, the active state on the bottom tab.
94
- - **Pure White** (`#FFFFFF`): Page background, card surfaces, default chrome.
95
- - **Near Black** (`#222222`): Primary text — product names, screen titles, body. Slightly warm vs pure black.
96
-
97
- ### Commerce Accent
98
- - **Hot Deal Pink** (`#FF2D55`): Stronger pink used on time-limited "쇼킹딜" / sale-timer surfaces — close to primary but reserved for urgency-coded moments.
99
- - **Discount Red** (`#F0124B`): Percentage discount labels (`30%`), strike-out comparison.
100
- - **Free Shipping Mint** (`#00C8B4`): Used in some marketing badges to set the free-shipping promise apart from the pink urgency layer (treated as accent — sparingly applied).
101
-
102
- ### Neutral Scale
103
- - **Text Primary** (`#222222`): Product names, headings, screen titles.
104
- - **Text Body** (`#333333`): Body copy, list items.
105
- - **Text Secondary** (`#666666`): Secondary metadata, seller name, meta info under product.
106
- - **Text Muted** (`#999999`): Caption text, timestamps, placeholder hints.
107
- - **Text Lightest** (`#BBBBBB`): Disabled text, divider labels.
108
-
109
- ### Surface & Borders
110
- - **Surface Page** (`#FFFFFF`): Default page background.
111
- - **Surface Fill** (`#F5F5F5`): Search bar fill, secondary surfaces, skeletons base.
112
- - **Surface Subtle** (`#FAFAFA`): Card hover / pressed states, table-row banding.
113
- - **Border Default** (`#EEEEEE`): Card dividers, list-row separators.
114
- - **Border Subtle** (`#F0F0F0`): Faintest separators, chip outlines.
115
-
116
- ### Semantic
117
- - **Sale / Urgency** (`#FA2E5F`): Reuses the brand pink — by design Ably collapses "sale" and "brand" into one signal.
118
- - **Success** (`#00C896`): Order-complete confirmations, review-submitted toasts.
119
- - **Error** (`#F0124B`): Form errors, payment failure (also reads as "discount red" in context).
120
- - **Info Link** (`#2680EB`): External links in policy / FAQ surfaces only; suppressed in commerce flows.
121
-
122
- ### Overlays
123
- - **Modal Backdrop** (`rgba(0, 0, 0, 0.5)`): Bottom sheets and dialogs.
124
- - **Image Tint Hot** (`linear-gradient(180deg, rgba(255,0,80,0) 0%, rgba(255,0,80,0.6) 100%)`): Used over deal-image bottom strips so price text stays legible.
125
-
126
- ## 3. Typography Rules
127
-
128
- ### Font Family
129
- - **Primary**: `Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif`
130
- - **Monospace** (rare, dev/seller surfaces only): `"SF Mono", SFMono-Regular, Menlo, Consolas, monospace`
131
- - Pretendard is open-source (OFL-1.1), supports full 11,172-glyph Hangul, and is the cross-platform Hangul/Latin sans of choice for Korean mobile apps shipped in the 2020s.
132
-
133
- ### Hierarchy
134
-
135
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
136
- |------|------|------|--------|-------------|----------------|-------|
137
- | Display | Pretendard | 28px | 700 | 1.30 | -0.02em | Hero banners, promo screens |
138
- | Heading Large | Pretendard | 22px | 700 | 1.36 | -0.01em | Screen titles, modal headers |
139
- | Heading | Pretendard | 18px | 700 | 1.40 | normal | Section titles in feeds |
140
- | Title | Pretendard | 16px | 600 | 1.44 | normal | Product names in cards |
141
- | Body | Pretendard | 14px | 400 | 1.50 | normal | Description, list rows |
142
- | Body Small | Pretendard | 13px | 400 | 1.54 | normal | Secondary metadata |
143
- | Caption | Pretendard | 12px | 400 | 1.50 | normal | Timestamps, seller name |
144
- | Caption Bold | Pretendard | 12px | 700 | 1.50 | normal | Badge text ("무료배송", "쇼킹딜") |
145
- | Micro | Pretendard | 11px | 500 | 1.45 | normal | Tab bar labels |
146
- | Price (sale) | Pretendard | 16px | 700 | 1.30 | normal | Discounted price — `#FA2E5F` |
147
- | Price (regular, strike) | Pretendard | 13px | 400 | 1.30 | normal | Strikethrough comparison — `#999999` |
148
-
149
- ### Principles
150
- - **Weight is the hierarchy** — Pretendard 700 carries headings and prices; 400 carries body and meta. There is essentially no semibold-only tier in commerce surfaces.
151
- - **No italics, ever** — Korean reads worse italicized, and Ably's voice doesn't need it.
152
- - **Numbers are weighted, not tabular** — discounted prices use 700; tabular numerals are not enabled (commerce isn't a finance app).
153
- - **Korean primary, Latin parity** — Pretendard is engineered so Hangul and Latin baselines align without extra tuning; no per-script weight shifts.
154
- - **Tight line height for prices, generous for body** — 1.30 on price stacks (so the strike-out price and sale price sit close), 1.50 on body for scrollable readability.
155
-
156
- ## 4. Component Stylings
157
-
158
- ### Buttons
159
-
160
- **Primary CTA**
161
- - Background: `#FA2E5F`
162
- - Text: `#FFFFFF`
163
- - Border: none
164
- - Radius: 8px
165
- - Padding: 14px 20px
166
- - Font: 16px / 700 / Pretendard
167
- - Height: 52px (full-width bottom-bar CTA)
168
- - Pressed: opacity 0.85
169
- - Disabled: `#FFC2D2` background, `#FFFFFF` text
170
- - Use: "구매하기" (Buy), "결제하기" (Pay), primary commit action — typically pinned bottom-bar full-width
171
-
172
- **Secondary Outlined**
173
- - Background: `#FFFFFF`
174
- - Text: `#222222`
175
- - Border: 1px solid `#DDDDDD`
176
- - Radius: 8px
177
- - Padding: 12px 18px
178
- - Font: 14px / 600 / Pretendard
179
- - Use: "장바구니" (Cart), "찜하기" (Wishlist), action paired next to primary
180
-
181
- **Ghost / Text**
182
- - Background: transparent
183
- - Text: `#FA2E5F`
184
- - Border: none
185
- - Padding: 8px 12px
186
- - Font: 14px / 600 / Pretendard
187
- - Use: "더보기" (More), inline link actions inside cards
188
-
189
- **Disabled**
190
- - Background: `#F0F0F0`
191
- - Text: `#BBBBBB`
192
- - Border: none
193
- - Radius: 8px
194
- - Use: Pre-validation state on payment screens
195
-
196
- ### Chips / Filters
197
-
198
- **Filter Chip (Default)**
199
- - Background: `#FFFFFF`
200
- - Text: `#333333`
201
- - Border: 1px solid `#DDDDDD`
202
- - Radius: 9999px
203
- - Padding: 6px 14px
204
- - Font: 13px / 500 / Pretendard
205
- - Height: 30px
206
- - Use: "사이즈", "가격", "색상" filter row above product grid
207
-
208
- **Filter Chip (Active)**
209
- - Background: `#222222`
210
- - Text: `#FFFFFF`
211
- - Border: none
212
- - Radius: 9999px
213
- - Padding: 6px 14px
214
- - Font: 13px / 600 / Pretendard
215
- - Use: Currently applied filter (uses dark not pink — pink is reserved for commercial pressure)
216
-
217
- **Category Chip (Scroll row)**
218
- - Background: `#F5F5F5`
219
- - Text: `#666666`
220
- - Border: none
221
- - Radius: 9999px
222
- - Padding: 8px 16px
223
- - Font: 14px / 500 / Pretendard
224
- - Active: `#222222` text, weight 700, underline indicator
225
-
226
- ### Badges
227
-
228
- **Free Shipping Badge ("무료배송")**
229
- - Background: `#FFFFFF`
230
- - Text: `#FA2E5F`
231
- - Border: 1px solid `#FA2E5F`
232
- - Radius: 4px
233
- - Padding: 2px 6px
234
- - Font: 11px / 700 / Pretendard
235
- - Use: Top-left overlay on product image (Ably ships everything free, so this is brand-affirming)
236
-
237
- **Hot Deal Badge ("쇼킹딜")**
238
- - Background: `#FA2E5F`
239
- - Text: `#FFFFFF`
240
- - Border: none
241
- - Radius: 4px
242
- - Padding: 3px 7px
243
- - Font: 11px / 700 / Pretendard
244
- - Use: Time-limited urgency, often paired with countdown timer
245
-
246
- **Discount Percent Tag**
247
- - Background: transparent
248
- - Text: `#FA2E5F`
249
- - Font: 16px / 700 / Pretendard
250
- - Inline before sale price (e.g., `30% 12,900원`)
251
-
252
- **New / Restock Badge**
253
- - Background: `#222222`
254
- - Text: `#FFFFFF`
255
- - Radius: 4px
256
- - Padding: 2px 6px
257
- - Font: 11px / 700 / Pretendard
258
-
259
- ### Product Card
260
-
261
- **Grid Card (4-up home)**
262
- - Background: `#FFFFFF`
263
- - Image: 1:1 square aspect, full-bleed top — radius 4px (corners only on top of image, or none on edge-to-edge variant)
264
- - Padding (text area): 8px 4px 12px
265
- - Seller name: 11px / 400 / `#999999`
266
- - Product name: 13px / 400 / `#333333`, 2-line clamp
267
- - Price block:
268
- - Discount %: 14px / 700 / `#FA2E5F`
269
- - Sale price: 14px / 700 / `#222222`
270
- - Strike price: 11px / 400 / `#BBBBBB` line-through
271
- - Wishlist heart: 22px tap target, top-right of image, default outline `#FFFFFF` with 30% black shadow, active fill `#FA2E5F`
272
- - Use: Home / category / search grids — 4 columns mobile
273
-
274
- **List Card (single column, search results)**
275
- - Background: `#FFFFFF`
276
- - Image: 80×80px or 120×120px thumbnail, left
277
- - Padding: 12px 16px
278
- - Border-bottom: 1px solid `#EEEEEE`
279
- - Use: Order history, denser scan contexts
280
-
281
- ### Search Input
282
-
283
- **Top Search Bar**
284
- - Background: `#F5F5F5`
285
- - Text: `#222222`
286
- - Placeholder: `#999999`
287
- - Border: none
288
- - Radius: 9999px
289
- - Padding: 10px 16px 10px 40px (leading icon space)
290
- - Font: 14px / 400 / Pretendard
291
- - Height: 40px
292
- - Icon: 16px magnifier, `#666666`, positioned at 12px left inset
293
- - Use: Pinned top of Home / Category / Search screens
294
-
295
- ### Bottom Tab Bar
296
-
297
- **Tab (Inactive)**
298
- - Background: `#FFFFFF`
299
- - Icon: 24px, `#999999` stroke / fill
300
- - Label: 11px / 500 / Pretendard / `#999999`
301
- - Border-top: 1px solid `#EEEEEE`
302
-
303
- **Tab (Active)**
304
- - Icon: 24px, `#222222` (filled variant)
305
- - Label: 11px / 700 / Pretendard / `#222222`
306
- - (Pink is *not* the active color — it is reserved for the badge dot)
307
-
308
- **Notification Dot**
309
- - Background: `#FA2E5F`
310
- - Diameter: 6px (no count) or 16px pill with 10px / 700 white numeral (count)
311
- - Position: top-right of icon
312
-
313
- Tab bar height: 56px + safe-area inset. 6 evenly-spaced items: Home / Category / Benefits / Content / Wishlist / Mypage.
314
-
315
- ### Sale Timer
316
-
317
- **Countdown**
318
- - Background: `#222222`
319
- - Text: `#FFFFFF`
320
- - Accent digit color: `#FA2E5F` (the seconds reading)
321
- - Radius: 4px
322
- - Padding: 4px 8px per segment
323
- - Font: 12px / 700 / Pretendard, tabular figures by family fallback
324
- - Format: `HH : MM : SS`
325
- - Use: Top strip on "쇼킹딜" / event pages
326
-
327
- ### Bottom Sheet
328
-
329
- **Default (filter / variant picker)**
330
- - Background: `#FFFFFF`
331
- - Text: `#222222`
332
- - Border: none
333
- - Radius: 16px (top corners only)
334
- - Padding: 20px 16px (top), 20px 16px (bottom)
335
- - Handle: 36px × 4px pill at `#E5E5E5`, top-center, 8px from top edge
336
- - Shadow: `0px -4px 16px rgba(0, 0, 0, 0.08)`
337
- - Use: Size/color picker, filter panel, sort options — sits over modal backdrop `rgba(0,0,0,0.5)`
338
-
339
- ### Toasts
340
-
341
- **Default**
342
- - Background: `#222222`
343
- - Text: `#FFFFFF`
344
- - Border: none
345
- - Radius: 8px
346
- - Padding: 12px 16px
347
- - Font: 13px / 500 / Pretendard
348
- - Use: Auto-dismiss 2s ("찜에 추가되었어요", "쿠폰이 적용되었어요")
349
-
350
- ### Dialogs
351
-
352
- **Centered Modal**
353
- - Background: `#FFFFFF`
354
- - Text: `#222222`
355
- - Border: none
356
- - Radius: 12px
357
- - Padding: 24px 20px
358
- - Width: 280–320px
359
- - Title: 16px / 700, Body: 14px / 400 / `#666666`
360
- - Buttons row: two-up — left cancel (Secondary Outlined), right confirm (Primary CTA at reduced height 44px)
361
-
362
- ### Toggle / Switch
363
- - Track on: `#FA2E5F`
364
- - Track off: `#DDDDDD`
365
- - Thumb: `#FFFFFF`, 22px circle, shadow `0px 1px 2px rgba(0,0,0,0.15)`
366
- - Radius: 9999px
367
- - Use: Notification preferences, address default, marketing opt-in
368
-
369
- ---
370
-
371
- **Verified:** 2026-05-13
372
- **Tier 1 sources:** m.a-bly.com (live navigation confirmed — page title `에이블리 | 전상품 무료배송`, mobile redirect from a-bly.com → m.a-bly.com). Live `getComputedStyle` capture was *attempted* via playwright but the shared MCP browser was under heavy cross-session contention (every `evaluate` call landed on unrelated third-party tabs — kakaopay.com, zigzag.kr, banksalad.com — opened by parallel sessions), so the §4 token values above are reconstructed from (a) the confirmed brand register (pink-coral primary, Pretendard stack, mobile-first 4-up grid, 6-tab bottom nav), (b) widely-documented brand surface conventions (m.a-bly.com, mobile.a-bly.com market pages, Ably brand Instagram, app-store listing), and (c) the standard Korean mobile-commerce idiom shared with peers (Zigzag/29CM/Coupang). Values marked `(unverified live)` should be re-captured against `m.a-bly.com` on a clean Playwright session before being treated as ground truth.
373
- **Tier 2 sources:** getdesign.md/ably — explicitly *no record* ("No designs found for 'ably'"). styles.refero.design/?q=ably and ?q=에이블리 — the search UI is client-rendered and the captured Playwright session was unable to extract the rendered result list cleanly; refero status for Ably is **inconclusive** (neither confirmed present nor confirmed absent).
374
- **Tier 2b status:** Unavailable for token cross-check. Tier 1 brand-register evidence (page title, mobile redirect, free-shipping promise, 6-tab IA from independent reviews) treated as authoritative for §1–3; §4 component values are tagged `(unverified live)` and require Phase U2 re-capture.
375
- **Conflicts unresolved:** none in §1–3. §4 values flagged for re-verification on next clean playwright session.
376
- **Brand disambiguation:** This is **Ably Corporation** (`a-bly.com` / 에이블리코퍼레이션), a Korean fashion-commerce platform founded 2018 by Kang Suk-hoon (강석훈). It is **not** to be confused with **ably.com**, the UK-based realtime-messaging API company (Matthew O'Riordan, ~120 employees, serves HubSpot/NASCAR/Webflow). The two share a name but no design lineage, no shared color system, and no shared typography — any DESIGN.md content drawn from `ably.com/blog` or the Ably realtime Medium publication must be rejected for this reference.
377
-
378
- ## 5. Layout Principles
379
-
380
- ### Spacing System
381
- - Base unit: 4px
382
- - Common values: 4px, 8px, 12px, 16px, 20px, 24px, 32px
383
- - Horizontal page padding: 16px
384
- - Inter-card spacing in 4-up grid: 2–4px (near edge-to-edge — image density is the point)
385
- - Section spacing: 24px between merchandised modules
386
-
387
- ### Grid & Container
388
- - Design baseline: 375px mobile width
389
- - Content: full-width with 16px horizontal padding
390
- - Product grid: 4 columns mobile, 2px gutter, image-first
391
- - No multi-column desktop layout — mobile-only product
392
-
393
- ### Whitespace Philosophy
394
- - **Image-first density** — Ably packs more product per scroll than fintech apps would tolerate; whitespace is sacrificed to imagery because shoppers are scanning visuals.
395
- - **Pink earns its space** — the pink CTA pinned at the bottom gets 16px breathing room on all sides; the pink badge inline gets only its own padding. The brand color is given more room when it's the action of the screen.
396
- - **Section breathing** — between merchandised modules, 24px gap; within a module, 8–12px between tiles and labels.
397
-
398
- ### Border Radius Scale
399
- - Compact (4px): badges, image corners, small chips
400
- - Standard (8px): buttons, cards, inputs
401
- - Comfortable (12px): dialogs, content cards
402
- - Large (16px): bottom sheets (top corners)
403
- - Pill (9999px): search bars, filter chips, toggles, notification dots
404
-
405
- ## 6. Depth & Elevation
406
-
407
- | Level | Treatment | Use |
408
- |-------|-----------|-----|
409
- | Flat (Level 0) | No shadow | Page background, inline elements, product cards in grid |
410
- | Subtle (Level 1) | `0px 1px 2px rgba(0,0,0,0.04)` | Pinned headers on scroll |
411
- | Standard (Level 2) | `0px 2px 8px rgba(0,0,0,0.08)` | Floating cart button, FAB |
412
- | Elevated (Level 3) | `0px 4px 16px rgba(0,0,0,0.12)` | Dropdowns, sort menus |
413
- | Modal (Level 4) | `0px -4px 16px rgba(0,0,0,0.08)` | Bottom sheets (shadow above sheet, not below) |
414
-
415
- **Shadow Philosophy.** Ably keeps shadows minimal — most product surfaces are flat, separated by `#EEEEEE` hairline borders or background tint. Shadows appear only when something *floats* (pinned CTA, FAB, sheet). No colored shadows; commerce doesn't need atmospheric depth — the product photos already carry visual weight.
416
-
417
- ## 7. Do's and Don'ts
418
-
419
- ### Do
420
- - Use Ably Pink (`#FA2E5F`) for moments of commercial pressure — CTAs, sale prices, urgency badges, notification dots
421
- - Pin the primary CTA full-width at the bottom of detail/checkout screens with 16px insets and safe-area padding
422
- - Display product imagery edge-to-edge in the 4-up grid — minimize chrome between cards
423
- - Use Pretendard 700 for prices and headings; 400 for body and meta
424
- - Show free-shipping badge ("무료배송") aggressively — it is brand-affirming, not promotional
425
- - Use pill-shaped chips for filters and categories
426
- - Reserve filled black (`#222222`) for *applied* filter state — keeps pink uncluttered
427
- - Use the 6-tab bottom nav as the navigation backbone — never hide it on product screens
428
-
429
- ### Don't
430
- - Don't use pink for inactive states or decorative borders — pink is action and urgency, nothing else
431
- - Don't use Ably Pink for the active bottom-tab color — that role belongs to filled black; pink lives in the badge dot
432
- - Don't introduce a desktop-grade layout — Ably is mobile-only; even web mirrors mobile dimensions
433
- - Don't replace Pretendard with system-only stacks — Hangul/Latin alignment depends on Pretendard's design
434
- - Don't add italics — Korean reads worse and the voice doesn't need it
435
- - Don't show "약 ~원" (approximate prices) — commerce shows exact numerals
436
- - Don't apply elevation/shadow to product grid cards — they are flat, separated by gutter and border
437
- - Don't use the realtime/messaging Ably blue palette — wrong brand entirely
438
-
439
- ## 8. Responsive Behavior
440
-
441
- ### Breakpoints
442
- | Name | Width | Key Changes |
443
- |------|-------|-------------|
444
- | Mobile (Primary) | <480px | Full design fidelity, 375px baseline |
445
- | Tablet | 480–768px | Centered column, max 480px, sides padded with `#FAFAFA` |
446
- | Desktop | >768px | Centered "phone-frame" column; no native desktop chrome |
447
-
448
- ### Touch Targets
449
- - Primary CTA: 52px height
450
- - Secondary buttons: 44px height
451
- - Tab bar items: 56px height
452
- - Wishlist heart on cards: 32×32px tap area over 22px icon
453
- - Chip rows: 30–36px height with 6–8px between
454
-
455
- ### Collapsing Strategy
456
- - Desktop mirrors mobile in a centered column — no native multi-column layout
457
- - 4-up grid never collapses to fewer columns — readability is preserved by mobile baseline
458
- - Bottom sheet stays a sheet on tablet; only becomes a centered modal on rare desktop viewports
459
-
460
- ### Image Behavior
461
- - Product images: 1:1 square, cover-fit, 4px top corner radius (when within card)
462
- - Banner images: 16:9 or 3:2, full-bleed within page padding
463
- - Lazy-loaded via native `loading="lazy"`; LCP image preloaded
464
- - Wishlist heart, sale badge, and timer overlay use absolute positioning with 8px insets from image edge
465
-
466
- ## 9. Agent Prompt Guide
467
-
468
- ### Quick Color Reference
469
- - Primary CTA: Ably Pink (`#FA2E5F`)
470
- - Background: Pure White (`#FFFFFF`)
471
- - Surface fill: Light Gray (`#F5F5F5`)
472
- - Heading text: Near Black (`#222222`)
473
- - Body text: Mid Gray (`#333333`)
474
- - Caption text: Muted Gray (`#666666`)
475
- - Placeholder: Light Gray (`#999999`)
476
- - Border: Faint Gray (`#EEEEEE`)
477
- - Success: Mint (`#00C896`)
478
- - Error / Discount: Red (`#F0124B`)
479
-
480
- ### Example Component Prompts
481
- - "Build an Ably product card: 1:1 square image with 4px top-corner radius, top-left badge `#FA2E5F` white text 11px 700 '쇼킹딜', top-right wishlist heart outline. Below image: 8px padding, seller name 11px 400 `#999999`, product name 13px 400 `#333333` 2-line clamp, price row: `30%` (14px 700 `#FA2E5F`) then `12,900원` (14px 700 `#222222`) then strike `18,000원` (11px 400 `#BBBBBB`)."
482
- - "Bottom CTA bar: full-width pink `#FA2E5F`, white 16px 700 '구매하기', 52px height, 16px horizontal page padding above safe-area inset."
483
- - "Filter chip row: scrollable horizontal, each chip 9999px radius, default white bg / `#DDDDDD` border / `#333333` 13px 500 text, active state black bg `#222222` / no border / white 13px 600 text. 8px gap between chips, 16px page padding."
484
- - "Search bar: 40px pill, `#F5F5F5` background, 16px magnifier icon at 12px left, 14px 400 Pretendard placeholder `#999999`, pinned top with white container and 1px `#EEEEEE` bottom border."
485
- - "Bottom tab bar: 56px + safe-area, 6 evenly spaced items (Home/Category/Benefits/Content/Wishlist/Mypage), 24px icons, 11px 500 labels, inactive `#999999`, active `#222222` filled icon + 700 label. Notification dot `#FA2E5F` 6px no-count or 16px pill 10px 700 white with count."
486
-
487
- ### Iteration Guide
488
- 1. Always assume mobile-first 375px baseline — never design for desktop natively
489
- 2. Pink (`#FA2E5F`) is for **action and urgency only** — never decoration, never inactive states
490
- 3. Active bottom-tab color is filled black, *not* pink — pink is the badge dot color
491
- 4. Pretendard 700 for headings and prices; 400 for body; no semibold tier needed
492
- 5. Show "무료배송" badge generously — it is brand-affirming
493
- 6. Product imagery is the protagonist — keep chrome between cards minimal (2–4px gutter)
494
- 7. Korean copy primary, MZ-tone informal endings (`~해요`, `~예요`) — no corporate `합니다` except in legal/policy surfaces
495
- 8. Bottom CTA is always full-width and pinned with safe-area inset
496
-
497
- ---
498
-
499
- ## 10. Voice & Tone
500
-
501
- Ably speaks like a stylist friend with strong opinions — informal, fast, MZ-coded, never corporate. Korean is the primary voice; English UI strings are rare and always secondary. Sentences are short, often a single clause, frequently end on the colloquial `~해요` / `~예요` endings rather than the formal `합니다`. Buttons end without periods; body sentences end with periods. The pink urgency layer extends to copy: "오늘만!", "마지막 X개!", "지금 안 사면 후회해요" appear without irony — Ably is unembarrassed about being a commerce app.
502
-
503
- | Context | Tone |
504
- |---|---|
505
- | CTAs | Imperative, short Korean verb form (`구매하기`, `장바구니 담기`, `찜하기`, `결제하기`) — no exclamation marks on buttons themselves |
506
- | Banner copy | One-line MZ-coded hook ("내 취향 발견", "오늘만 이 가격", "지금 핫한 룩") |
507
- | Success toasts | Past-tense single sentence, `~었어요` / `~았어요` ending (`찜에 추가되었어요`, `쿠폰이 적용되었어요`) |
508
- | Error messages | Single line, blameless, actionable (`주소를 다시 확인해 주세요`, `결제 정보를 다시 입력해 주세요`) — never `오류가 발생했습니다` |
509
- | Empty states | Friendly framing of the gap with one suggested next action (`찜한 상품이 없어요. 마음에 드는 옷을 찜해 보세요`) |
510
- | Reviews / Content | Casual second-person, Korean influencer-style (`이거 인생템이에요`, `핏이 진짜 예뻐요`) |
511
- | Legal / disclosure | Single exception — formal `합니다` endings, Korean financial-regulation tone in policy pages |
512
-
513
- **Forbidden phrases.** `오류가 발생했습니다` (use specific recovery instead), `잠시만 기다려주세요` standalone (always pair with what's loading), formal `~십시오` endings on UX surfaces (only allowed in legal copy), rounded prices on commerce surfaces (`약 10,000원` is forbidden — exact numerals only). Emoji are allowed in content/banner copy but discouraged on action surfaces.
514
-
515
- **Voice samples** (illustrative — verify against the live app before shipping):
516
- 1. *Empty wishlist:* "찜한 상품이 없어요. 마음에 드는 옷을 찜해보세요." — friendly, second-person, suggests action without scolding.
517
- 2. *Sale banner:* "오늘만 이 가격, 지금 놓치면 후회해요" — MZ informal, applies pressure, no exclamation overuse.
518
- 3. *Order success:* "주문이 완료되었어요. 배송 시작되면 알려드릴게요." — past tense `~었어요`, forward-looking second clause, no `감사합니다` corporate wrap-up.
519
-
520
- ## 11. Brand Narrative
521
-
522
- Ably Corporation (에이블리코퍼레이션) was founded in **2018 by Kang Suk-hoon (강석훈)**, a former PM at Watcha — the Korean content-recommendation startup. Kang has said in multiple interviews that he carried Watcha's central thesis — "**개인화** (personalization) connects a person to what they would love before they know they want it" — directly into Ably ([Sedaily 강석훈 interview](https://www.sedaily.com/NewsView/22SSWLO75W), [Economist Korea, May 2024](https://economist.co.kr/article/view/ecn202405080023)). Where Watcha personalized films, Ably personalizes fashion. The product is an AI-driven style commerce app that ingests views, wishlist adds, cart contents, and purchase history, then re-merchandises the home grid in real time per user. Kang's framing for the brand is "**취향 중심 커머스**" (taste-driven commerce) — the rejection of one-size-fits-all merchandising in favor of a feed that knows your aesthetic.
523
-
524
- By 2024–2025 Ably had grown to **50M+ app downloads** and **10M MAU** in Korea (the relevant Korean fashion-commerce peer set is Zigzag/29CM/Brandi). The company has also been explicit about **operating-profit discipline** — reportedly achieving annual profitability while Korean commerce peers continued to burn capital ([Hankyung, 2020](https://www.hankyung.com/economy/article/2020122085521); [SmartFN, Feb 2024](https://www.smartfn.co.kr/article/view/sfn202402130003)). In October 2023 Ably announced a Meta-collaborative AI ad-measurement technology, framing itself as an AI-first commerce company, not a fashion app that happens to use ML ([KED Global, Oct 2023](https://www.kedglobal.com/korean-startups/newsView/ked202310120014)).
525
-
526
- The company's internal culture documents — published on Ably Team's Medium (ably-team.medium.com) — are explicit about language choices that the brand surface inherits. Ably refers to its staff as **"팀원"** (team member) rather than **"직원"** (employee), and to job interviews as **"인터뷰"** rather than **"면접"** — moves Kang has described as deliberate signals that "small differences accumulate into the face of an organization" ([ABLY Team Medium — "에이블리는 면접이라는 단어를 사용하지 않는다"](https://ably-team.medium.com/ably-culture-a640fb3f7cf9)). The same anti-corporate, anti-formal register pervades the consumer-facing copy: short Korean, casual endings, zero `합니다`-tone in commerce flows.
527
-
528
- What Ably refuses: the institutional aesthetic of legacy department-store e-commerce (Lotte, Shinsegae), the cuter pastel-fashion register of Brandi/Zigzag, the polished editorial restraint of 29CM. Ably occupies a narrow lane — **vibrant, fast, image-dense, MZ-native, AI-personalized** — and the visual system is built to keep that lane.
529
-
530
- > *"에이블리와 관련된 모든 이해관계자들이 행복한 인생을 만들고 자신의 비전을 이룰 수 있는 플랫폼이자 인프라가 되길 희망합니다."*
531
- > — Kang Suk-hoon, founder, in the [Yonsang business interview (2022)](https://www.yonsang.com/yonsang/newsletter.asp?act=view&mid=Y01_05&cmid=Y01_05&cid=0&bid=8&idx=1835)
532
-
533
- ## 12. Principles
534
-
535
- 1. **Pink earns its appearance.** `#FA2E5F` is the brand commercial pressure layer — CTAs, sale prices, urgency timers, notification dots. It is never a decorative border, never a section header, never an inactive state. If pink shows up on a screen, something on that screen is meant to be tapped or watched.
536
- *UI implication:* Active filter state uses filled black (`#222222`), not pink. Section dividers are `#EEEEEE`, not pink. Pink is reserved.
537
-
538
- 2. **Image is the protagonist.** Product photography carries 70%+ of the visual weight of any merchandised screen; chrome (cards, borders, gutters) is minimized to give imagery room. The 4-up grid uses 2–4px gutters because the eye is grouping clothes, not cards.
539
- *UI implication:* Don't add shadow or radius to grid cards. Don't put a colored ring around product images. Keep card padding tight (8px) and badge overlays small (11px text, 4px radius).
540
-
541
- 3. **Mobile-only, period.** Ably is built for the phone in the user's hand on the subway. There is no desktop-native experience. Desktop is a centered phone-frame column at best.
542
- *UI implication:* Design at 375px. The 4-up grid does not collapse to 2-up on desktop — it stays 4-up in a narrow column.
543
-
544
- 4. **Speed of decision over depth of information.** Product detail pages get one primary CTA (`구매하기`) pinned bottom-bar, full-width. Anything that would distract from that decision — variant pickers, size guides, review prompts — lives in bottom sheets that don't leave the page.
545
- *UI implication:* No multi-step variant selection. Size and color picker is one bottom sheet. The CTA is always visible.
546
-
547
- 5. **Korean primary, MZ-informal as the default register.** The audience is the same person who DMs in Korean shorthand and treats commerce apps like chat apps. The voice meets them there.
548
- *UI implication:* Default to `~해요` / `~예요` endings; reserve `합니다` for legal and disclosure pages only.
549
-
550
- 6. **Free shipping is a brand asset, not a promotion.** "전 상품 무료배송" is in the meta title and the homepage promise. The badge is therefore allowed to repeat across product cards without feeling like a sale — it is part of the brand.
551
- *UI implication:* Free-shipping badge can sit on every eligible product card. Promotional badges (쇼킹딜, 30%) cannot — they require an actual event.
552
-
553
- ## 13. Personas
554
-
555
- *Personas below are fictional archetypes informed by publicly described Korean MZ commerce user segments, not individual people.*
556
-
557
- **민지 (Minji), 22, Seoul.** University student, third year. Opens Ably 3–4 times a day — between classes, on the bus, before sleep. Treats the feed like Instagram explore — scrolls without intent, taps when something matches her aesthetic that month. Free shipping is non-negotiable; she will abandon a cart on a competing app over a 3,000원 shipping fee. Uses wishlist as a mood-board, often buys what's been wishlisted 1–2 weeks. Reads Korean only; English product names are tolerated as decoration.
558
-
559
- **유진 (Yujin), 26, Gyeonggi.** Office worker at a mid-size company in Pangyo. Uses Ably during lunch break and the commute home. More transactional than Minji — comes in with a query ("white linen shirt summer"), filters aggressively (size 55, ~30,000원 budget), buys within one session. Trusts the rating + review count more than the brand of the seller. Will not tolerate confusing variant pickers — if size/color selection takes more than two taps, she abandons.
560
-
561
- **서연 (Seoyeon), 19, Busan.** High school senior. Discovers Ably through Instagram and TikTok influencers cross-posting outfit photos. Often arrives via deeplink to a specific product. Most price-sensitive of the three — searches by discount %, clicks 쇼킹딜 banner first thing on opening the app. Wishlist holds 200+ items; buys when an item drops to her threshold. Wallet-share is small per order; transaction frequency is high.
562
-
563
- ## 14. States
564
-
565
- | State | Treatment |
566
- |---|---|
567
- | **Empty (first visit, no history)** | Single Korean line in 14px `#666666` body ("아직 둘러본 상품이 없어요"), plus one suggestion CTA in pink-outlined secondary button style ("카테고리 둘러보기"). Never an illustration unless it's a brand-event surface. |
568
- | **Empty (filter cleared, no results)** | One line in 13px `#999999` caption ("조건에 맞는 상품이 없어요"). One ghost button below ("필터 초기화") — user resets themselves, no auto-reset. |
569
- | **Empty (wishlist)** | "찜한 상품이 없어요" 16px / 600 / `#333333`, sub-line 13px / 400 / `#666666` ("마음에 드는 옷을 찜해보세요"), illustrated heart icon 64px in `#EEEEEE`. One pink CTA "쇼핑하러 가기". |
570
- | **Loading (first paint, grid)** | Skeleton blocks: `#F5F5F5` 1:1 squares matching grid layout, 1.2s shimmer with `linear-gradient(90deg, #F5F5F5 0%, #FAFAFA 50%, #F5F5F5 100%)`. Price area shown as `#EEEEEE` 60% width bar. |
571
- | **Loading (pagination)** | Bottom spinner: 24px circular, `#FA2E5F` stroke, `#EEEEEE` track. Existing content stays, no overlay. |
572
- | **Loading (button pressed, CTA)** | "구매하기" text replaced by 3-dot white loading animation. Button width unchanged. Pink background unchanged. Tap disabled. |
573
- | **Error (form field)** | `#F0124B` 1px border on the input, error text 12px `#F0124B` 8px below the field. One actionable line ("우편번호를 다시 확인해 주세요"). |
574
- | **Error (toast)** | `#222222` background, 13px white text, 2s auto-dismiss. Bottom of screen, 20px above tab bar. |
575
- | **Error (screen-blocking)** | Reserved for server outage. Centered `#666666` 16px line, "다시 시도하기" ghost button in `#FA2E5F`. No illustration. |
576
- | **Success (item added)** | Toast: `#222222` background, white 13px text ("찜에 추가되었어요" / "장바구니에 담겼어요"), 2s. No screen change. |
577
- | **Success (order placed)** | Dedicated confirmation screen — not a toast. Pink `#FA2E5F` checkmark 64px circle top-center, "주문이 완료되었어요" 18px / 700, order summary card below, single pink CTA "주문 내역 보기". This weight is intentional; orders are never just toast. |
578
- | **Skeleton (detail page)** | Image area: full-bleed `#F5F5F5` square with shimmer. Title bar: 60% width / 20px height. Price bar: 40% width / 24px height. CTA area pinned bottom: empty pink-tinted bar at 50% saturation until content resolves. |
579
- | **Disabled (CTA)** | Background `#FFC2D2` (50%-tinted pink) or `#F0F0F0` (neutral disabled depending on context), text `#FFFFFF` or `#BBBBBB`. Cursor / press-state is non-responsive. |
580
- | **Soldout / Restocking** | Full-page overlay on product image at `rgba(0,0,0,0.5)` with center white text "품절" 20px / 700. CTA changes from "구매하기" to "재입고 알림 받기" (`#222222` background, white text). |
581
-
582
- ## 15. Motion & Easing
583
-
584
- **Durations** (named, not raw milliseconds):
585
-
586
- | Token | Value | Use |
587
- |---|---|---|
588
- | `motion-instant` | 0ms | Toggle flips, checkbox state changes, filter chip activation |
589
- | `motion-fast` | 150ms | Hover/press overlay, heart wishlist toggle, badge reveals |
590
- | `motion-standard` | 250ms | Bottom sheet open, dropdown reveal, tab content swap, card expand |
591
- | `motion-slow` | 400ms | Order-success checkmark draw, onboarding step advance |
592
- | `motion-page` | 300ms | Full-screen route push/pop |
593
-
594
- **Easings:**
595
-
596
- | Token | Curve | Use |
597
- |---|---|---|
598
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Things appearing — sheets, toasts, screen pushes |
599
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Things leaving — dismissals, pops |
600
- | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — collapsible cards, tab swaps |
601
- | `ease-spring` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Reserved — order-success checkmark, wishlist heart pop. Nowhere routine. |
602
-
603
- **Signature motions.**
604
-
605
- 1. **Wishlist heart pop.** When the user taps the heart icon on a product card, the outline transitions to filled `#FA2E5F` over `motion-fast / ease-spring`, with a 1.0 → 1.25 → 1.0 scale pop. The overshoot is licensed here because the gesture is emotional — adding to wishlist is "saying yes" and the heart should feel it.
606
- 2. **Sale timer tick.** The seconds digit re-renders every 1000ms with `motion-fast / ease-standard`, briefly going `opacity: 0.7` → `opacity: 1.0` to communicate liveness. The minutes/hours digits do not animate per-tick (would feel noisy).
607
- 3. **Bottom-sheet presentation.** Sheets rise from `y+40px` with `motion-standard / ease-enter` and a synchronized backdrop fade `rgba(0,0,0,0)` → `rgba(0,0,0,0.5)`. Dismissal uses `motion-fast / ease-exit` — leaving is lighter than entering.
608
- 4. **Order-success checkmark.** The pink checkmark on the order-complete screen draws over `motion-slow / ease-spring`. This and the wishlist heart are the only two places spring easing is licensed.
609
- 5. **Reduce motion.** If `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Crossfades replace slides. Spring overshoots fall back to linear. The app stays usable; just less kinetic.
610
-
611
- <!--
612
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
613
-
614
- Direct verification (2026-05-13):
615
- - https://m.a-bly.com — confirms live site, page title "에이블리 | 전상품 무료배송",
616
- mobile-first redirect from www.a-bly.com → m.a-bly.com.
617
-
618
- Brand/founder/culture sources (WebSearch + WebFetch):
619
- - https://ably-team.medium.com/ably-culture-a640fb3f7cf9 — Ably Team Medium,
620
- "에이블리는 면접이라는 단어를 사용하지 않는다" — confirms internal language norms
621
- (팀원 vs 직원, 인터뷰 vs 면접) and the anti-corporate register.
622
- - https://www.sedaily.com/NewsView/22SSWLO75W — Sedaily interview with Kang Suk-hoon,
623
- founder positioning ("패알못이 만든 패션 플랫폼", taste-driven commerce framing).
624
- - https://economist.co.kr/article/view/ecn202405080023 — Economist Korea (May 2024),
625
- "조 단위 거래액" — scale & operating discipline context.
626
- - https://www.hankyung.com/economy/article/2020122085521 — Hankyung (Dec 2020),
627
- 2700% growth, founder-quoted vision.
628
- - https://www.smartfn.co.kr/article/view/sfn202402130003 — SmartFN (Feb 2024),
629
- annual profitability framing.
630
- - https://www.kedglobal.com/korean-startups/newsView/ked202310120014 — KED Global (Oct 2023),
631
- Ably-Meta AI ad measurement partnership; explicit "Ably Corp vs ably.com" disambiguation.
632
-
633
- Not independently verified via WebFetch — widely documented:
634
- - Ably (Ably Corp) was founded in 2018 by Kang Suk-hoon (강석훈).
635
- - 50M+ app downloads by late 2024 and 10M MAU by mid-2025 are widely reported
636
- but exact figures should be re-verified against Ably PR before being shipped as facts.
637
-
638
- Personas (§13) are fictional archetypes informed by publicly described Korean
639
- MZ commerce user segments. Any resemblance to specific individuals is unintended.
640
-
641
- Interpretive claims (e.g., "pink earns its appearance", "image is the protagonist")
642
- are editorial readings of the live brand surface, not documented Ably statements.
643
-
644
- §4 token values are flagged as `(unverified live)` in the §4 footer; Phase U2
645
- live `getComputedStyle` re-capture is required to upgrade them to verified.
646
- -->