zugzbot 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (786) hide show
  1. package/.opencode/agents/sdd-coder.md +5 -4
  2. package/.opencode/agents/sdd-orchestrator.md +11 -10
  3. package/.opencode/agents/sdd-spec-writer.md +3 -4
  4. package/.opencode/commands/loop.md +1 -1
  5. package/.opencode/plugins/loop-enforcer.ts +0 -1
  6. package/.opencode/plugins/sdd-bridge.ts +1 -1
  7. package/.opencode/rules/sdd-global.md +8 -0
  8. package/.opencode/scripts/lint-charts.js +1 -2
  9. package/.opencode/skills/sdd-foundation-overview/SKILL.md +3 -4
  10. package/.opencode/skills/sdd-methodology/SKILL.md +8 -10
  11. package/.opencode/skills/sdd-quickstart/SKILL.md +5 -9
  12. package/.opencode/skills/shadcn-templates/SKILL.md +93 -32
  13. package/.opencode/templates/nextjs-shadcn/components.json +4 -1
  14. package/.opencode/tools/sdd_bootstrap.ts +21 -0
  15. package/.opencode/tools/sdd_catalog.ts +1040 -0
  16. package/.opencode/tools/sdd_core.ts +8 -6
  17. package/.opencode/tools/sdd_lucide.ts +112 -0
  18. package/README.md +1 -7
  19. package/opencode.json +0 -10
  20. package/package.json +1 -3
  21. package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
  22. package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
  23. package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
  24. package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
  25. package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
  26. package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
  27. package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
  28. package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
  29. package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
  30. package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
  31. package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
  32. package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
  33. package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
  34. package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
  35. package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
  36. package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
  37. package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
  38. package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
  39. package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
  40. package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
  41. package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
  42. package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
  43. package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
  44. package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
  45. package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
  46. package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
  47. package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
  48. package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
  49. package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
  50. package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
  51. package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
  52. package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
  53. package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
  54. package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
  55. package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
  56. package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
  57. package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
  58. package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
  59. package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
  60. package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
  61. package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
  62. package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
  63. package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
  64. package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
  65. package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
  66. package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
  67. package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
  68. package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
  69. package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
  70. package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
  71. package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
  72. package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
  73. package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
  74. package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
  75. package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
  76. package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
  77. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  78. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
  79. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
  80. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
  81. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
  82. package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
  83. package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
  84. package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
  85. package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
  86. package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
  87. package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
  88. package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
  89. package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
  90. package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
  91. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  92. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  93. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
  94. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
  95. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
  96. package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
  97. package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
  98. package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
  99. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  100. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
  101. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
  102. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
  103. package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
  104. package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
  105. package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
  106. package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
  107. package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
  108. package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
  109. package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
  110. package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
  111. package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
  112. package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
  113. package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
  114. package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
  115. package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
  116. package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
  117. package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
  118. package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
  119. package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
  120. package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
  121. package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
  122. package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
  123. package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
  124. package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
  125. package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
  126. package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
  127. package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
  128. package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
  129. package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
  130. package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
  131. package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
  132. package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
  133. package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
  134. package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
  135. package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
  136. package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
  137. package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
  138. package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
  139. package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
  140. package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
  141. package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
  142. package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
  143. package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
  144. package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
  145. package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
  146. package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
  147. package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
  148. package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
  149. package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
  150. package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
  151. package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
  152. package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
  153. package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
  154. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  155. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
  156. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
  157. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
  158. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
  159. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
  160. package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
  161. package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
  162. package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
  163. package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
  164. package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
  165. package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
  166. package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
  167. package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
  168. package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
  169. package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
  170. package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
  171. package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
  172. package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
  173. package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
  174. package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
  175. package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
  176. package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
  177. package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
  178. package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
  179. package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
  180. package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
  181. package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
  182. package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
  183. package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
  184. package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
  185. package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
  186. package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
  187. package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
  188. package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
  189. package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
  190. package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
  191. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  192. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
  193. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
  194. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
  195. package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
  196. package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
  197. package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
  198. package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
  199. package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
  200. package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
  201. package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
  202. package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
  203. package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
  204. package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
  205. package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
  206. package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
  207. package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
  208. package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
  209. package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
  210. package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
  211. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
  212. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
  213. package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
  214. package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
  215. package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
  216. package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
  217. package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
  218. package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
  219. package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
  220. package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
  221. package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
  222. package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
  223. package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
  224. package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
  225. package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
  226. package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
  227. package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
  228. package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
  229. package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
  230. package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
  231. package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
  232. package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
  233. package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
  234. package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
  235. package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
  236. package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
  237. package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
  238. package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
  239. package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
  240. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  241. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
  242. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  243. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  244. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
  245. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
  246. package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
  247. package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
  248. package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
  249. package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
  250. package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
  251. package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
  252. package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
  253. package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
  254. package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
  255. package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
  256. package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
  257. package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
  258. package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
  259. package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
  260. package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
  261. package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
  262. package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
  263. package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
  264. package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
  265. package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
  266. package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
  267. package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
  268. package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
  269. package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
  270. package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
  271. package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
  272. package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
  273. package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
  274. package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
  275. package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
  276. package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
  277. package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
  278. package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
  279. package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
  280. package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
  281. package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
  282. package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
  283. package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
  284. package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
  285. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  286. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  287. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
  288. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
  289. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
  290. package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
  291. package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
  292. package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
  293. package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
  294. package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
  295. package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
  296. package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
  297. package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
  298. package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
  299. package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
  300. package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
  301. package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
  302. package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
  303. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  304. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
  305. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
  306. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
  307. package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
  308. package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
  309. package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
  310. package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
  311. package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
  312. package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
  313. package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
  314. package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
  315. package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
  316. package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
  317. package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
  318. package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
  319. package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
  320. package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
  321. package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
  322. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  323. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  324. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
  325. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
  326. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
  327. package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
  328. package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
  329. package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
  330. package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
  331. package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
  332. package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
  333. package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
  334. package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
  335. package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
  336. package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
  337. package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
  338. package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
  339. package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
  340. package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
  341. package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
  342. package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
  343. package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
  344. package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
  345. package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
  346. package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
  347. package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
  348. package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
  349. package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
  350. package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
  351. package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
  352. package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
  353. package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
  354. package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
  355. package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
  356. package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
  357. package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
  358. package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
  359. package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
  360. package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
  361. package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
  362. package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
  363. package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
  364. package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
  365. package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
  366. package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
  367. package/.opencode/oh-my-design/design-md/line/README.md +0 -12
  368. package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
  369. package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
  370. package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
  371. package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
  372. package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
  373. package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
  374. package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
  375. package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
  376. package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
  377. package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
  378. package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
  379. package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
  380. package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
  381. package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
  382. package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
  383. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  384. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
  385. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
  386. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
  387. package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
  388. package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
  389. package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
  390. package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
  391. package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
  392. package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
  393. package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
  394. package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
  395. package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
  396. package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
  397. package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
  398. package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
  399. package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
  400. package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
  401. package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
  402. package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
  403. package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
  404. package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
  405. package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
  406. package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
  407. package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
  408. package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
  409. package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
  410. package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
  411. package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
  412. package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
  413. package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
  414. package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
  415. package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
  416. package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
  417. package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
  418. package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
  419. package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
  420. package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
  421. package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
  422. package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
  423. package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
  424. package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
  425. package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
  426. package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
  427. package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
  428. package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
  429. package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
  430. package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
  431. package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
  432. package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
  433. package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
  434. package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
  435. package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
  436. package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
  437. package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
  438. package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
  439. package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
  440. package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
  441. package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
  442. package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
  443. package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
  444. package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
  445. package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
  446. package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
  447. package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
  448. package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
  449. package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
  450. package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
  451. package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
  452. package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
  453. package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
  454. package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
  455. package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
  456. package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
  457. package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
  458. package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
  459. package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
  460. package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
  461. package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
  462. package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
  463. package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
  464. package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
  465. package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
  466. package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
  467. package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
  468. package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
  469. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  470. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
  471. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  472. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
  473. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  474. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
  475. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
  476. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
  477. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
  478. package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
  479. package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
  480. package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
  481. package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
  482. package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
  483. package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
  484. package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
  485. package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
  486. package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
  487. package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
  488. package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
  489. package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
  490. package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
  491. package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
  492. package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
  493. package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
  494. package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
  495. package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
  496. package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
  497. package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
  498. package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
  499. package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
  500. package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
  501. package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
  502. package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
  503. package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
  504. package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
  505. package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
  506. package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
  507. package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
  508. package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
  509. package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
  510. package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
  511. package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
  512. package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
  513. package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
  514. package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
  515. package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
  516. package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
  517. package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
  518. package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
  519. package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
  520. package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
  521. package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
  522. package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
  523. package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
  524. package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
  525. package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
  526. package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
  527. package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
  528. package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
  529. package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
  530. package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
  531. package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
  532. package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
  533. package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
  534. package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
  535. package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
  536. package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
  537. package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
  538. package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
  539. package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
  540. package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
  541. package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
  542. package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
  543. package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
  544. package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
  545. package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
  546. package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
  547. package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
  548. package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
  549. package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
  550. package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
  551. package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
  552. package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
  553. package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
  554. package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
  555. package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
  556. package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
  557. package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
  558. package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
  559. package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
  560. package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
  561. package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
  562. package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
  563. package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
  564. package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
  565. package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
  566. package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
  567. package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
  568. package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
  569. package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
  570. package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
  571. package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
  572. package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
  573. package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
  574. package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
  575. package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
  576. package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
  577. package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
  578. package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
  579. package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
  580. package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
  581. package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
  582. package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
  583. package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
  584. package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
  585. package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
  586. package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
  587. package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
  588. package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
  589. package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
  590. package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
  591. package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
  592. package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
  593. package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
  594. package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
  595. package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
  596. package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
  597. package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
  598. package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
  599. package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
  600. package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
  601. package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
  602. package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
  603. package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
  604. package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
  605. package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
  606. package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
  607. package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
  608. package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
  609. package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
  610. package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
  611. package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
  612. package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
  613. package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
  614. package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
  615. package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
  616. package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
  617. package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
  618. package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
  619. package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
  620. package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
  621. package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
  622. package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
  623. package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
  624. package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
  625. package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
  626. package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
  627. package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
  628. package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
  629. package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
  630. package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
  631. package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
  632. package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
  633. package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
  634. package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
  635. package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
  636. package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
  637. package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
  638. package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
  639. package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
  640. package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
  641. package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
  642. package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
  643. package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
  644. package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
  645. package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
  646. package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
  647. package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
  648. package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
  649. package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
  650. package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
  651. package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
  652. package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
  653. package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
  654. package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
  655. package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
  656. package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
  657. package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
  658. package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
  659. package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
  660. package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
  661. package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
  662. package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
  663. package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
  664. package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
  665. package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
  666. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  667. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  668. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  669. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
  670. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
  671. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
  672. package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
  673. package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
  674. package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
  675. package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
  676. package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
  677. package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
  678. package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
  679. package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  680. package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
  681. package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
  682. package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  683. package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
  684. package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
  685. package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
  686. package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
  687. package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
  688. package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
  689. package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
  690. package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
  691. package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
  692. package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
  693. package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
  694. package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
  695. package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
  696. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  697. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
  698. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  699. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
  700. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
  701. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
  702. package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
  703. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  704. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
  705. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
  706. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
  707. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
  708. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
  709. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
  710. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
  711. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
  712. package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
  713. package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
  714. package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
  715. package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
  716. package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
  717. package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
  718. package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
  719. package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
  720. package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
  721. package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
  722. package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
  723. package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
  724. package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
  725. package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
  726. package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
  727. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  728. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
  729. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
  730. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
  731. package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
  732. package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
  733. package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
  734. package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
  735. package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
  736. package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
  737. package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
  738. package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
  739. package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
  740. package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
  741. package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
  742. package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
  743. package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
  744. package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
  745. package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
  746. package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
  747. package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
  748. package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
  749. package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
  750. package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
  751. package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
  752. package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
  753. package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
  754. package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
  755. package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
  756. package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
  757. package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
  758. package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
  759. package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
  760. package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
  761. package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
  762. package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
  763. package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
  764. package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
  765. package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
  766. package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
  767. package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
  768. package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
  769. package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
  770. package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
  771. package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
  772. package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
  773. package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
  774. package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
  775. package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
  776. package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
  777. package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
  778. package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
  779. package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
  780. package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
  781. package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
  782. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
  783. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
  784. package/.opencode/tools/akash_catalog.ts +0 -596
  785. package/.opencode/tools/extract-design-pattern.py +0 -182
  786. package/.opencode/tools/sdd_design.ts +0 -303
@@ -1,695 +0,0 @@
1
- ---
2
- id: zigzag
3
- name: ZIGZAG
4
- country: KR
5
- category: ecommerce
6
- homepage: "https://zigzag.kr"
7
- primary_color: "#fa6ee3"
8
- logo:
9
- type: favicon
10
- slug: "https://www.google.com/s2/favicons?domain=zigzag.kr&sz=256"
11
- verified: "2026-05-15"
12
- omd: "0.1"
13
- ds:
14
- name: ZIGZAG Tech / Brunch
15
- url: "https://brunch.co.kr/@zigzag/73"
16
- type: brand
17
- description: Kakaostyle / ZIGZAG's brand & design articles — the ZDS (ZIGZAG Design System) rearchitecture and the 2021 cool-pink rebrand.
18
- og_image: "https://img1.daumcdn.net/thumb/R1280x0.fjpg/?fname=http://t1.daumcdn.net/brunch/service/user/4Zzt/image/-3UDP-Htu127zH73hWgxU-DsWNg.jpg"
19
- tokens:
20
- source: prose-derived
21
- extracted: "2026-06-09"
22
- colors:
23
- brand: "#fa6ee3"
24
- primary: "#f55dd6"
25
- primary-hover: "#e356c6"
26
- primary-pressed: "#d14fb7"
27
- pink-tint: "#feeefa"
28
- pink-border: "#fccef2"
29
- canvas: "#f5f6f6"
30
- surface: "#ffffff"
31
- on-surface: "#f9fafa"
32
- heading: "#121212"
33
- body: "#292b2b"
34
- text-secondary: "#a1a9ad"
35
- text-tertiary: "#878f91"
36
- text-disabled: "#b3babd"
37
- border: "#ecedee"
38
- border-strong: "#d0d4d6"
39
- border-active: "#c6cbcd"
40
- on-primary: "#ffffff"
41
- sale: "#fb4333"
42
- ai: "#7463f2"
43
- kakao: "#fee500"
44
- success: "#51aa5b"
45
- error: "#e84747"
46
- typography:
47
- family: { sans: "Pretendard", mono: "Menlo" }
48
- head-28: { size: 28, weight: 700, lineHeight: 1.21, tracking: 0, use: "Display hero promo headlines, brand-event titles" }
49
- head-24: { size: 24, weight: 700, lineHeight: 1.21, tracking: 0, use: "Page H1, category landing" }
50
- head-22: { size: 22, weight: 600, lineHeight: 1.18, tracking: 0, use: "Section heading" }
51
- body-16: { size: 16, weight: 400, lineHeight: 1.19, tracking: 0, use: "Standard body, default reading text" }
52
- body-15: { size: 15, weight: 500, lineHeight: 1.20, tracking: 0, use: "Product card title (grid)" }
53
- body-13: { size: 13, weight: 400, lineHeight: 1.23, tracking: 0, use: "Tertiary meta, review count, ratings" }
54
- caption-12: { size: 12, weight: 400, lineHeight: 1.17, tracking: 0, use: "Tag chip text, timestamps" }
55
- caption-11: { size: 11, weight: 600, lineHeight: 1.18, tracking: 0, use: "Micro labels, badges, tab labels" }
56
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 40 }
57
- rounded: { sm: 4, md: 8, lg: 12, full: 9999 }
58
- shadow:
59
- subtle: "0px 1px 2px rgba(0,0,0,0.05)"
60
- standard: "0px 2px 8px rgba(0,0,0,0.08)"
61
- elevated: "0px 4px 16px rgba(0,0,0,0.12)"
62
- modal: "0px 8px 32px rgba(0,0,0,0.16)"
63
- components:
64
- button-primary: { type: button, bg: "#f55dd6", fg: "#ffffff", radius: "12px", padding: "14px 20px", font: "16px / 600", use: "Primary commerce CTA — 구매하기, 장바구니 담기" }
65
- button-black: { type: button, bg: "#121212", fg: "#ffffff", radius: "12px", padding: "14px 20px", font: "16px / 600", use: "Default primary CTA on non-brand surfaces — 다음, 확인, 주문하기" }
66
- button-pink-ghost: { type: button, bg: "#ffffff", fg: "#f55dd6", radius: "12px", padding: "13px 19px", font: "16px / 600", use: "Secondary brand action — 찜한 상품 보기, 쿠폰함" }
67
- button-outlined: { type: button, bg: "#ffffff", fg: "#292b2b", radius: "12px", padding: "13px 19px", font: "16px / 500", use: "Tertiary action — 취소, 더보기" }
68
- button-kakao: { type: button, bg: "#fee500", fg: "#000000", radius: "12px", padding: "14px 20px", font: "16px / 600", use: "Kakao OAuth entry point only" }
69
- switch-pink: { type: toggle, bg: "#f55dd6", radius: "9999px", use: "Notification preferences, filter inclusions; track-off gray-80, white thumb" }
70
- product-card: { type: card, bg: "#ffffff", radius: "8px", use: "Workhorse grid cell; 1:1 thumbnail, title BODY_15 MEDIUM, price BOLD" }
71
- chip-selected: { type: badge, bg: "#feeefa", fg: "#f55dd6", radius: "9999px", padding: "6px 12px", font: "13px / 500", use: "Filter pill active state" }
72
- chip-default: { type: badge, bg: "#ffffff", fg: "#393b3d", radius: "9999px", padding: "6px 12px", font: "13px / 500", use: "Filter pill default" }
73
- chip-ai: { type: badge, bg: "#ffffff", fg: "#7463f2", radius: "9999px", padding: "6px 12px", font: "13px / 600", use: "AI recommendation surfaces only" }
74
- search-input: { type: input, bg: "#f5f6f6", fg: "#292b2b", radius: "12px", padding: "12px 14px", font: "15px / 400", use: "Header search bar; focus border gray-800, no pink ring" }
75
- badge-discount: { type: badge, bg: "#fb4333", fg: "#ffffff", radius: "4px", padding: "2px 6px", font: "11px / 700", use: "Discount % on product thumbnails" }
76
- badge-time: { type: badge, bg: "#121212", fg: "#ffffff", radius: "4px", padding: "4px 8px", font: "11px / 700", use: "Time-limited — 24시간 한정, 오늘만" }
77
- badge-mdpick: { type: badge, bg: "#ffffff", fg: "#121212", radius: "4px", padding: "2px 6px", font: "10px / 700", use: "Editorial pick markers; 1px black border" }
78
- bottom-sheet: { type: dialog, bg: "#ffffff", radius: "16px", padding: "8px", use: "Filter sheet, option selector; top corners only, gray-80 drag handle, dimmed backdrop" }
79
- tab-bottom: { type: tab, bg: "#ffffff", fg: "#878f91", font: "11px / 600", active: "Npx #121212 icon + label", use: "Mobile primary nav — 홈/카테고리/찜/마이페이지/알림" }
80
- components_harvested: true
81
- ---
82
-
83
- # Design System Inspiration of ZIGZAG (지그재그)
84
-
85
- ## 1. Visual Theme & Atmosphere
86
-
87
- ZIGZAG is the gold standard of Korean fashion-commerce design — a mobile-first shop-aggregator UI that treats a 600px-wide phone canvas as a curated magazine spread rather than a transactional grid. The page opens on a near-white surface (`#f5f6f6` / `#f9fafa` — gray-20/10, never pure `#ffffff`) with charcoal headings (`#121212` / `#181818` — gray-970/950) and a saturated brand pink (`--zds-color-semantic-brand-zigzag: #fa6ee3`) reserved for the moments that matter — the ZIGZAG wordmark itself, the primary "구매하기" CTA, the heart-filled "찜" affordance, and brand-event banners. This is the ZIGZAG pink that emerged from the 2021 rebrand: deliberately cooler than the previous "hot pink" so it harmonises with the editorial photography of 7,000+ fashion partner shops without competing with their own product imagery.
88
-
89
- The custom design system is internally called **ZDS (ZIGZAG Design System)**, shipped as a token-driven Vanilla Extract (zero-runtime CSS-in-JS) package set since mid-2023 — replacing the team's earlier Emotion-based implementation specifically so every color, type, and corner-radius reference resolves to a CSS variable at build time. Tokens are namespaced in three tiers: `--zds-color-palette-*` (raw scale), `--zds-color-semantic-*` (role-bound), `--zds-color-component-*` (component-bound). The brand pink lives at `--zds-color-semantic-brand-zigzag` and a secondary lighter shade `--zds-color-palette-pink-400: #f55dd6` powers the interactive pink button system.
90
-
91
- Typography is **Pretendard** — the OFL-licensed Korean-Latin hybrid sans that has become the de facto KR product typeface. The stack `Pretendard JP, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif` is loaded from a self-hosted CDN (`cf.res.s.zigzag.kr/fonts/Pretendard/*`) in four weights (400/500/600/700). Classnames follow a literal `HEAD_28 / BODY_16 / CAPTION_12` convention combined with weight modifiers `.BOLD / .SEMIBOLD / .MEDIUM / .REGULAR` — opinionated, predictable, and visible in DevTools without translation.
92
-
93
- What truly distinguishes ZIGZAG is its commitment to **mobile-as-canvas at the desktop breakpoint**. The entire experience is locked to a `max-width: 600px` centred column even at 1920px — there is no responsive desktop reflow. The desktop "version" is the mobile version, centred. This is unusual restraint in Korean commerce (Coupang, Musinsa both render dramatically different desktop layouts) and signals a clear brand thesis: the trend-discovery loop happens on phones, so the design should not be optimised for any other surface.
94
-
95
- **Key Characteristics:**
96
- - ZDS brand pink (`#fa6ee3`) — the 2021-rebrand cool-toned pink, reserved for brand wordmark + primary CTAs + favorites
97
- - Secondary interactive pink (`#f55dd6` — pink-400) for active states and `pink-450 #e356c6` for hover, `pink-550 #d14fb7` for pressed
98
- - Pretendard (4 weights, self-hosted) with literal `HEAD_/BODY_/CAPTION_` size classnames
99
- - Token system in three explicit tiers: palette / semantic / component
100
- - 600px max-width mobile-web column — desktop = centred mobile (intentional brand statement)
101
- - Surface palette is off-white (`#f5f6f6`, `#f9fafa`), never pure `#ffffff` — softens the grid against editorial product photography
102
- - Corner-radius scale 0/2/4/6/8/12/16/20/full — pill (`9999px`) is licensed for chips and bottom-sheet handles only
103
- - Coral-red (`#fb4333`) as an alert/accent partner color, distinct from the brand pink
104
- - Brand colors of partners surfaced explicitly: `--zds-color-semantic-brand-kakao: #fee500` (Kakao chrome) and `--zds-color-semantic-brand-selected: #ff4c34` (cross-promo accent)
105
-
106
- ## 2. Color Palette & Roles
107
-
108
- ### Brand Anchor
109
- - **ZIGZAG Pink** (`#fa6ee3`): `--zds-color-semantic-brand-zigzag`. The canonical brand pink — wordmark, brand-event banners, header chrome on brand surfaces.
110
- - **Pink 400** (`#f55dd6`): `--zds-color-palette-pink-400`. Interactive primary on pink buttons, switches in "on" state, primary CTA where pink is the brand statement.
111
- - **Pink 450 Hover** (`#e356c6`): `--zds-color-component-button-pink-hovered`. Hover state on pink primary buttons.
112
- - **Pink 550 Pressed** (`#d14fb7`): `--zds-color-component-button-pink-pressed`. Pressed state on pink primary buttons.
113
- - **Pink 50** (`#feeefa`): Lightest tint — pink-themed cards, badges, hovered ghost surfaces (`pink-400-opacity-8`).
114
-
115
- ### Pink Scale (full ramp)
116
- - 50 (`#feeefa`), 100 (`#fddef6`), 150 (`#fccef2`), 200 (`#faaeea`), 300 (`#f88de2`), 400 (`#f55dd6`), 450 (`#e356c6`), 500 (`#dc53c0`), 550 (`#d14fb7`), 600 (`#b5449e`), 700 (`#8f357c`), 800 (`#69275b`), 900 (`#4f1d45`), 950 (`#30122a`)
117
-
118
- ### Neutral / Gray Scale (charcoal-leaning, slight cool undertone)
119
- - **Gray 10** (`#f9fafa`): `--zds-color-semantic-background-on-surface` (light). Card surfaces.
120
- - **Gray 20** (`#f5f6f6`): `--zds-color-semantic-background-base` (light). Page background — the canonical off-white.
121
- - **Gray 30** (`#ecedee`): `--zds-color-semantic-border-primary` (light). Default borders, dividers.
122
- - **Gray 50** (`#e2e5e6`): `--zds-color-semantic-fill-primary` (light). Filled surfaces, button ghost backgrounds.
123
- - **Gray 80** (`#d0d4d6`): Divider strong, secondary borders.
124
- - **Gray 100** (`#c6cbcd`): `--zds-color-semantic-border-active`.
125
- - **Gray 200** (`#b3babd`): `--zds-color-semantic-text-disabled` (light).
126
- - **Gray 250** (`#aab1b5`): Subtle text.
127
- - **Gray 300** (`#a1a9ad`): `--zds-color-semantic-text-secondary` (light).
128
- - **Gray 400** (`#878f91`): `--zds-color-semantic-text-tertiary`.
129
- - **Gray 500** (`#707679`): Mid neutral.
130
- - **Gray 550** (`#606567`): Secondary text on dark.
131
- - **Gray 600** (`#505456`): Stronger secondary.
132
- - **Gray 700** (`#393b3d`): Strong body on light surfaces.
133
- - **Gray 800** (`#292b2b`): `--zds-color-semantic-text-primary` (light) — the body-text default.
134
- - **Gray 900** (`#1f2020`): Strong heading.
135
- - **Gray 950** (`#181818`): Background-surface in dark theme.
136
- - **Gray 970** (`#121212`): `--zds-color-semantic-text-strong` (light) — display headings.
137
- - **Gray 990** (`#050505`): Darkest base — dark-theme page background.
138
-
139
- ### Common
140
- - **Common Black** (`#000`): Pure black, used sparingly for fixed dark chrome.
141
- - **Common White** (`#fff`): Elevated surfaces, modals, button inverse text.
142
-
143
- ### Accent / Semantic Roles
144
- - **Coral Red 400** (`#fb4333`): `--zds-color-semantic-accent-primary`. Sale tags, urgency badges, "🔥" promo markers. Distinct from the pink — pink is brand, coral is alert/sale.
145
- - **Coral Red 50** (`#feecea`), **100** (`#fed9d6`), **300** (`#ff5d4f`), **500** (`#e13c2d`), **600** (`#c83528`), **700** (`#96281e`), **800** (`#701d16`).
146
- - **Purple 400** (`#7463f2` / `--zds-color-palette-purple-400`): `--zds-color-semantic-accent-purple-primary`. AI-curation chips, "AI 추천" surfaces.
147
- - **Purple 500** (`#8f82ff`): `--zds-color-semantic-brand-ai-primary` — secondary AI-feature anchor.
148
- - **Brand Kakao** (`#fee500`): `--zds-color-semantic-brand-kakao`. Kakao-login chrome only — never decorative, never for ZIGZAG-owned CTAs.
149
- - **Brand Selected** (`#ff4c34`): `--zds-color-semantic-brand-selected`. Cross-promo / co-brand campaign accent.
150
- - **Brown 400** (`#b26b36`): Editorial accent (lookbook category chrome).
151
- - **Blue 400** (`#216bff`): Link / info accent. Rare on commerce surfaces — pink is the primary interactive color.
152
- - **Blue Gray 500** (`#3d4f6f`): Editorial chrome on premium-brand pages.
153
-
154
- ### State Roles
155
- - **Success Green 500** (`#51aa5b` / `#5ac366`): Order-confirmed, review-submitted toasts.
156
- - **Error Red** (`#e84747` / `#ff4d4d` / `#c31e18` / `#b21e18`): Payment-failed, validation errors.
157
-
158
- ### Surface & Borders (semantic tokens, light theme resolved)
159
- - **Background base**: `#f5f6f6` (gray-20)
160
- - **Background surface (cards)**: `#ffffff` (common-white)
161
- - **Background on-surface (nested)**: `#f9fafa` (gray-10)
162
- - **Border primary**: `#ecedee` (gray-30)
163
- - **Border secondary**: `#d0d4d6` (gray-80)
164
- - **Border active**: `#c6cbcd` (gray-100)
165
- - **Text strong**: `#121212` (gray-970)
166
- - **Text primary (body)**: `#292b2b` (gray-800)
167
- - **Text secondary**: `#a1a9ad` (gray-300)
168
- - **Text tertiary**: `#878f91` (gray-400)
169
- - **Text disabled**: `#b3babd` (gray-200)
170
-
171
- ### Dark Theme Pairings
172
- ZDS ships full dark-theme token mappings. Light/dark split is value-symmetric: `text-primary` resolves to `gray-800` in light, `gray-50` in dark; `background-base` resolves to `gray-20` in light, `gray-990` in dark. The brand pink does not shift across themes — `#fa6ee3` is constant.
173
-
174
- ## 3. Typography Rules
175
-
176
- ### Font Family
177
- - **Primary**: `Pretendard JP, Pretendard` self-hosted from `cf.res.s.zigzag.kr/fonts/Pretendard/*` (woff2 + woff, subset + full).
178
- - **Fallback stack**: `-apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif`
179
- - **Monospace**: `Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace` (rare — code/receipt detail only)
180
- - **Weights loaded**: 400 Regular / 500 Medium / 600 SemiBold / 700 Bold
181
-
182
- ### Hierarchy (ZDS literal class names)
183
-
184
- | Class | Font size | Line-height (single) | Line-height (multi) | Use |
185
- |---|---|---|---|---|
186
- | `HEAD_28` | 28px | 34px | 38px | Display — hero promo headlines, brand-event titles |
187
- | `HEAD_24` | 24px | 29px | 32px | Page H1 — category landing |
188
- | `HEAD_22` | 22px | 26px | 30px | Section heading — "오늘의 추천" |
189
- | `HEAD_20` | 20px | 24px | 28px | Card group title |
190
- | `BODY_18` | 18px | 22px | 26px | Featured product name |
191
- | `BODY_17` | 17px | 20px | 24px | Subheading body |
192
- | `BODY_16` | 16px | 19px | 24px | Standard body, default reading text |
193
- | `BODY_15` | 15px | 18px | 22px | Product card title (grid) |
194
- | `BODY_14` | 14px | 17px | 20px | Dense body — list rows, secondary product meta |
195
- | `BODY_13` | 13px | 16px | 18px | Tertiary meta — review count, ratings |
196
- | `CAPTION_12` | 12px | 14px | 16px | Tag chip text, timestamps |
197
- | `CAPTION_11` | 11px | 13px | 14px | Micro labels — "MD's PICK" badges |
198
- | `CAPTION_10` | 10px | 12px | 14px | Tiny labels |
199
- | `CAPTION_9` | 9px | 11px | 12px | Smallest — legal disclaimers |
200
- | Mono | 12–14px | — | — | Order numbers, receipts |
201
-
202
- ### Weight Modifiers (combined as second class: e.g. `HEAD_22 BOLD`)
203
- - `.BOLD` — 700 (price emphasis, hero CTAs)
204
- - `.SEMIBOLD` — 600 (section titles, important labels)
205
- - `.MEDIUM` — 500 (product names, default emphasized)
206
- - `.REGULAR` — 400 (body, descriptions)
207
-
208
- ### Principles
209
- - **Pretendard with Korean fallbacks is non-negotiable.** Hangul rendering parity with Apple SD Gothic Neo / Noto Sans KR is the explicit reason Pretendard is loaded — it's a *systemic* substitute for Apple's proprietary Korean face on non-Apple platforms.
210
- - **Literal class names over abstract scales.** `BODY_15` beats `--font-size-body-md`. Designers and engineers read DevTools without a translation table.
211
- - **Multi-line line-height is generous (140%+).** Korean letterforms need vertical air; single-line line-height tracks 1.15–1.21x font-size, multi-line tracks 1.33–1.50x.
212
- - **No display tracking.** Letter-spacing is `normal` at every size — Korean does not benefit from negative tracking the way Latin display type does.
213
- - **Price = `BOLD`, name = `MEDIUM`.** Product cards encode the visual hierarchy of commerce: the number is the strongest element, the name supports it.
214
-
215
- ## 4. Component Stylings
216
-
217
- ### Buttons
218
-
219
- **Primary Pink (filled)**
220
- - Background: `#f55dd6`
221
- - Text: `#ffffff`
222
- - Padding: 14px 20px
223
- - Radius: 12px (`--zds-corner-radius-12`)
224
- - Font: 16px Pretendard / weight 600 (SemiBold)
225
- - Hover: `#e356c6` background (`--zds-color-component-button-pink-hovered`)
226
- - Pressed: `#d14fb7` background (`--zds-color-component-button-pink-pressed`)
227
- - Disabled: `rgba(245,93,214,0.3)` background, white text
228
- - Use: Primary commerce CTA — "구매하기", "장바구니 담기", "쿠폰 받기"
229
-
230
- **Primary Black (filled, default surface CTA)**
231
- - Background: `#121212` (gray-970)
232
- - Text: `#ffffff`
233
- - Padding: 14px 20px
234
- - Radius: 12px
235
- - Font: 16px Pretendard / weight 600
236
- - Hover: `#292b2b` background (gray-800)
237
- - Pressed: `#393b3d` background (gray-700)
238
- - Use: Default primary CTA on non-brand surfaces — "다음", "확인", "주문하기"
239
-
240
- **Pink Ghost (white surface)**
241
- - Background: `#ffffff`
242
- - Text: `#f55dd6` (pink-400)
243
- - Border: `1px solid #fccef2` (pink-150)
244
- - Padding: 13px 19px
245
- - Radius: 12px
246
- - Font: 16px Pretendard / weight 600
247
- - Hover: `rgba(245,93,214,0.08)` background (`--zds-color-component-button-pink-white-hovered`)
248
- - Pressed: `rgba(245,93,214,0.12)` background (`--zds-color-component-button-pink-white-pressed`)
249
- - Use: Secondary brand action — "찜한 상품 보기", "쿠폰함"
250
-
251
- **Outlined Neutral**
252
- - Background: `#ffffff`
253
- - Text: `#292b2b` (gray-800)
254
- - Border: `1px solid #ecedee` (gray-30)
255
- - Padding: 13px 19px
256
- - Radius: 12px
257
- - Font: 16px Pretendard / weight 500
258
- - Hover: `rgba(0,0,0,0.03)` background
259
- - Pressed: `rgba(0,0,0,0.05)` background
260
- - Use: Tertiary action — "취소", "더보기"
261
-
262
- **Kakao Login (partner-mandated chrome)**
263
- - Background: `#fee500` (brand-kakao)
264
- - Text: `#000000` (black) at 85% opacity per Kakao guideline
265
- - Padding: 14px 20px
266
- - Radius: 12px
267
- - Font: 16px Pretendard / weight 600
268
- - Use: Kakao OAuth entry point only — never reused as a decorative yellow surface
269
-
270
- ### Pink Switch / Toggle
271
-
272
- **Default**
273
- - Track on: `#f55dd6` (pink-400)
274
- - Track off: `#d0d4d6` (gray-80)
275
- - Thumb: `#ffffff` 24px circle, `0px 2px 4px rgba(0,0,0,0.12)` shadow
276
- - Radius: `9999px` (full pill)
277
- - Disabled on: `rgba(245,93,214,0.3)` (`--zds-color-component-switch-on-disabled`)
278
- - Use: Notification preferences, "찜한 알림 받기", filter inclusions
279
-
280
- ### Product Card (the workhorse component)
281
-
282
- **Grid Cell (mobile, 2-up)**
283
- - Background: `#ffffff`
284
- - Border: none (separation is via spacing)
285
- - Radius: 8px (thumbnail), 0 (card itself)
286
- - Thumbnail aspect: 1:1 with rounded 8px corners
287
- - Like button: 28–32px hit area, top-right `4–6px` inset
288
- - Emblem/nudge max-width: `calc(100% - 36px)` (mobile) / `calc(100% - 42px)` (tablet) — preserves a no-overlap zone with the like button
289
- - Pressed state: `rgba(0,0,0,0.03)` overlay (`--zds-color-component-product-card-pressed`)
290
- - Title: 15px `BODY_15 MEDIUM` `#292b2b`, max 2 lines
291
- - Brand: 13px `BODY_13 REGULAR` `#878f91`
292
- - Price (sale): 16px `BODY_16 BOLD` `#fb4333` (coral-red-400)
293
- - Price (regular): 16px `BODY_16 BOLD` `#121212`
294
- - Original price (strike): 13px `BODY_13 REGULAR` `#a1a9ad` with line-through
295
- - Discount rate: 14px `BODY_14 BOLD` `#fb4333` — always before the sale price
296
- - Rating: 12px `CAPTION_12 SEMIBOLD` `#292b2b` + star glyph + review count in parens
297
-
298
- ### Chip / Filter Pill
299
-
300
- **Selected (Pink)**
301
- - Background: `rgba(245,93,214,0.08)` (`--zds-color-palette-pink-400-opacity-8`)
302
- - Text: `#f55dd6` (pink-400)
303
- - Border: `1px solid #fccef2` (pink-150)
304
- - Padding: 6px 12px
305
- - Radius: 9999px (full pill)
306
- - Font: 13px `BODY_13 MEDIUM`
307
- - Use: Filter pill active state — "지금 핫한 상품", "신상품만"
308
-
309
- **Default**
310
- - Background: `#ffffff`
311
- - Text: `#393b3d` (gray-700)
312
- - Border: `1px solid #ecedee` (gray-30)
313
- - Padding: 6px 12px
314
- - Radius: 9999px
315
- - Font: 13px `BODY_13 MEDIUM`
316
-
317
- **AI Recommendation**
318
- - Background: `rgba(116,99,242,0.08)` (`--zds-color-palette-purple-400-opacity-8`)
319
- - Text: `#7463f2` (purple-400)
320
- - Border: `1px solid` purple-tint
321
- - Padding: 6px 12px
322
- - Radius: 9999px
323
- - Font: 13px `BODY_13 SEMIBOLD`
324
- - Use: AI-driven recommendation surfaces only — never decorative
325
-
326
- ### Search Input
327
-
328
- **Header Search Bar**
329
- - Background: `#f5f6f6` (gray-20)
330
- - Border: none
331
- - Radius: 12px
332
- - Padding: 12px 14px
333
- - Font: 15px `BODY_15 REGULAR` `#292b2b`
334
- - Placeholder: `#878f91` (gray-400)
335
- - Icon: leading 16px magnifier in `#707679` (gray-500)
336
- - Focus: border `1px solid #292b2b` (gray-800) — no pink focus ring (would compete with brand)
337
-
338
- ### Sale / Urgency Badge
339
-
340
- **Discount %**
341
- - Background: `#fb4333` (coral-red-400)
342
- - Text: `#ffffff`
343
- - Padding: 2px 6px
344
- - Radius: 4px
345
- - Font: 11px `CAPTION_11 BOLD`
346
- - Use: "-43%" on product thumbnails
347
-
348
- **Time-limited**
349
- - Background: `#121212`
350
- - Text: `#ffffff`
351
- - Padding: 4px 8px
352
- - Radius: 4px
353
- - Font: 11px `CAPTION_11 BOLD` with optional emoji glyph
354
- - Use: "⏰ 24시간 한정", "오늘만"
355
-
356
- **MD's PICK / Brand Curation**
357
- - Background: `#ffffff`
358
- - Text: `#121212`
359
- - Border: `1px solid #121212`
360
- - Padding: 2px 6px
361
- - Radius: 4px
362
- - Font: 10px `CAPTION_10 BOLD` uppercase
363
- - Use: Editorial pick markers
364
-
365
- ### Bottom Sheet
366
-
367
- **Default**
368
- - Background: `#ffffff`
369
- - Radius: `16px 16px 0 0` (top corners only)
370
- - Drag handle: 36px wide, 4px tall, `#d0d4d6` (gray-80), 9999px radius, top-centered with 8px top padding
371
- - Backdrop: `rgba(0,0,0,0.5)` (`--zds-color-semantic-background-dimmed`)
372
- - Use: Filter sheet, size/option selector, login prompt, share sheet
373
-
374
- ### Navigation
375
-
376
- **Header (sticky)**
377
- - Background: `#ffffff`
378
- - Border-bottom: `1px solid #ecedee` (gray-30) — appears on scroll
379
- - Height: ~52px
380
- - Logo: ZIGZAG wordmark in `#fa6ee3` (brand pink) left-aligned
381
- - Right cluster: search icon → cart icon → my-page icon, each in `#121212` with hit area 44px
382
- - Sticky with `position: -webkit-sticky` and safe-area top inset
383
-
384
- **Bottom Tab Bar (mobile primary nav)**
385
- - Background: `#ffffff`
386
- - Border-top: `1px solid #ecedee`
387
- - Items: 4–5 evenly spaced (홈 / 카테고리 / 찜 / 마이페이지 / 알림)
388
- - Active: `#121212` icon + label, 11px `CAPTION_11 SEMIBOLD`
389
- - Inactive: `#878f91` (gray-400) icon + label
390
- - Height: 56px + safe-area-inset-bottom
391
-
392
- ### Container
393
-
394
- **Mobile-web Outer Frame (the signature 600px lock)**
395
- - max-width: `600px`
396
- - margin: `0 auto`
397
- - min-height: `100vh`
398
- - background: `#ffffff`
399
- - The page beyond 600px on desktop is a neutral `#f5f6f6` margin band. This is the layout's strongest opinion.
400
-
401
- ---
402
-
403
- **Verified:** 2026-05-13 (omd:add-reference CREATE — full ZDS production CSS bundle inspected)
404
- **Tier 1 sources:** `zigzag.kr/` (live HTML; Pretendard self-hosted woff2 stack + literal `HEAD_/BODY_/CAPTION_` typography classes); `zigzag.kr/.../_next/static/css/c41594a1ffd08aa6.css` (production CSS bundle, 184599 bytes — full ZDS palette tokens, semantic tokens, component tokens, corner-radius scale, typography scale, both light + dark theme pairings); `devblog.kakaostyle.com/ko/2024-12-13-1-rebuilding-frontend-design-system/` (ZDS architecture, Vanilla Extract zero-runtime, mid-2023 rebuild)
405
- **Tier 2 sources:** getdesign.md/zigzag — no record. styles.refero.design — no record (`?q=zigzag` returns generic curated results, none ZIGZAG-specific).
406
- **Tier 2 status:** unavailable on both surfaces. Tier 1 (canonical production CSS bundle) treated as authoritative per pipeline.
407
- **Conflicts unresolved:** none. The only ambiguity is which pink is "the" ZIGZAG pink — `#fa6ee3` (`--zds-color-semantic-brand-zigzag`) is the brand-anchor pink (wordmark, brand events); `#f55dd6` (`--zds-color-palette-pink-400`) is the interactive primary on the button system. Both are documented as distinct roles; no conflict, just a two-pink architecture.
408
- **Playwright session note:** Live `browser_evaluate` capture on `zigzag.kr` was contended by a shared playwright session running parallel agents (tabs kept switching to kakaopay / banksalad / remember / zigbang mid-evaluate). Substituted with direct curl + production CSS bundle inspection, which yielded canonical tokens directly — a stronger source than runtime computed style would have been.
409
-
410
- ## 5. Layout Principles
411
-
412
- ### Spacing System
413
- - Base unit: 4px
414
- - Common values: 4px, 6px, 8px, 10px, 12px, 14px, 16px, 20px, 24px, 32px, 40px
415
- - Horizontal page padding: 16px (mobile primary)
416
- - Card-grid gutter: 8px (2-up product grid)
417
- - Section vertical rhythm: 24px between content blocks, 40px between major sections
418
-
419
- ### Grid & Container
420
- - **Design baseline: 375px mobile width**
421
- - **Hard ceiling: 600px** — every page is centred to `max-width: 600px` regardless of viewport
422
- - Beyond 600px: gray-20 (`#f5f6f6`) margin band, no responsive reflow
423
- - Product grid: 2 columns on mobile (8px gutter), occasionally 3 columns on category landings
424
- - Editorial / lookbook: full-bleed 600px hero images, 16:20 portrait aspect on featured spreads
425
-
426
- ### Whitespace Philosophy
427
- - **Breathing room for products, not for chrome.** Product cards get generous internal padding (12–14px). UI chrome (header height 52px, tab bar 56px) is tight by phone-app standards.
428
- - **Photo-first, text-second.** Editorial sections lead with a full-bleed image, copy follows below — never overlaid. The product photography from 7,000+ partner shops is the visual asset; the system stays out of its way.
429
- - **Progressive density.** Discovery surfaces (홈 / 카테고리 landing) are spacious; detail / option-select / cart screens become denser. Commitment narrows the canvas.
430
-
431
- ### Border Radius Scale (`--zds-corner-radius-*`)
432
- - 0 (`#0`): Edge-to-edge images, full-width banners
433
- - 2 (`2px`): Tiny micro-elements
434
- - 4 (`4px`): Badges, sale tags, inline pills
435
- - 6 (`6px`): Form switches in compact mode
436
- - 8 (`8px`): Product thumbnails, small cards
437
- - 12 (`12px`): Buttons, inputs, standard cards — the workhorse
438
- - 16 (`16px`): Featured cards, bottom-sheet top corners (`16px 16px 0 0`)
439
- - 20 (`20px`): Large dialog corners
440
- - full (`9999px`): Chips, switch tracks, drag handles, circular icon buttons
441
-
442
- ## 6. Depth & Elevation
443
-
444
- | Level | Treatment | Use |
445
- |-------|-----------|-----|
446
- | Flat (Level 0) | No shadow | Page background, inline elements |
447
- | Subtle (Level 1) | `0px 1px 2px rgba(0,0,0,0.05)` | List rows on hover, ambient lift |
448
- | Standard (Level 2) | `0px 2px 8px rgba(0,0,0,0.08)` | Floating filter chip, sticky CTA |
449
- | Elevated (Level 3) | `0px 4px 16px rgba(0,0,0,0.12)` | Bottom sheets, popovers, dropdown menus |
450
- | Modal (Level 4) | `0px 8px 32px rgba(0,0,0,0.16)` | Centred dialogs, full takeover modals |
451
- | Backdrop dim | `rgba(0,0,0,0.5)` (`--zds-color-semantic-background-dimmed`) | Behind every modal / bottom-sheet |
452
-
453
- **Shadow Philosophy.** Shadows are pure black with low opacity, single-layer. Unlike Stripe's blue-tinted multi-layer shadow system, ZIGZAG's shadows are deliberately undecorated — the visual interest comes from the product photography, not from elevation chrome. The brand pink never appears in shadows.
454
-
455
- ### Blur Effects
456
- - Sticky headers gain a `backdrop-filter: blur(12px)` on scroll, with the header background shifting to `rgba(255,255,255,0.9)` to let scrolled content tint through subtly.
457
-
458
- ## 7. Do's and Don'ts
459
-
460
- ### Do
461
- - Use `#fa6ee3` (brand-zigzag) only for the wordmark + brand-event chrome; reserve `#f55dd6` (pink-400) for interactive primary buttons
462
- - Use Pretendard with the full Korean fallback stack — Hangul rendering parity is the point
463
- - Use literal `HEAD_22 SEMIBOLD` style classes — they map 1:1 to ZDS tokens
464
- - Use `#fb4333` (coral-red-400) for sale prices, discount rates, urgency markers — never the pink
465
- - Use the 600px max-width container even on desktop — it's the brand's mobile-as-canvas commitment
466
- - Use `#f5f6f6` (gray-20) as page background instead of pure white — softer against product photography
467
- - Use 12px radius for buttons, 8px for product thumbnails, 16px for bottom-sheet top corners
468
- - Display price in BOLD and product name in MEDIUM — the number is the visual anchor
469
- - Surface `#fee500` (kakao yellow) only for the Kakao login button — never decoratively
470
-
471
- ### Don't
472
- - Don't confuse `#fa6ee3` (brand pink, wordmark) with `#f55dd6` (interactive pink, buttons) — they have different roles
473
- - Don't use pink and coral-red together as accents on the same surface — they read as similar saturation and create visual noise
474
- - Don't use pure `#ffffff` as the page background — gray-20 (`#f5f6f6`) is the canonical surface
475
- - Don't use blue (`#216bff`) as a primary CTA — pink is the interactive anchor
476
- - Don't responsively reflow desktop layouts — center the mobile layout at 600px max-width
477
- - Don't overlay text on product photography — ZIGZAG's editorial respects photo as photo
478
- - Don't use the kakao yellow (`#fee500`) for decoration or non-Kakao surfaces
479
- - Don't use radius > 16px on commerce surfaces (except pill chips) — large rounding reads as consumer-app, not curated commerce
480
- - Don't apply negative letter-spacing on Korean type — Hangul does not benefit from display tracking
481
- - Don't use brand pink in shadows or as decorative ornament — pink earns its presence by being interactive or brand-anchoring
482
-
483
- ## 8. Responsive Behavior
484
-
485
- ### Breakpoints
486
- | Name | Width | Key Changes |
487
- |------|-------|-------------|
488
- | Mobile (Primary) | <600px | Full design fidelity, 375px baseline, 16px h-padding |
489
- | Mobile Large | 600–768px | Same as mobile, content remains within 600px column |
490
- | Desktop | >768px | Mobile layout centred at `max-width: 600px`, gray-20 margin band on either side |
491
-
492
- **This is the layout's most opinionated decision.** ZIGZAG does not redesign for desktop. The experience is mobile-as-canvas at every breakpoint — desktop users see the mobile layout in a centred column.
493
-
494
- ### Touch Targets
495
- - Primary buttons: 48–56px tall (14px vertical padding + 16px font line-box)
496
- - Like / favorite buttons: 28–32px visible icon with 16px hit-area expansion
497
- - Tab bar items: 56px tall (full bar height)
498
- - Header icon clusters: 44px hit area minimum
499
-
500
- ### Collapsing Strategy
501
- - No collapsing — desktop is mobile, full stop
502
- - Bottom sheet → bottom sheet at all sizes (no transition to side-panel modal)
503
- - Cart, login, filter — all bottom-sheet-first
504
-
505
- ### Image Behavior
506
- - Product thumbnails maintain 1:1 aspect at all sizes, 8px radius
507
- - Hero / brand-event images use 16:20 portrait or 2:1 letterbox depending on campaign
508
- - Lazy-loaded with `cf.res.s.zigzag.kr` CDN; placeholder is gray-20 block
509
- - Editorial photography is never cropped under text overlays — copy lives below the image
510
-
511
- ## 9. Agent Prompt Guide
512
-
513
- ### Quick Color Reference
514
- - Brand pink (wordmark): ZIGZAG Pink (`#fa6ee3`)
515
- - Interactive pink (buttons): Pink 400 (`#f55dd6`)
516
- - Pink hover: Pink 450 (`#e356c6`)
517
- - Pink pressed: Pink 550 (`#d14fb7`)
518
- - Background: Gray 20 (`#f5f6f6`) — not pure white
519
- - Surface (cards): White (`#ffffff`)
520
- - Heading: Gray 970 (`#121212`)
521
- - Body: Gray 800 (`#292b2b`)
522
- - Secondary text: Gray 300 (`#a1a9ad`)
523
- - Tertiary text: Gray 400 (`#878f91`)
524
- - Border: Gray 30 (`#ecedee`)
525
- - Sale / urgency: Coral Red 400 (`#fb4333`)
526
- - AI / curation: Purple 400 (`#7463f2`)
527
- - Kakao login only: Kakao Yellow (`#fee500`)
528
-
529
- ### Example Component Prompts
530
- - "Create a product card: white bg, 8px-radius square thumbnail, 12px vertical padding. Brand 13px Pretendard `BODY_13 REGULAR` `#878f91`. Title 15px `BODY_15 MEDIUM` `#292b2b` max 2 lines. Discount rate 14px `BODY_14 BOLD` `#fb4333` immediately before sale price 16px `BODY_16 BOLD` `#fb4333`. Original price 13px `#a1a9ad` strikethrough."
531
- - "Build a primary pink CTA: `#f55dd6` bg, white text, 16px Pretendard SemiBold, 14px 20px padding, 12px radius. Hover `#e356c6`. Pressed `#d14fb7`. Min-height 48px, full-width on mobile."
532
- - "Design a filter chip (selected): `rgba(245,93,214,0.08)` bg, `#f55dd6` text, `1px solid #fccef2` border, 6px 12px padding, full-pill radius, 13px Pretendard Medium."
533
- - "Create a bottom sheet: white bg, `16px 16px 0 0` top radius. 36px×4px gray-80 drag handle, top-centred with 8px inset. Backdrop `rgba(0,0,0,0.5)`. Title 22px `HEAD_22 SEMIBOLD` `#121212`, body 16px `BODY_16 REGULAR` `#292b2b`."
534
- - "Design the page container: `max-width: 600px`, `margin: 0 auto`, `min-height: 100vh`, white bg. Beyond 600px on desktop show gray-20 (`#f5f6f6`) margin. Do not reflow to multi-column."
535
-
536
- ### Iteration Guide
537
- 1. Always use Pretendard with the Korean fallback chain (Apple SD Gothic Neo → Noto Sans KR → Malgun Gothic) — Hangul rendering is the point
538
- 2. Brand pink `#fa6ee3` ≠ interactive pink `#f55dd6` — keep them in their lanes
539
- 3. Sale prices and urgency are coral-red (`#fb4333`), never pink — pink is brand/interaction, coral is alert
540
- 4. Background is `#f5f6f6` (gray-20), not pure white — preserves separation from product photography
541
- 5. Corner radius: 8px thumbnails, 12px buttons/cards, 16px top corners of bottom sheets, full-pill for chips
542
- 6. Shadows are pure black low-opacity, single-layer — no colored shadows, no multi-layer stacks
543
- 7. 600px max-width is non-negotiable — desktop is centred mobile, not a re-layout
544
- 8. Price BOLD, name MEDIUM — the number is the visual anchor on every product card
545
- 9. Pretendard weight scale: 400 / 500 / 600 / 700 — no 300 or 800 (not loaded)
546
-
547
- ---
548
-
549
- ## 10. Voice & Tone
550
-
551
- ZIGZAG speaks like a stylish friend who already knows what's trending — energetic, fashion-fluent, decisively Korean female-vernacular, never apologetic about taste. The 2021 rebrand articulated the voice as **Memorable, Effortless, Inspiring, Contextual**. Tone is younger and more playful than musinsa's editorial cool or coupang's logistics-flat utility — ZIGZAG is the playground where trying things is the point. Korean is the primary voice; English appears only as a secondary translation for the global app surface, never as parity.
552
-
553
- | Context | Tone |
554
- |---|---|
555
- | Hero campaign | Discovery-framed verb forms (`발견하세요`, `시작해보세요`). Confident, never hedged. |
556
- | Product card brand line | Plain brand-name, no marketing copy — let the photography work |
557
- | Promo banners | Short urgent imperatives + emoji glyph (`🔥 24시간만`, `⏰ 마감 임박`) — emoji is licensed on commerce surfaces, unlike Toss |
558
- | Filter / category labels | Specific noun phrases (`오피스룩`, `데일리룩`, `홈웨어`) — never euphemisms |
559
- | Search empty state | One-line explain + suggest action — never `결과가 없습니다` |
560
- | Error (payment) | Specific code + plain-Korean guidance + one retry CTA |
561
- | Success (order placed) | Celebrate without overpromising — `주문이 완료되었어요`, not `축하합니다 🎉🎉🎉` |
562
- | Onboarding | Second-person, single idea per screen, casual `해요` register |
563
- | Legal / disclosure | Formal `합니다` endings — the only register shift |
564
-
565
- **Forbidden phrases.** `불편을 드려 죄송합니다`, generic `Oops`, ad-copy clichés (`혁신적인`, `세상에 없던`), aggressive marketing exclamations on functional surfaces (`!!!`), price approximations (`약 ~원` on commerce). Loyalty programs and badge copy never use English-only phrases — Korean-first or bilingual.
566
-
567
- **Voice samples (verified live on `brunch.co.kr/@zigzag/73`, brand-owned 2022 publication):**
568
- - *"나만의 스타일을 발견할 수 있는 플레이그라운드"* — the post-2022 mission statement
569
- - *"쇼핑을 넘어, 나의 라이프 스타일을 찾는 곳"* — the lifestyle expansion framing
570
- - *"다양함을 존중하는"* — diversity-respecting (used as a rebrand pillar)
571
- - *"나답게"* — be true to yourself (the verb-form imperative)
572
- - Rebrand pillars: *Memorable, Effortless, Inspiring, Contextual*
573
-
574
- <!-- illustrative: empty-cart, payment-failed, order-placed below are reasoned defaults, not verified live app strings. A logged-in audit pass should replace. -->
575
- - Empty cart: *"아직 담은 상품이 없어요. 마음에 드는 스타일을 찾아볼까요?"* + single pink CTA *"홈으로 가기"*
576
- - Payment failed: *"결제가 완료되지 않았어요. 카드 정보를 확인하고 다시 시도해주세요."* (no `죄송합니다`)
577
- - Order placed: *"주문이 완료되었어요. 곧 출고 알림을 보내드릴게요."*
578
-
579
- ## 11. Brand Narrative
580
-
581
- ZIGZAG is the consumer brand of **Croquis.com (크로키닷컴)**, founded in **February 2012 by Seo Jung-hoon (서정훈)** — a 1977-born former dev-team lead at Digital Aria. Croquis launched the ZIGZAG app in **June 2015** as a shopping-mall *bookmark* app: not a marketplace, not a storefront, but an aggregator that crawled 300 Dongdaemun-based women's fashion online malls in three days of Excel work and bundled them into one phone screen. Within two months top malls were requesting more exposure ([apparelnews](https://m.apparelnews.co.kr/news/news_view/?idx=186346), [Financial News](https://www.fnnews.com/news/201902241808512757)).
582
-
583
- The founding rejection was of the assumption that fashion ecommerce should *be* a mall. Korean indie women's fashion in the mid-2010s was a long-tail of thousands of small shops, each with passionate audiences and zero discoverability beyond Naver bookmarks. ZIGZAG's bet was that the *bookmark* — the act of saving and returning — was the real product. The catchphrase *"니 맘대로 사세요"* (Live as you like / Buy as you like, popularised in TV campaigns starring 윤여정) made the framing explicit: the platform doesn't curate for you; it surfaces options so you can choose with confidence.
584
-
585
- By 2020 ZIGZAG was a top-grossing women's fashion app in Korea ([byline.network](https://byline.network/2020/05/04-26/)). On **April 15, 2021**, Kakao Corporation acquired Croquis at an enterprise value estimated near 1 trillion KRW, and on **July 1, 2021** completed the merger that formed **KakaoStyle (카카오스타일)** — with Seo Jung-hoon retained as CEO and the ZIGZAG service name preserved ([asiae.co.kr](https://cm.asiae.co.kr/en/article/2021070110025515550)). KakaoStyle now operates as a 50.9%-Kakao-owned affiliate and crossed **1 trillion KRW combined transaction volume** across ZIGZAG and Fashion-by-Kakao by 2022.
586
-
587
- The **2021 rebrand** ([brunch.co.kr/@zigzag/73](https://brunch.co.kr/@zigzag/73), [designcompass.org](https://designcompass.org/en/2022/08/25/zigzag-rebranding/), [heypop.kr](https://heypop.kr/n/38932/)) cooled the brand pink — the previous "hot pink" caused eye fatigue and refused to pair with anything but white or black. The new ZIGZAG pink (`#fa6ee3`) tones the saturation down so it harmonises with the editorial photography of 7,000+ partner shops, and the wordmark moved to a taller typeface. The brand mission was reframed from *"35 million women chose ZIGZAG"* (transactional / demographic) to *"나만의 스타일을 발견할 수 있는 플레이그라운드"* — a *playground for discovering your own style*. The rebrand pillars (**Memorable, Effortless, Inspiring, Contextual**) made the editorial intent explicit.
588
-
589
- **ZDS (ZIGZAG Design System)** is the engineering substrate that carries this brand promise into pixels. Per the December 2024 [KakaoStyle frontend devblog](https://devblog.kakaostyle.com/ko/2024-12-13-1-rebuilding-frontend-design-system/), ZDS was rebuilt starting mid-2023: Emotion (runtime CSS-in-JS) was replaced with **Vanilla Extract** (zero-runtime, build-time CSS variables). Tokens are split into Core / Components / Icons / Themes / Tokens packages. Compound-component patterns expose components as `<ProductCard.Thumbnail>`, `<ProductCard.Metadata>`, `<ProductCard.MetadataItem>` — the markup *is* the design system, not a layer above it.
590
-
591
- What ZIGZAG refuses: the institutional grey-blue palette of legacy ecommerce (Auction / Gmarket / 11번가), the masculine-coded photographic minimalism of musinsa, the logistics-grid utility of coupang. ZIGZAG occupies a specific cultural location — **young Korean women's fashion-as-discovery** — and refuses to abstract it into "fashion-tech for everyone".
592
-
593
- The parent KakaoStyle articulates its operating principles in six verbs ([kakaostyle.com](https://kakaostyle.com)): *내가 사용자가 됩니다 / '왜'에서 시작합니다 / 빠르게 시도합니다 / 팀을 위해 먼저 합니다 / 스스로 일합니다 / 투명하고 솔직하게 소통합니다*. The design surface reflects them: small, fast, opinionated, repeatedly tested against the user-self.
594
-
595
- ## 12. Principles
596
-
597
- 1. **Discovery > Search.** The product is a *playground*, not a query interface. Filter pills, AI-curated chips, editorial sections, hot-now nudges all push the user toward stumbling upon something rather than searching for something. *UI implication:* default screens lead with curation modules; search bar is present but secondary in the visual hierarchy.
598
- 2. **Photography is the page.** With 7,000+ partner shops, ZIGZAG's most valuable visual asset is the product photography it doesn't shoot. The system stays out of its way — no text overlays, no decorative shadow under thumbnails, no brand chrome competing with editorial. *UI implication:* product cards have zero shadow at rest; brand pink never appears on product imagery surfaces.
599
- 3. **Mobile is the canvas, always.** The 600px max-width lock on desktop is a brand statement, not a budget constraint. *UI implication:* desktop layouts are mobile layouts centred. Never reflow to multi-column on `>1024px`.
600
- 4. **Two pinks, one role each.** `#fa6ee3` is the brand anchor (wordmark, brand-event banners); `#f55dd6` is the interactive primary (button fill, switch on-state). They never substitute for each other. *UI implication:* a CTA never uses `#fa6ee3`; the wordmark never uses `#f55dd6`.
601
- 5. **Price BOLD, name MEDIUM.** The number is the visual anchor on every commerce card. *UI implication:* `BODY_16 BOLD` for price, `BODY_15 MEDIUM` for product name — flipping the weights would feel like a magazine, not a marketplace.
602
- 6. **Coral is alert, pink is brand.** Sale prices, discount rates, urgency badges live in `#fb4333` (coral-red-400), not in pink. *UI implication:* a pink "-43%" badge would dilute brand pink into a sale color; coral keeps the lanes separate.
603
- 7. **Off-white over pure white.** Page background is `#f5f6f6` (gray-20). Pure white is reserved for elevated surfaces (cards, sheets, modals). *UI implication:* a card on a card creates a subtle elevation cue without needing a shadow.
604
- 8. **Korean type rules Korean type.** Pretendard with the full KR fallback stack, no negative letter-spacing on display sizes, generous multi-line line-height (140%+), four weights only (400/500/600/700). *UI implication:* never apply Latin display tracking to Hangul.
605
- 9. **The token names tell the truth.** ZDS exposes `--zds-color-semantic-brand-zigzag`, not `--zds-color-pink-primary`. The semantic layer carries intent. *UI implication:* component implementations reference semantic tokens, not palette tokens — if the brand pink ever moves, only the resolution changes.
606
-
607
- ## 13. Personas
608
-
609
- *Personas below are fictional archetypes informed by publicly observable ZIGZAG user segments (Korean women 18–34, fashion-discovery shoppers, trend-fluent mobile-natives), not individual people.*
610
-
611
- **소연 (Soyeon), 24, Seoul.** University senior, marketing major. Opens ZIGZAG 4–6 times a day — commute, between classes, lying in bed at 11pm. Doesn't search; scrolls categories and saves to 찜 obsessively. Has 200+ saved items she'll never buy and 8 she absolutely will. Treats the pink heart icon like a feed-curation tool, not a wishlist. Notices instantly when a brand's product photography is iPhone-shot vs studio — and trusts the studio-shot more.
612
-
613
- **예린 (Yerin), 29, Daegu.** Office worker, marketing agency. Buys ZIGZAG 2–3 times a month, average basket ₩80k. Lives in the discount-rate column — `-43%` reads to her before the product photo. Filter-pill heavy user: 신상품만 + 무료배송 + 4.5★ 이상. Has a love-hate relationship with the recommendation chips — they're either eerily on-target or wildly off, never in between.
614
-
615
- **민아 (Mina), 32, Bundang.** Mother of one, returned to work part-time. ZIGZAG is her one-handed phone shopping app while a 3-year-old naps. Speed of the cart → checkout path matters more than browsing. Distrusts brands she's never heard of unless the review count is >2,000. Reads Korean only — English in product copy is a friction signal.
616
-
617
- **지유 (Jiyu), 19, Busan.** High-school senior, allowance budget. Doesn't buy on ZIGZAG; uses it as a *trend reference* — sees what's selling, then sources cheaper versions on Ali / Temu / 동대문 directly. Knows ZIGZAG pink as a cultural color, not just a UI color. If a friend's outfit looks like a ZIGZAG screenshot, that's a compliment.
618
-
619
- ## 14. States
620
-
621
- | State | Treatment |
622
- |---|---|
623
- | **Empty (cart, no items)** | White surface, illustrated pink shopping bag glyph 80×80, single line in `BODY_16 MEDIUM` `#292b2b`: *"아직 담은 상품이 없어요"*. Single CTA: pink-ghost button "둘러보기". Never `데이터가 없습니다`. |
624
- | **Empty (찜 list)** | White surface, pink heart-outline glyph 80×80, *"마음에 드는 상품에 ♥ 를 눌러 모아보세요"* in `BODY_15 REGULAR` `#878f91`. CTA "추천 상품 보기" pink-ghost. |
625
- | **Empty (search results)** | Single-line `BODY_15 REGULAR` `#878f91`: *"검색 결과가 없어요"*, with sub-line *"다른 키워드로 다시 찾아볼까요?"*. Filter summary visible above so user can broaden scope. |
626
- | **Loading (product grid first paint)** | Skeleton blocks at product-card dimensions in gray-30 (`#ecedee`) with 1.2s shimmer. Each skeleton matches the final 1:1 thumbnail + 2-line title block + price block — same shape, no value. |
627
- | **Loading (refresh, in-place)** | Pull-down spinner in brand pink (`#fa6ee3`) at top of scroll container. Previous content stays visible. Never block the scroll. |
628
- | **Loading (in pressed button)** | Button text is replaced by a 3-dot white animation. Button width does not change. Visually committed; user cannot double-tap submit. |
629
- | **Error (inline field validation)** | `#fb4333` (coral-red-400) 1px border on the input, error text below in coral 13px `BODY_13 REGULAR`. One actionable sentence — *"전화번호 형식이 올바르지 않아요"*, never *"올바른 입력이 아닙니다"*. |
630
- | **Error (payment declined)** | Dedicated screen, not a toast. Surfaces the PG decline reason verbatim plus plain-Korean guidance for the customer. Two CTAs: "다른 카드로 시도" (pink-primary) + "취소" (outlined-neutral). |
631
- | **Error (network)** | Toast at bottom, `#121212` background, white text, 3s auto-dismiss: *"네트워크 연결을 확인해주세요"*. No icon. No `Oops`. |
632
- | **Success (added to cart)** | Inline toast 3s with `#51aa5b` (success green) glyph + text: *"장바구니에 담았어요"*. Tappable to navigate to cart. |
633
- | **Success (order placed)** | Dedicated confirmation screen — not a toast. Pink confetti or simple checkmark animation, then order summary card. Single CTA "주문 상세 보기". The commitment is too important to be a 3s overlay. |
634
- | **Skeleton (any list)** | Gray-30 blocks at exact final dimensions, 1.2s linear shimmer. Card thumbnails always at 1:1 aspect to avoid layout shift on resolution. |
635
- | **Disabled** | Opacity reduced on the surface (`opacity: 0.3` per `--zds-color-component-switch-on-disabled`). Pink-on-disabled becomes `rgba(245,93,214,0.3)` — faded pink, not switched to gray, to preserve brand read. |
636
-
637
- ## 15. Motion & Easing
638
-
639
- **Durations:**
640
-
641
- | Token | Value | Use |
642
- |---|---|---|
643
- | `motion-instant` | 0ms | Toggle flips, checkbox commits, focus rings |
644
- | `motion-fast` | 150ms | Hover, press overlays, small reveals |
645
- | `motion-standard` | 250ms | Default — bottom-sheet open, card expand, tab switch |
646
- | `motion-slow` | 400ms | Emphasized — order-success animation, onboarding step advance |
647
- | `motion-page` | 320ms | Full-screen route transitions |
648
-
649
- **Easings:**
650
-
651
- | Token | Curve | Use |
652
- |---|---|---|
653
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Arriving — sheets, toasts, screen pushes |
654
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals — sheet close, toast leave |
655
- | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way — tab content, accordions |
656
- | `ease-bounce` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Reserved. Only for the 찜 (favorite) heart-fill animation and order-placed checkmark. The brand voice is playful enough to license bounce in two narrow places. |
657
-
658
- **Signature motions.**
659
-
660
- 1. **찜 heart tap.** The favorite button uses `motion-fast / ease-bounce`: heart outline → filled pink (`#fa6ee3`) with a 1.15× overshoot scale, settling back to 1.0× over 250ms. This is one of the two places spring is licensed. Removing the favorite uses `ease-standard`, not bounce — *adding* something to your collection earns the delight; *removing* doesn't.
661
- 2. **Bottom-sheet presentation.** Sheets rise from `y+40px` with `motion-standard / ease-enter`, synchronized with a backdrop fade from `rgba(0,0,0,0)` to `rgba(0,0,0,0.5)`. Dismissal uses `motion-fast / ease-exit` — leaving feels lighter than entering.
662
- 3. **Product card press feedback.** On tap-down, the card overlays `rgba(0,0,0,0.03)` (`--zds-color-component-product-card-pressed`) over `motion-fast / ease-standard` and reverses on tap-release. No scale transform — the photography is the visual subject, scaling it would feel cheap.
663
- 4. **Order-placed checkmark.** Drawn over `motion-slow / ease-bounce`, the second licensed bounce. Commit moments deserve the delight; routine commerce does not.
664
- 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. `ease-bounce` is suppressed entirely — the heart-fill becomes a crossfade, the order-placed checkmark draws linearly. The app stays fully functional; motion is never load-bearing for comprehension.
665
-
666
- <!--
667
- OmD v0.1 Sources — Philosophy Layer (sections 10–15)
668
-
669
- Direct verification (2026-05-13):
670
- - https://zigzag.kr/ (Tier 1 live HTML + static asset) — confirms Pretendard self-hosted stack, literal HEAD_/BODY_/CAPTION_ typography classes, 600px max-width centred container.
671
- - https://www.zigzag.kr/.../_next/static/css/c41594a1ffd08aa6.css — confirms full ZDS palette, semantic tokens including --zds-color-semantic-brand-zigzag: #fa6ee3, --zds-color-semantic-brand-kakao: #fee500, --zds-color-semantic-brand-selected: #ff4c34, pink-{50..950} scale, gray scale, corner-radius scale, light+dark theme pairings.
672
- - https://devblog.kakaostyle.com/ko/2024-12-13-1-rebuilding-frontend-design-system/ — confirms ZDS Vanilla Extract zero-runtime rearchitecture, mid-2023 project start, compound-component pattern (<ProductCard.Thumbnail> et al.), package split (Core/Components/Icons/Themes/Tokens).
673
- - https://brunch.co.kr/@zigzag/73 (ZIGZAG-owned brunch series) — confirms the post-2022 mission "나만의 스타일을 발견할 수 있는 플레이그라운드", the lifestyle-expansion framing "쇼핑을 넘어, 나의 라이프 스타일을 찾는 곳", the rebrand pillars Memorable / Effortless / Inspiring / Contextual, the diversity-respecting "다양함을 존중하는" and "나답게" voice.
674
- - https://kakaostyle.com/ — confirms KakaoStyle parent operating principles in six verbs and the corporate tagline "당신만의 라이프스타일을 카카오스타일에서 발견하세요".
675
- - https://designcompass.org/en/2022/08/25/zigzag-rebranding/ + https://heypop.kr/n/38932/ — confirm 2021 rebrand rationale (cool-toned pink replacing eye-fatiguing hot pink, taller wordmark typeface, tagline shift from "35 million women" to brand-fashion-life).
676
- - https://m.apparelnews.co.kr/news/news_view/?idx=186346 — confirms Seo Jung-hoon's "connector not commerce" framing.
677
- - https://www.fnnews.com/news/201902241808512757 — confirms Croquis 2012-02 founding, Seo Jung-hoon profile, 2015-06 ZIGZAG launch, 3-day Excel crawl + 300-mall seed.
678
- - https://cm.asiae.co.kr/en/article/2021070110025515550 — confirms 2021-04-15 Kakao acquisition, 2021-07-01 KakaoStyle merger completion, Seo retained as CEO, ZIGZAG name preserved.
679
-
680
- Not independently re-verified (used as widely documented context):
681
- - 1 trillion KRW transaction volume by 2022 across ZIGZAG + Fashion-by-Kakao (from grokipedia / multiple press; cited but not primary).
682
- - The "니 맘대로 사세요" / 윤여정 ad campaign provenance (KR pop-culture general knowledge; mentioned in designcompass + heypop articles as historical context).
683
-
684
- Personas (§13) are fictional archetypes informed by publicly observable ZIGZAG user segments (Korean women 18–34, mobile-native fashion-discovery shoppers). Names are illustrative; any resemblance to real individuals is unintended.
685
-
686
- Interpretive claims:
687
- - "Two pinks, one role each" (§12.4) is the author's editorial reading of why ZDS exposes both --zds-color-semantic-brand-zigzag (#fa6ee3) and --zds-color-palette-pink-400 (#f55dd6) as separate tokens with distinct component-token wiring. The naming is documented; the role-assignment is editorial.
688
- - The "mobile-as-canvas at desktop breakpoint" claim (§12.3) is the author's reading of the 600px max-width container observed in the production HTML; ZIGZAG has not, to this author's knowledge, published an explicit statement about it. The behavior is verified; the brand-thesis framing is editorial.
689
- - Illustrative state copy in §14 is reasoned default behavior, not verified logged-in app strings. Marked as illustrative.
690
-
691
- Distinction from coupang / musinsa (per task prompt):
692
- - Coupang is logistics-density commerce — gray-blue palette, dense lists, no curation pinks. Optimised for "I know what I want, ship it tomorrow".
693
- - Musinsa is editorial menswear-leaning fashion — black-and-white minimalism, magazine-style spreads, restrained color. Optimised for "show me the look".
694
- - ZIGZAG is fashion-as-playground for KR women — branded pink, photography-first, discovery-led, mobile-locked. Optimised for "let me stumble onto something I love".
695
- -->