zugzbot 1.3.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 (780) hide show
  1. package/.opencode/agents/sdd-coder.md +5 -4
  2. package/.opencode/agents/sdd-orchestrator.md +1 -1
  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/scripts/lint-charts.js +1 -2
  8. package/.opencode/skills/sdd-foundation-overview/SKILL.md +3 -4
  9. package/.opencode/skills/sdd-methodology/SKILL.md +8 -10
  10. package/.opencode/skills/sdd-quickstart/SKILL.md +5 -9
  11. package/.opencode/tools/sdd_core.ts +8 -6
  12. package/.opencode/tools/sdd_lucide.ts +112 -0
  13. package/README.md +1 -7
  14. package/opencode.json +0 -10
  15. package/package.json +1 -3
  16. package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
  17. package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
  18. package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
  19. package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
  20. package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
  21. package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
  22. package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
  23. package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
  24. package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
  25. package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
  26. package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
  27. package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
  28. package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
  29. package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
  30. package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
  31. package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
  32. package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
  33. package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
  34. package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
  35. package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
  36. package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
  37. package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
  38. package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
  39. package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
  40. package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
  41. package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
  42. package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
  43. package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
  44. package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
  45. package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
  46. package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
  47. package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
  48. package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
  49. package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
  50. package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
  51. package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
  52. package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
  53. package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
  54. package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
  55. package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
  56. package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
  57. package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
  58. package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
  59. package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
  60. package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
  61. package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
  62. package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
  63. package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
  64. package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
  65. package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
  66. package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
  67. package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
  68. package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
  69. package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
  70. package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
  71. package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
  72. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  73. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
  74. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
  75. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
  76. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
  77. package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
  78. package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
  79. package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
  80. package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
  81. package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
  82. package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
  83. package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
  84. package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
  85. package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
  86. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  87. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  88. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
  89. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
  90. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
  91. package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
  92. package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
  93. package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
  94. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  95. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
  96. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
  97. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
  98. package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
  99. package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
  100. package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
  101. package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
  102. package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
  103. package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
  104. package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
  105. package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
  106. package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
  107. package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
  108. package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
  109. package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
  110. package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
  111. package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
  112. package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
  113. package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
  114. package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
  115. package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
  116. package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
  117. package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
  118. package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
  119. package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
  120. package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
  121. package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
  122. package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
  123. package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
  124. package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
  125. package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
  126. package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
  127. package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
  128. package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
  129. package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
  130. package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
  131. package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
  132. package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
  133. package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
  134. package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
  135. package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
  136. package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
  137. package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
  138. package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
  139. package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
  140. package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
  141. package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
  142. package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
  143. package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
  144. package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
  145. package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
  146. package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
  147. package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
  148. package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
  149. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  150. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
  151. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
  152. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
  153. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
  154. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
  155. package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
  156. package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
  157. package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
  158. package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
  159. package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
  160. package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
  161. package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
  162. package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
  163. package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
  164. package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
  165. package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
  166. package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
  167. package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
  168. package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
  169. package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
  170. package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
  171. package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
  172. package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
  173. package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
  174. package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
  175. package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
  176. package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
  177. package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
  178. package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
  179. package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
  180. package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
  181. package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
  182. package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
  183. package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
  184. package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
  185. package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
  186. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  187. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
  188. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
  189. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
  190. package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
  191. package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
  192. package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
  193. package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
  194. package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
  195. package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
  196. package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
  197. package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
  198. package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
  199. package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
  200. package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
  201. package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
  202. package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
  203. package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
  204. package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
  205. package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
  206. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
  207. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
  208. package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
  209. package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
  210. package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
  211. package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
  212. package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
  213. package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
  214. package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
  215. package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
  216. package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
  217. package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
  218. package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
  219. package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
  220. package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
  221. package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
  222. package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
  223. package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
  224. package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
  225. package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
  226. package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
  227. package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
  228. package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
  229. package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
  230. package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
  231. package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
  232. package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
  233. package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
  234. package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
  235. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  236. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
  237. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  238. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  239. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
  240. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
  241. package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
  242. package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
  243. package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
  244. package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
  245. package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
  246. package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
  247. package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
  248. package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
  249. package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
  250. package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
  251. package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
  252. package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
  253. package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
  254. package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
  255. package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
  256. package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
  257. package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
  258. package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
  259. package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
  260. package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
  261. package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
  262. package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
  263. package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
  264. package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
  265. package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
  266. package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
  267. package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
  268. package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
  269. package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
  270. package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
  271. package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
  272. package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
  273. package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
  274. package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
  275. package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
  276. package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
  277. package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
  278. package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
  279. package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
  280. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  281. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  282. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
  283. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
  284. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
  285. package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
  286. package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
  287. package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
  288. package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
  289. package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
  290. package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
  291. package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
  292. package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
  293. package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
  294. package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
  295. package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
  296. package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
  297. package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
  298. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  299. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
  300. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
  301. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
  302. package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
  303. package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
  304. package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
  305. package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
  306. package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
  307. package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
  308. package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
  309. package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
  310. package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
  311. package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
  312. package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
  313. package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
  314. package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
  315. package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
  316. package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
  317. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  318. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  319. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
  320. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
  321. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
  322. package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
  323. package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
  324. package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
  325. package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
  326. package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
  327. package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
  328. package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
  329. package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
  330. package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
  331. package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
  332. package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
  333. package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
  334. package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
  335. package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
  336. package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
  337. package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
  338. package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
  339. package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
  340. package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
  341. package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
  342. package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
  343. package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
  344. package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
  345. package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
  346. package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
  347. package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
  348. package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
  349. package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
  350. package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
  351. package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
  352. package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
  353. package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
  354. package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
  355. package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
  356. package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
  357. package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
  358. package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
  359. package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
  360. package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
  361. package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
  362. package/.opencode/oh-my-design/design-md/line/README.md +0 -12
  363. package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
  364. package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
  365. package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
  366. package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
  367. package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
  368. package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
  369. package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
  370. package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
  371. package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
  372. package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
  373. package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
  374. package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
  375. package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
  376. package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
  377. package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
  378. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  379. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
  380. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
  381. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
  382. package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
  383. package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
  384. package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
  385. package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
  386. package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
  387. package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
  388. package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
  389. package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
  390. package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
  391. package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
  392. package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
  393. package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
  394. package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
  395. package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
  396. package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
  397. package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
  398. package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
  399. package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
  400. package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
  401. package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
  402. package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
  403. package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
  404. package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
  405. package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
  406. package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
  407. package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
  408. package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
  409. package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
  410. package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
  411. package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
  412. package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
  413. package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
  414. package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
  415. package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
  416. package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
  417. package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
  418. package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
  419. package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
  420. package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
  421. package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
  422. package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
  423. package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
  424. package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
  425. package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
  426. package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
  427. package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
  428. package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
  429. package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
  430. package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
  431. package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
  432. package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
  433. package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
  434. package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
  435. package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
  436. package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
  437. package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
  438. package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
  439. package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
  440. package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
  441. package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
  442. package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
  443. package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
  444. package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
  445. package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
  446. package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
  447. package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
  448. package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
  449. package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
  450. package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
  451. package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
  452. package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
  453. package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
  454. package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
  455. package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
  456. package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
  457. package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
  458. package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
  459. package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
  460. package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
  461. package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
  462. package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
  463. package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
  464. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  465. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
  466. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  467. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
  468. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  469. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
  470. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
  471. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
  472. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
  473. package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
  474. package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
  475. package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
  476. package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
  477. package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
  478. package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
  479. package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
  480. package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
  481. package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
  482. package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
  483. package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
  484. package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
  485. package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
  486. package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
  487. package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
  488. package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
  489. package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
  490. package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
  491. package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
  492. package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
  493. package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
  494. package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
  495. package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
  496. package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
  497. package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
  498. package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
  499. package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
  500. package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
  501. package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
  502. package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
  503. package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
  504. package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
  505. package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
  506. package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
  507. package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
  508. package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
  509. package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
  510. package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
  511. package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
  512. package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
  513. package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
  514. package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
  515. package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
  516. package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
  517. package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
  518. package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
  519. package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
  520. package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
  521. package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
  522. package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
  523. package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
  524. package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
  525. package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
  526. package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
  527. package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
  528. package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
  529. package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
  530. package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
  531. package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
  532. package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
  533. package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
  534. package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
  535. package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
  536. package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
  537. package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
  538. package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
  539. package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
  540. package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
  541. package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
  542. package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
  543. package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
  544. package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
  545. package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
  546. package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
  547. package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
  548. package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
  549. package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
  550. package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
  551. package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
  552. package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
  553. package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
  554. package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
  555. package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
  556. package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
  557. package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
  558. package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
  559. package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
  560. package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
  561. package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
  562. package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
  563. package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
  564. package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
  565. package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
  566. package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
  567. package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
  568. package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
  569. package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
  570. package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
  571. package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
  572. package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
  573. package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
  574. package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
  575. package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
  576. package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
  577. package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
  578. package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
  579. package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
  580. package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
  581. package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
  582. package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
  583. package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
  584. package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
  585. package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
  586. package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
  587. package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
  588. package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
  589. package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
  590. package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
  591. package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
  592. package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
  593. package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
  594. package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
  595. package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
  596. package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
  597. package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
  598. package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
  599. package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
  600. package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
  601. package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
  602. package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
  603. package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
  604. package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
  605. package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
  606. package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
  607. package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
  608. package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
  609. package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
  610. package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
  611. package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
  612. package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
  613. package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
  614. package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
  615. package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
  616. package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
  617. package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
  618. package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
  619. package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
  620. package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
  621. package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
  622. package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
  623. package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
  624. package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
  625. package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
  626. package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
  627. package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
  628. package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
  629. package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
  630. package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
  631. package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
  632. package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
  633. package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
  634. package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
  635. package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
  636. package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
  637. package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
  638. package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
  639. package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
  640. package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
  641. package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
  642. package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
  643. package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
  644. package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
  645. package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
  646. package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
  647. package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
  648. package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
  649. package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
  650. package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
  651. package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
  652. package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
  653. package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
  654. package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
  655. package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
  656. package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
  657. package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
  658. package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
  659. package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
  660. package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
  661. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  662. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  663. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  664. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
  665. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
  666. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
  667. package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
  668. package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
  669. package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
  670. package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
  671. package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
  672. package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
  673. package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
  674. package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  675. package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
  676. package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
  677. package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  678. package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
  679. package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
  680. package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
  681. package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
  682. package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
  683. package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
  684. package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
  685. package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
  686. package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
  687. package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
  688. package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
  689. package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
  690. package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
  691. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  692. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
  693. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  694. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
  695. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
  696. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
  697. package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
  698. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  699. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
  700. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
  701. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
  702. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
  703. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
  704. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
  705. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
  706. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
  707. package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
  708. package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
  709. package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
  710. package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
  711. package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
  712. package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
  713. package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
  714. package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
  715. package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
  716. package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
  717. package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
  718. package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
  719. package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
  720. package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
  721. package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
  722. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  723. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
  724. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
  725. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
  726. package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
  727. package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
  728. package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
  729. package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
  730. package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
  731. package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
  732. package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
  733. package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
  734. package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
  735. package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
  736. package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
  737. package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
  738. package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
  739. package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
  740. package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
  741. package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
  742. package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
  743. package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
  744. package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
  745. package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
  746. package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
  747. package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
  748. package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
  749. package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
  750. package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
  751. package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
  752. package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
  753. package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
  754. package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
  755. package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
  756. package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
  757. package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
  758. package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
  759. package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
  760. package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
  761. package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
  762. package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
  763. package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
  764. package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
  765. package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
  766. package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
  767. package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
  768. package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
  769. package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
  770. package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
  771. package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
  772. package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
  773. package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
  774. package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
  775. package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
  776. package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
  777. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
  778. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
  779. package/.opencode/tools/extract-design-pattern.py +0 -182
  780. package/.opencode/tools/sdd_design.ts +0 -303
@@ -1,529 +0,0 @@
1
- ---
2
- id: fastcampus
3
- name: Fastcampus
4
- country: KR
5
- category: education
6
- homepage: "https://fastcampus.co.kr"
7
- primary_color: "#fc1c49"
8
- logo:
9
- type: favicon
10
- slug: "https://www.google.com/s2/favicons?domain=fastcampus.co.kr&sz=256"
11
- verified: "2026-05-15"
12
- omd: "0.1"
13
- tokens:
14
- source: prose-derived
15
- extracted: "2026-06-09"
16
- colors:
17
- primary: "#fc1c49"
18
- primary-darken: "#c9032a"
19
- primary-renewal: "#d60039"
20
- primary-low: "#ffdad8"
21
- error: "#c5213b"
22
- yellow: "#ffeb3b"
23
- yellow-low: "#fff9c4"
24
- yellow-deep: "#f57f17"
25
- orange: "#f8930f"
26
- pink: "#e91e63"
27
- pink-low: "#fce4ec"
28
- green: "#43a047"
29
- blue: "#3b83ff"
30
- blue-low: "#ebf3ff"
31
- surface: "#f5f5f6"
32
- divider: "#e7e7e8"
33
- border-light: "#cfd0d1"
34
- disabled-text: "#a0a2a3"
35
- muted: "#747678"
36
- heading: "#252729"
37
- label: "#171b1f"
38
- white: "#ffffff"
39
- typography:
40
- family: { sans: "Pretendard Variable", mono: "Pretendard Variable" }
41
- banner: { size: 40, weight: 700, lineHeight: 1.2, use: "Home carousel two-line headline" }
42
- h1: { size: 34, weight: 700, lineHeight: 1.3, use: "Category / course page title" }
43
- h2: { size: 26, weight: 700, lineHeight: 1.35, use: "Rail group labels" }
44
- body: { size: 16, weight: 400, lineHeight: 1.5, use: "Default nav link, paragraph copy" }
45
- gnb-compact: { size: 12, weight: 600, lineHeight: 1.4, use: "Secondary compact GNB items" }
46
- button: { size: 14, weight: 600, lineHeight: 1.0, use: "Category-pill carousel label" }
47
- rank: { size: 12, weight: 500, lineHeight: 1.4, use: "Rank badge corner overlay" }
48
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, section: 48 }
49
- rounded: { sm: 4, md: 4, lg: 19, full: 9999 }
50
- components:
51
- pill-selected: { type: tab, bg: "#252729", fg: "#ffffff", radius: 4, padding: "12px 16px", font: "14px/600 Pretendard Variable", use: "Active category pill" }
52
- pill-unselected: { type: tab, bg: "#f5f5f6", fg: "#747678", radius: 4, padding: "12px 16px", font: "14px/600 Pretendard Variable", use: "Inactive category pill" }
53
- button-primary: { type: button, bg: "#fc1c49", fg: "#ffffff", radius: 4, padding: "12px 24px", font: "14px/600 Pretendard Variable", use: "Enrolment CTA (hover #c9032a)" }
54
- button-tinted: { type: button, bg: "#ffdad8", fg: "#fc1c49", radius: 4, use: "Sale-tag fills, hover scrim" }
55
- card: { type: card, bg: "#ffffff", radius: 4, use: "Course card, top-rounded 4px 4px 0 0" }
56
- rank-badge: { type: badge, bg: "#171b1f", fg: "#ffffff", radius: 4, font: "12px/500 Pretendard Variable", use: "1위 / 2위 / 3위 corner overlay" }
57
- tag-free: { type: badge, bg: "#fff9c4", fg: "#f57f17", radius: 4, padding: "2px 8px", font: "12px/600 Pretendard Variable", use: "0원 / 무료 promo tag" }
58
- tag-discount: { type: badge, bg: "#ffdad8", fg: "#fc1c49", radius: 4, padding: "2px 8px", font: "12px/600 Pretendard Variable", use: "Discount sale flag" }
59
- tag-blue: { type: badge, bg: "#ebf3ff", fg: "#3b83ff", radius: 4, padding: "2px 8px", font: "12px/600 Pretendard Variable", use: "Dev/data category tag" }
60
- tag-pink: { type: badge, bg: "#fce4ec", fg: "#e91e63", radius: 4, padding: "2px 8px", font: "12px/600 Pretendard Variable", use: "Design/creative category tag" }
61
- input: { type: input, bg: "#ffffff", fg: "#171b1f", radius: 4, padding: "0 12px", font: "14px/400 Pretendard Variable", use: "Search field (1px #cfd0d1, focus #fc1c49)" }
62
- components_harvested: true
63
- ---
64
-
65
- # Design System Inspiration of Fastcampus
66
-
67
- ## 1. Visual Theme & Atmosphere
68
-
69
- Fastcampus (패스트캠퍼스) is the design language of a **Korean adult-upskilling marketplace that competes on density, momentum, and rich-color play** — a deliberately louder register than Inflearn's calm-mint catalog or Classum's institutional blue chrome. Where Inflearn whispers "lifetime career, no pressure" with a single mint accent on a white page, Fastcampus shouts **"this cohort starts soon, the discount expires Friday"** through a full Material-style palette — yellow `#ffeb3b`, red `#fc1c49`, orange `#f8930f`, blue `#3b83ff`, green `#43a047`, pink `#e91e63` — each color used decisively per surface band so the catalog scrolls like a programmed market rather than a quiet library. The 103 `--fds-color-*` and `--c-primary-*` CSS variables on `:root` of `fastcampus.co.kr` reveal the underlying engine: a private internal "Fastcampus Design System" (the `fds-` prefix) with full **10-shade ramps per hue (50/100/200/300/400/500/600/700/800/900)** plus semantic role tokens (`--fds-semantic-primary-primary = #fc1c49`, `--fds-semantic-label-primary = #171b1f`).
70
-
71
- The signature is **crimson-red `#fc1c49`** — `--c-primary` and `--fds-semantic-primary-primary` are pinned to the same value, with `--c-primary-darken = #c9032a` and `--c-primary-darken-renewal = #d60039` as the pressed-state ladder. This red is *commerce-red*, not warning-red: it lands on enrolment CTAs, sale-price strikethroughs, and limited-time banners, never on form errors (errors use the separate `--fds-color-red-*` ramp, distinct from primary brand red). The geometric vocabulary is **4px-everywhere with corner-clipped variations**: cards use `4px 4px 0 0` (top-rounded, bottom flat — thumbnail caps the visual seam), category pills `4px`, rank badges `4px 0` (NW-SE corner only) for the dark `#171b1f` "1위 / 2위 / 3위" overlays. There is no full-pill radius on category navigation — a notable departure from Inflearn (`32px` nav pills) and Toss (`12-16px` everywhere). Fastcampus chose **sharper, more conventional rectangles** to read as "structured course list," not "browsy social feed."
72
-
73
- Typography is **Pretendard Variable** (the variable-weight version, not static Pretendard) loaded as `--font-base`, with Apple SD Gothic Neo carrying `html` and the full Korean fallback chain on body. Banner headlines run **40px / 700** with two-line breaks (`관심 가는 원데이 클래스 / 0원 사전 알림 신청하세요!`) — bigger and bolder than Inflearn's 34px hero — and category-pill labels at **14px / 600** sit at the *commerce density* register, not the calm-catalog one. Body text is `#171b1f` (`--fds-color-neutral-950`), muted is `#747678` (`--fds-color-neutral-500`), and the neutral surface fill is `#f5f5f6` (`--fds-color-neutral-30`) — a slightly cooler/grayer neutral than Inflearn's Mantine gray-0 `#f8f9fa`.
74
-
75
- **Key Characteristics:**
76
- - Pretendard Variable as primary; Apple SD Gothic Neo on `html`; full Korean fallback chain on body
77
- - Signature crimson `#fc1c49` (`--c-primary`, `--fds-semantic-primary-primary`) for enrolment / sale / limited-time; darken `#c9032a` for pressed, renewal `#d60039` for refreshed campaign skin
78
- - Rich Material-style 10-shade palette (`--fds-color-{yellow,orange,red,pink,green,blue,neutral}-{50..950}`) — yellow `#ffeb3b` / `#fdd835`, orange `#f8930f`, pink `#e91e63`, green `#43a047`, blue `#3b83ff` all live on the home rail simultaneously
79
- - Two radius vocabularies: `4px` flat (default — category pills, banner-list buttons) and `4px 4px 0 0` (course cards, top-rounded with thumbnail seam)
80
- - Banner headlines 40px / 700 (Pretendard Variable, two-line) — louder than Inflearn's 34px
81
- - Rank badges are dark `#171b1f` corner-clipped (`4px 0`) overlays on tile NW corner — "1위 / 2위 / 3위 / 1,940+" enrolment-count flex
82
- - Category-pill carousel: black-on-white selected (`#000` / `#fff` / radius 4px / 14px-600), gray-on-gray neutral (`#f5f5f6` bg / `#747678` text) for the 11+ category browser strip
83
- - Zero box-shadow on the category-pill or rank-badge layer (depth is color contrast, not elevation)
84
- - GNB nav links sit at 16px / 400 default + 12px / 600 (smaller-bolder) for `커뮤니티` / `기업교육` secondary links — an inverted-density signature versus Inflearn's flat 16px/600 nav
85
-
86
- ## 2. Color Palette & Roles
87
-
88
- ### Primary (commerce-red)
89
-
90
- - **Primary Red** (`#fc1c49`) — `--c-primary` and `--fds-semantic-primary-primary`. Enrolment CTA, sale-price highlight, limited-time banners, time-left countdown text.
91
- - **Primary Darken** (`#c9032a`) — `--c-primary-darken`. Pressed / active CTA, hover on red link.
92
- - **Primary Darken Renewal** (`#d60039`) — `--c-primary-darken-renewal`. Campaign-refresh skin variant (used on seasonal home banners).
93
- - **Primary RGB tuple** (`237, 35, 75`) — exposed as `--c-primary-rgb` for `rgba(var(--c-primary-rgb), 0.X)` alpha mixing on hover scrims.
94
-
95
- ### Neutrals (full 10-shade `--fds-color-neutral-*` ladder)
96
-
97
- | Token | Value | Use |
98
- |---|---|---|
99
- | `neutral-30` | `#f5f5f6` | Default neutral surface — category-pill rest bg, secondary chip fill |
100
- | `neutral-50` | `#e7e7e8` | Soft divider, skeleton block bg |
101
- | `neutral-100` | `#cfd0d1` | Neutral border light |
102
- | `neutral-200` | `#b7b9ba` | Neutral border default |
103
- | `neutral-300` | `#a0a2a3` | Disabled icon fill |
104
- | `neutral-400` | `#8a8c8d` | Caption / metadata bottom tier |
105
- | `neutral-500` | `#747678` | Muted text / unselected-pill label |
106
- | `neutral-600` | `#5f6163` | Secondary body text |
107
- | `neutral-700` | `#4b4d4f` | Strong body text |
108
- | `neutral-800` | `#37393b` | Heading on light surface |
109
- | `neutral-900` | `#252729` | Heading display |
110
- | `neutral-950` | `#171b1f` | `--fds-semantic-label-primary` — body / banner overlay text / rank-badge fill |
111
-
112
- ### Static neutrals
113
- - **Static White** (`#fff`) — `--fds-color-static-white`. Theme-independent white (does not flip in dark theme).
114
- - **Static Black** (`#000`) — `--fds-color-static-black`. Theme-independent black; observed as category-pill selected bg.
115
-
116
- ### Semantic role tokens (FDS namespace)
117
-
118
- - **Semantic Primary** (`#fc1c49`) — `--fds-semantic-primary-primary`. Same as `--c-primary`; the system pins them.
119
- - **Semantic Primary Low** (`#ffdad8`) — `--fds-semantic-primary-primary-low`. Tinted red surface (sale-tag fill, primary CTA hover scrim).
120
- - **Semantic Label Primary** (`#171b1f`) — default text role on light surfaces.
121
-
122
- ### Extended hue ramps (the rich-color signature)
123
-
124
- Each hue carries the full 10-shade Material-style ladder. The shipped color frequency on `/` reveals the **per-band convention**: each home-page section claims one accent hue for its category tag, badge, and gradient backdrop.
125
-
126
- - **Yellow** (`#fffde7 / #fff9c4 / #fff59d / #fff176 / #ffee58 / #ffeb3b / #fdd835 / #fbc02d / #f9a825 / #f57f17`) — "0원 사전 알림" lemon banner, attention-grabbing free-class promotion.
127
- - **Orange** (`#fef4e7 / #fddeb5 / #fccd91 / #fab75e / #fa a93f / #f8930f / #e2860e / #b0680b / #885108 / #683e06`) — early-bird discount band, "최대 25% 할인" rails.
128
- - **Red** (`#ffeceb / #ffdad8 / #ffb4b2 / #ff8d8d / #ff616a / #fc1c49 / #c5213b / #91202d / #601c20 / #331414`) — primary + error scale; `red-500 = #fc1c49` is the canonical primary.
129
- - **Pink** (`#fce4ec / #f8bbd0 / #f48fb1 / #f06292 / #ec407a / #e91e63 / #d81b60 / #c2185b / #ad1457 / #880e4f`) — creative/design category accent, "비주얼 브랜딩" rails.
130
- - **Green** (`#e8f5e9 / #c8e6c9 / #a5d6a7 / #81c784 / #66bb6a / #4caf50 / #43a047 / #388e3c / #2e7d32 / #1b5e20`) — success state, "수강신청 완료" toast, course-progress complete bar.
131
- - **Blue** (`#ebf3ff / #c2d9ff / #a5c6ff / #7cacff / #629cff / #3b83ff / #3677e8 / #2a5db5 / #20488c / #19376b`) — developer / data category accent, "Codex 기반 AI 인증시험" rails.
132
- - **Neutral** — see full ladder above.
133
-
134
- Designers picking from Fastcampus should treat the FDS hue scales as an officially shipped Material-style internal DS — even though no public DS site exists, the runtime tokens are the truth.
135
-
136
- ### Implementation hints
137
- - `--c-primary-rgb` exists alongside `--c-primary` specifically to enable `rgba(237, 35, 75, 0.X)` alpha blending — used for hover scrims and red gradient backdrops without requiring a second hex.
138
- - Yellow and orange shades cohabit on the same fold (free-class lemon + early-bird amber) — readers should treat them as **two adjacent accent slots**, not as a primary/secondary brand-color duo.
139
- - `--swiper-theme-color = #007aff` appears in the var dump — this is the Swiper.js library default, not a Fastcampus token. Do not adopt.
140
-
141
- ## 3. Typography Rules
142
-
143
- ### Font Family
144
- - **Primary** (`--font-base`): `"Pretendard Variable", pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif`
145
- - **HTML root**: `"Apple SD Gothic Neo"` (carries the document-level fallback before body inherits `--font-base`)
146
- - **Mono** (inferred): system mono stack — surfaces inside coding-bootcamp course pages and inline code snippets in course descriptions.
147
- - No custom display face. The variable-weight Pretendard (single variable file vs. Inflearn's static Pretendard) is the only typographic choice — weight ranges 100-900 are addressable.
148
- - Korean glyphs render via Pretendard Variable's full Hangul block coverage; no separate Korean web-font is shipped.
149
-
150
- ### Hierarchy
151
-
152
- | Role | Size | Weight | Line Height | Notes |
153
- |---|---|---|---|---|
154
- | Banner H3 (home carousel) | 40px | 700 | ~1.2 (≈48px on captured 96px two-line block) | Two-line marketing headline (`관심 가는 원데이 클래스 / 0원 사전 알림 신청하세요!`) |
155
- | Page H1 (inferred — category / course pages) | 32-36px | 700 | 1.3 | Course-list page titles |
156
- | Section H2 (inferred) | 24-28px | 700 | 1.35 | Rail group labels ("AI TECH", "AI CREATIVE") |
157
- | Body | 16px | 400 | 1.5 | Default nav link, paragraph copy |
158
- | GNB primary nav | 16px | 400 | 1.5 | `기업교육`-class secondary GNB items |
159
- | GNB compact (secondary) | 12px | 600 | 1.4 | `커뮤니티`-class smaller-bolder GNB items — inverted-density signature |
160
- | Button label (filled / pill) | 14px | 600 | 1.0 | Category-pill carousel label, "전체 / AI TECH / 디자인" |
161
- | Caption — rank badge | 12px | 500 | 1.4 | "1위 / 2위 / 3위" white-on-`#171b1f` corner overlay |
162
- | Caption — enrolment count | 16px | 400 | 1.4 | "1,940+ / 1,020+" alpha-30 dark pill |
163
-
164
- ### Rules
165
- - **Pretendard Variable everywhere.** No serif, no rounded display face, no Korean display contrast face. Weight is dialed via variable-weight axis (100-900), not separate static cuts.
166
- - **700 = banner, 600 = button + secondary-compact GNB, 400 = body + primary GNB.** The 500 weight appears only on rank-badge corner labels — a deliberate restraint on the otherwise-binary 400/700 cadence.
167
- - **Inverted density on GNB**: compact secondary links (`커뮤니티`, `기업교육` smaller-bolder cluster) signal "utility shortcuts" versus the 16px-400 primary nav — a Fastcampus-specific signature versus Inflearn's flat 16px-600 nav.
168
- - **Banner copy is two-line by default.** 40px / 700 with a deliberate mid-headline break (`\n`) is the brand cadence — designers reproducing the look should plan headlines around natural Korean two-clause splits, not one-line tagline drama.
169
- - Korean punctuation: straight quotes in UI; honorific `~님` reserved for instructor-facing surfaces; casual-polite `~해요 / ~하기` dominates the home carousel copy ("신청하세요", "만나자", "쓸 수 있는").
170
-
171
- ## 4. Component Stylings
172
-
173
- ### Buttons
174
-
175
- **Category Pill — Selected (Black)**
176
- - Background: `#000` (`--fds-color-static-black`)
177
- - Text: `#FFFFFF`
178
- - Border: none
179
- - Radius: 4px
180
- - Padding: 12px 16px
181
- - Height: 40px
182
- - Font: 14px / 600 / Pretendard Variable
183
- - Use: Active category in the home/courses category-pill carousel ("전체" when on category-aggregate view).
184
-
185
- **Category Pill — Unselected (Neutral)**
186
- - Background: `#f5f5f6` (`--fds-color-neutral-30`)
187
- - Text: `#747678` (`--fds-color-neutral-500`)
188
- - Border: none
189
- - Radius: 4px
190
- - Padding: 12px 16px
191
- - Height: 40px
192
- - Font: 14px / 600 / Pretendard Variable
193
- - Use: All non-active category pills ("AI TECH", "AI CREATIVE", "디자인", "영상/3D", …).
194
-
195
- **Primary CTA — Enrolment (Inferred from `--c-primary` semantic)**
196
- - Background: `#fc1c49` (`--c-primary` / `--fds-semantic-primary-primary`)
197
- - Text: `#FFFFFF`
198
- - Border: none
199
- - Radius: 4px
200
- - Padding: 12px 24px (inferred from category-pill geometry; matches 40px target height)
201
- - Height: 40-48px
202
- - Font: 14-16px / 600 / Pretendard Variable
203
- - Hover: background `#c9032a` (`--c-primary-darken`)
204
- - Pressed: background `#c9032a`
205
- - Use: "수강신청 하기", "결제하기", primary enrolment actions on course-detail and cart screens.
206
-
207
- **Primary CTA — Renewal Skin (Campaign-refresh Inferred)**
208
- - Background: `#d60039` (`--c-primary-darken-renewal`)
209
- - Text: `#FFFFFF`
210
- - Border: none
211
- - Radius: 4px
212
- - Use: Same primary role on seasonal-campaign home skins where the brand swaps to the renewal red.
213
-
214
- **Primary CTA — Tinted Surface (Inferred from `--fds-semantic-primary-primary-low`)**
215
- - Background: `#ffdad8` (`--fds-semantic-primary-primary-low`)
216
- - Text: `#fc1c49`
217
- - Border: none
218
- - Radius: 4px
219
- - Use: Sale-tag fills, primary CTA hover scrims, "할인 적용중" inline pill.
220
-
221
- **Carousel Nav — Previous / Next Arrow**
222
- - Background: `rgba(0, 0, 0, 0)` (transparent)
223
- - Text / icon color: `#171b1f` (`--fds-semantic-label-primary`)
224
- - Border: none
225
- - Radius (prev): `16px 0 0 16px` (left half-pill)
226
- - Radius (next): `0 16px 16px 0` (right half-pill)
227
- - Padding (prev): `6px 2px 6px 8px`
228
- - Padding (next): `6px 8px 6px 2px`
229
- - Height: 32px
230
- - Use: Banner carousel arrow controls. Half-pill radius pairs read as a single split surface across the carousel rail.
231
-
232
- **Carousel Nav — Dots Cluster**
233
- - Background: `rgba(0, 0, 0, 0.2)` (alpha-20 dark scrim)
234
- - Text: `#171b1f`
235
- - Border: none
236
- - Radius: 19px
237
- - Padding: 0
238
- - Height: 32px
239
- - Use: "배너 목록" — the dot-cluster overlay on the carousel.
240
-
241
- ### Cards & Containers
242
-
243
- **Course Card (Default — Top-Rounded)**
244
- - Background: transparent (thumbnail provides the surface)
245
- - Border: none
246
- - Radius: `4px 4px 0 0` (top-rounded, bottom flat)
247
- - Padding: 0 (metadata flows below thumbnail in unified card frame)
248
- - Width × Height (rail): ~327px × variable (thumbnail caps the visual seam)
249
- - Shadow: none
250
- - Use: Course tile on home rails and `/courses` listings. Thumbnail image carries the top half, metadata block sits below.
251
-
252
- **Course Card — Rank Badge Overlay (NW corner)**
253
- - Background: `#171b1f` (`--fds-semantic-label-primary`)
254
- - Text: `#FFFFFF`
255
- - Border: none
256
- - Radius: `4px 0` (NW corner only)
257
- - Padding: 0 (text-only badge, height 20px)
258
- - Height: 20px
259
- - Font: 12px / 500 / Pretendard Variable
260
- - Use: "1위 / 2위 / 3위" rank label on top-ranked course tiles.
261
-
262
- **Course Card — Enrolment-Count Pill (Below Rank)**
263
- - Background: `rgba(0, 0, 0, 0.3)`
264
- - Text: `#171b1f` (sampled — appears against a light thumbnail backdrop)
265
- - Border: none
266
- - Radius: 19px
267
- - Padding: 2px 6px
268
- - Height: 24px
269
- - Font: 16px / 400 / Pretendard Variable
270
- - Use: "1,940+ / 1,020+" enrolment-count flex — sits below rank badge on top-tier tiles.
271
-
272
- ### Navigation
273
-
274
- **Global Nav (GNB) — Desktop**
275
- - Background: transparent on scroll (sticky; `bg=rgba(0, 0, 0, 0)` captured)
276
- - Text: `#171b1f` (`--fds-semantic-label-primary`)
277
- - Border-bottom: none
278
- - Shadow: none
279
- - Position: sticky (CSS-module class `GNBDesktop-module-scss-module__*`)
280
- - Layout: [logo] · [primary nav 16px/400] · [secondary compact nav 12px/600] · [search] · [auth]
281
- - Use: Single GNB pattern persisting across `/` and category pages.
282
-
283
- ### Inputs & Forms
284
-
285
- **Text Input — Search (Inferred from category-page CSS-module pattern)**
286
- - Background: `#FFFFFF` or `#f5f5f6`
287
- - Text: `#171b1f`
288
- - Placeholder: `#747678` (`--fds-color-neutral-500`)
289
- - Border: 1px solid `#cfd0d1` (`--fds-color-neutral-100`) on rest, `1px solid #fc1c49` on focus
290
- - Radius: 4px
291
- - Padding: 0 12px
292
- - Height: 40px
293
- - Font: 14-16px / 400 / Pretendard Variable
294
- - Use: Course search field in GNB and category-filter rail.
295
-
296
- **Disabled (Inferred from neutral ladder)**
297
- - Background: `#e7e7e8` (`--fds-color-neutral-50`)
298
- - Text: `#a0a2a3` (`--fds-color-neutral-300`)
299
- - Border: none
300
- - Radius: 4px
301
- - Use: Form-incomplete state on enrolment / payment flows.
302
-
303
- ### Tags & Chips (Inferred from extended hue ramps)
304
-
305
- **Free / Promo Tag — Yellow**
306
- - Background: `#fff9c4` (`--fds-color-yellow-100`)
307
- - Text: `#f57f17` (`--fds-color-yellow-900`)
308
- - Radius: 4px
309
- - Padding: 2px 8px
310
- - Font: 12px / 600 / Pretendard Variable
311
- - Use: "0원 / 무료 / 사전알림" promotional indicators.
312
-
313
- **Discount Tag — Red**
314
- - Background: `#ffdad8` (`--fds-semantic-primary-primary-low`)
315
- - Text: `#fc1c49` (`--c-primary`)
316
- - Radius: 4px
317
- - Padding: 2px 8px
318
- - Font: 12px / 600 / Pretendard Variable
319
- - Use: "최대 25% 할인", "30% 깜짝 쿠폰" sale flags.
320
-
321
- **Category Tag — Blue (Dev / Data)**
322
- - Background: `#ebf3ff` (`--fds-color-blue-50`)
323
- - Text: `#3b83ff` (`--fds-color-blue-500`)
324
- - Radius: 4px
325
- - Padding: 2px 8px
326
- - Font: 12px / 600 / Pretendard Variable
327
- - Use: Developer / data category tags on course tiles.
328
-
329
- **Category Tag — Pink (Design / Creative)**
330
- - Background: `#fce4ec` (`--fds-color-pink-50`)
331
- - Text: `#e91e63` (`--fds-color-pink-500`)
332
- - Radius: 4px
333
- - Padding: 2px 8px
334
- - Font: 12px / 600 / Pretendard Variable
335
- - Use: Design / creative category tags.
336
-
337
-
338
- ## 16. Do's and Don'ts
339
-
340
- ### Do
341
- - Pin the signature commerce-red #fc1c49 (--c-primary / --fds-semantic-primary-primary) to enrolment CTAs, sale-price highlights and limited-time banners, using #c9032a (--c-primary-darken) for the pressed/hover state
342
- - Keep the 4px radius vocabulary everywhere and reserve 4px 4px 0 0 (top-rounded, bottom flat) for course cards so the thumbnail caps the visual seam
343
- - Assign one accent hue per content rail (yellow #ffeb3b for 0원/사전알림, orange #f8930f for early-bird discount, blue #3b83ff for dev/data, pink #e91e63 for design/creative) so the rail hue does the spatial wayfinding
344
- - Set type on the binary 400/700 cadence — 40px/700 for two-line banner headlines, 14px/600 for category-pill labels, 16px/400 for body and primary GNB — reserving 500 only for the 12px rank-badge label
345
- - Render rank as a dark #171b1f corner-clipped (4px 0) badge showing the raw number plus enrolment count (1위 / 1,940+), letting the figure speak instead of an adjective
346
- - Write microcopy in casual-polite ~해요 / ~하기 / ~만나자 for product surfaces and keep formal ~합니다 only for legal, refund and receipt screens
347
-
348
- ### Don't
349
- - Apply a full-pill radius to CTAs or category navigation — Fastcampus deliberately chose sharper 4px rectangles to read as a structured market, not a browsy social feed
350
- - Mix two accent hues within a single card; the rich Material palette is a per-band convention, and yellow and orange are adjacent accent slots, not a primary/secondary brand-color duo
351
- - Use the commerce-red #fc1c49 for system errors — form/validation errors belong to the separate --fds-color-red ramp (e.g. #c5213b), distinct from the brand primary
352
- - Adopt the --swiper-theme-color #007aff value as a brand token; it is the Swiper.js library default that leaked into the var dump, not a Fastcampus color
353
- - Editorialize ranking with superlative prose like 최고의 강의 or 압도적 1위, or add emoji and !!! tails on price/enrolment surfaces — the corner badge and raw count already carry the proof
354
- - Add elevation via box-shadow on the category-pill or rank-badge layer, or introduce parallax/scroll-triggered hero animation; depth comes from color contrast, and card hover micro-scale (1.0→1.02) is the only ambient motion outside the carousel
355
-
356
- ---
357
-
358
- **Verified:** 2026-05-15
359
- **Tier 1 sources:**
360
- - `https://fastcampus.co.kr/` — live CDP inspect (browser-harness :9222) → `assets/_reference/.live-inspect-proof.json` (40 raw_samples + 103 `--fds-color-*` / `--c-primary-*` CSS vars + Pretendard Variable font stack + banner H3 40px/700 sample + category-pill carousel 11+ samples + rank-badge + enrolment-count pill)
361
- - `https://fastcampus.co.kr/category_online_all` — second-surface live CDP inspect → 2 additional structure samples (category-page GNB confirmation)
362
- - Internal "Fastcampus Design System" (`fds-` prefix) — directly evidenced by the `--fds-color-*` + `--fds-semantic-*` namespace on `:root` of the production site
363
-
364
- **Tier 1 official DS:** ✗ negative — no public DS site (`design.fastcampus.co.kr` DNS no-resolve; `tech.day1company.io` ECONNREFUSED; `fastcampus.co.kr/design` and `/brand` 404; no Figma Community kit; no GitHub org-level design-system / Storybook / tokens repo published by Day1Company). The DS exists internally as a Material-style token set (`--fds-color-*` 10-shade ramps × 7 hues + semantic role tokens) but lives only as production runtime CSS — accessible exclusively via live inspect. Documented as authoritative negative result.
365
-
366
- **Tier 2 sources:**
367
- - `https://getdesign.md/fastcampus` — empty (verified 2026-05-15: "No designs found for 'fastcampus'")
368
- - `https://styles.refero.design/?q=fastcampus` — empty (verified 2026-05-15: no result cards returned)
369
-
370
- **Conflicts unresolved:** none
371
-
372
- **Inferred-but-not-live-captured tokens** (flagged for follow-up UPDATE on a course-detail / cart / payment surface): primary CTA labelled fill (only category-pill geometry captured live; inferred from semantic-primary token + category-pill measurements), input focus state, disabled state, exact tag chip alpha values, GNB sticky bg on scroll-down vs scroll-up, footer spacing tokens, motion durations.
373
-
374
- ## 5. Layout & Spacing
375
-
376
- Fastcampus does not expose a `--fds-space-*` token namespace at `:root` — spacing lives inside CSS module classes (`GNBDesktop-module-scss-module__q8MgGW__*`, `MainBannerCarousel-module-scss-module__*`). Observed rhythm from raw geometry:
377
-
378
- | Inferred token | Value | Typical use |
379
- |---|---|---|
380
- | space-2 | 4-6px | Tag chip padding-y, rank badge inset |
381
- | space-3 | 8px | Inline icon gap |
382
- | space-4 | 12px | Category-pill padding-y, button-inner gutter |
383
- | space-5 | 16px | Category-pill padding-x, card metadata gap |
384
- | space-6 | 24px | Rail-tile gap, section-internal block gap |
385
- | space-8 | 32px | Section-block separator |
386
- | space-10 | 48-64px | Major section divider, footer column gap |
387
-
388
- Home page width is full-bleed banner + ~1280-1440px content container. Course rails use horizontal scroll-snap on viewports < 1280px and a fixed 4-5 column grid above. Density is **commerce-dense**: above-the-fold contains banner carousel (96px headline block) + category-pill carousel (40px row) + top-3 rank tiles (~327px tall) = the user sees 3 layered acquisition surfaces in the first scroll, where Inflearn shows 1 banner + 6 tiles flat. This is the *programmed-market* feel — Fastcampus assumes the user is here to enrol this week, not to browse for a quarter.
389
-
390
- ## 6. Iconography & Imagery
391
-
392
- - **Icon set**: 24×24 stroke icons (1.5-2px stroke) for GNB and inline actions; stroke color follows text-context (`#171b1f` default, `#fc1c49` when paired with a primary surface).
393
- - **Course thumbnail style**: 16:9 photographic or illustrative (instructor portrait + course-title typography composite is the dominant convention — "강사 얼굴 + 굵은 타이포" layout). Aspect ratio is standardized but art direction is loud and varied (gradients, gradient meshes, vector illustration, photographic portraits).
394
- - **Banner illustrations**: Full-bleed gradient backgrounds (multi-color gradient or solid hue band) with white or dark headline overlay. Frequent multi-hue gradient (yellow → orange → pink) on AI-creative rails.
395
- - **Rank-badge overlays**: Strict text-only on dark-pill (`#171b1f` `4px 0` corner) — no medal icon, no star, no flame. The number itself does the work.
396
-
397
- ## 7. Motion
398
-
399
- Motion data was not exhaustively captured in this pass. Observable from raw class names and CSS-module patterns:
400
- - Banner carousel uses **Swiper.js** (`--swiper-theme-color` exposed at `:root`) — default Swiper transitions (300ms ease) on slide change, manual + auto-advance.
401
- - Category-pill carousel: horizontal scroll-snap, no animated transitions on tap (instant active-state swap).
402
- - Hover on category pill: background fade `200ms ease` (inferred — Swiper / module default).
403
- - Card hover: thumbnail micro-scale (1.0 → 1.02) `200ms ease-out` (inferred — common Korean-marketplace convention; not directly captured).
404
- - Page transitions: SSR / Next.js — full-page navigation, no client-side route animation.
405
-
406
- **Motion tokens not exposed at `:root`** — Fastcampus does not publish `--fds-motion-*` variables. Designers reproducing the look should adopt Swiper defaults (300ms slide, 200ms hover) and respect `prefers-reduced-motion: reduce`. Flagged for UPDATE pass.
407
-
408
- ## 8. States
409
-
410
- - **Hover (category pill)**: `#f5f5f6 → #e7e7e8` (inferred — neutral ladder one step down).
411
- - **Hover (primary CTA)**: `#fc1c49 → #c9032a` (`--c-primary-darken`).
412
- - **Active / Pressed (CTA)**: `#c9032a` solid; tinted ring `rgba(237, 35, 75, 0.12)` 4px offset.
413
- - **Focus**: 2px outline `#fc1c49` at 2px offset on keyboard focus; input border swaps to `#fc1c49` (inferred from primary semantic token).
414
- - **Disabled**: `#e7e7e8` background, `#a0a2a3` text, `cursor: not-allowed` (inferred from neutral ladder).
415
- - **Loading**: Inline spinner replaces CTA label; primary red CTA remains red, label swaps to icon (Swiper / FDS module convention).
416
- - **Empty**: Center-aligned illustration + headline (`아직 수강 중인 강의가 없어요`) + outlined primary CTA (`강의 둘러보기`).
417
- - **Error — Validation**: 14px text below offending field in `#fc1c49` (primary red doubles as inline-error in adult-upskilling commerce context — distinct from system error red `#c5213b`); field border swaps to `#fc1c49`.
418
- - **Error — Network**: Inline banner (`연결을 확인해 주세요. 다시 시도해주세요.`) + outlined `다시 시도` button.
419
- - **Success — Enrolment**: One-line confirmation in `#43a047` (`--fds-color-green-600`), no toast theatre.
420
- - **Skeleton — Card**: `#e7e7e8` blocks for thumbnail (16:9) + 2 text lines; shimmer 1.5s linear (inferred — Mantine / FDS default).
421
-
422
- ## 9. Accessibility & Internationalization
423
-
424
- - **Korean is the primary language.** Some technology course titles carry English terms ("React", "Next.js", "AI", "Codex"). No `/en/` mirror as of capture.
425
- - **Pretendard Variable** supports the full Hangul block plus extended Latin; English text reads naturally without a separate Latin font.
426
- - **Color contrast**:
427
- - Heading `#171b1f` on `#FFFFFF` = 16.5:1 (AAA).
428
- - Body `#747678` on `#FFFFFF` = 4.5:1 (AA for normal text).
429
- - Muted caption `#a0a2a3` on `#FFFFFF` = 2.8:1 — **fails AA**; correctly reserved for non-essential caption (rank-3 sublabel, enrolment-count footnote).
430
- - Primary `#fc1c49` on `#FFFFFF` = 4.0:1 — **borderline AA for normal text** (passes for ≥18pt large text). Fastcampus correctly uses white-on-red for CTAs (white on `#fc1c49` = 5.3:1, AA) and limits red-on-white to large-text headlines.
431
- - Category-pill selected `#FFFFFF` on `#000` = 21:1 (AAA).
432
- - **Keyboard nav**: Visible 2px primary-red outline on Tab navigation (inferred from `--c-primary` semantic).
433
- - **Screen reader**: Carousel arrows carry `aria-label` (`이전 배너`, `다음 배너`, `배너 목록` observed in raw samples). Rank badge text is in-DOM (not background-image).
434
- - **Density caveat**: The 12px / 500 rank-badge font sits at the lower bound of Korean readability — passes per Hangul x-height but reviewers should validate at 100% zoom on small viewports.
435
-
436
- ## 10. Voice & Tone
437
-
438
- Fastcampus speaks like **the senior friend who heard the workshop fills up by Friday and texts you "go now"** — energetic, time-aware, casual-polite. Where Inflearn says "부담없이 시작하기" (start without pressure), Fastcampus says "**0원 사전 알림 신청하세요!**" (sign up for the free-tier alert!) and "**최대 25% 할인!**" (up to 25% off!) — the verb is still on the learner's side, but the timing pressure is honestly named. The brand assumes the user is here because the cohort or the discount is closing soon, and the microcopy reflects that.
439
-
440
- Korean is the dominant register; English appears in technology course titles where the technology has an English name ("AI", "Codex", "Claude", "LLM", "RAG", "AI Agent"). The voice mixes casual-polite `~해요 / ~하세요` with imperative-friendly `~하기 / ~만나자` — the latter (`만나자` = "let's meet") is the **brand-signature first-person-plural-implied invitation**, a softening device that distinguishes Fastcampus from straight-imperative Coursera ("Earn") and Udemy ("Save 90%").
441
-
442
- | Context | Tone |
443
- |---|---|
444
- | CTAs (enrolment) | Imperative + concrete outcome. `수강신청 하기`, `결제하기`, `장바구니에 담기`. Exclamation reserved for time-sensitive: `지금 신청하세요!`. |
445
- | Banner headlines | A two-clause invitation with a beat. `관심 가는 원데이 클래스 / 0원 사전 알림 신청하세요!` Section break is part of the cadence. |
446
- | Discount banners | Fact + emphasis. `업무 자동화 베스트 라인업 / 최대 25% 할인!` — the discount is the fact, not the headline word. |
447
- | Course tile metadata | Rank + count + title + instructor. Rank ("1위") is corner-badged, count ("1,940+") is the social-proof flex. |
448
- | Free tag | Two characters: `무료` or `0원`. Yellow pill on white tile. |
449
- | Empty states | Why empty + next step. `아직 수강 중인 강의가 없어요. 관심 분야의 강의를 둘러보세요.` |
450
- | Error / validation | Specific cause + action. `이메일 형식이 올바르지 않아요. 다시 확인해 주세요.` |
451
- | Success | One line. `수강신청이 완료되었어요. 내 강의실에서 확인할 수 있어요.` |
452
- | Instructor surfaces | `~튜터 / ~강사` mix — Fastcampus uses both ("피그마튜터에게 배우는") more freely than Inflearn's strict `지식공유자님` honorific. |
453
-
454
- **Forbidden phrases (illustrative — not from a published Fastcampus guide; derived from observable restraint on `/`)**: `놓치지 마세요`, `Oops!`, `오류가 발생했습니다`, `최저가 보장`, `평생 무료`, three-exclamation-mark CTA tails (`!!!`), emoji on price or enrolment surfaces, superlative-rank prose where the numeric rank badge already does the work (`최고의 강의 / 압도적 1위`). Where ranking matters, Fastcampus uses the corner badge + raw enrolment count (`1위 / 1,940+`) rather than editorialized rank labels.
455
-
456
- **Voice samples (OmD-original — no verbatim Fastcampus copy reproduced; tone-shape only):**
457
- - (Cohort enrolment) "이번 기수는 금요일에 마감해요. 들어가실 자리가 두 개 남았어요."
458
- - (Sale): "여름 인텐시브, 21일까지 25% 할인. 결제 후 7일 이내 환불 가능해요."
459
- - (Empty Wishlist): "찜한 강의가 아직 없어요. 분야부터 골라볼까요?"
460
-
461
- ## 11. Brand Narrative
462
-
463
- Fastcampus was founded in **2014** under the parent company **Day1Company** (data based on public Korean tech-press coverage of Day1Company / 데이원컴퍼니, the umbrella that operates Fastcampus, Colosso, RealClass, and adjacent brands). The founding observation was that **Korean adult upskilling had been a fragmented offline market — weekend classroom academies, public-institute lectures, and book-and-DVD self-study** — and that working professionals were willing to pay premium prices for short-format, instructor-led, project-based online courses if the production value matched the price.
464
-
465
- Fastcampus's bet was that **the difference between a free YouTube tutorial and a paid course is project structure, instructor accountability, and cohort timing** — not just video quality. The platform brand name itself frames the proposition: *fast + campus*, a compressed academic experience for adults who cannot take a semester off. By 2026, Day1Company operates Fastcampus as the flagship **adult-upskilling marketplace covering IT, design, business, finance, language, and lifestyle**, with adjacent brands handling specialized tiers (Colosso for high-end masterclasses; RealClass for hobby/language).
466
-
467
- The visual evolution from the early-2010s blue-and-white directory page to the current rich-color Material-style catalog is itself the signal: Fastcampus made the deliberate choice to **look like a programmed market** (multi-hue rails, rank badges, enrolment counts) rather than a calm catalog (Inflearn's choice) or an institutional LMS (Classum's choice). The two competitors share a country, an audience overlap, and Pretendard typography; Fastcampus distinguishes by *commerce energy*.
468
-
469
- *(Founder, exact founding-month, and headcount details are not exhaustively verified from public English-language sources at OmD attribution fidelity; the narrative above is anchored to publicly observable brand artifacts — site copy, course catalog structure, and parent-company branding. UPDATE pass recommended on `tech.day1company.io` if/when that domain comes back online.)*
470
-
471
- ## 12. Principles
472
-
473
- 1. **Time is part of the offer.** Cohort start dates, discount end dates, and seat counts are first-class UI content — not legal fine print. *UI implication:* every primary CTA may carry a deadline or seat-count badge; design tokens must support a "time pressure" surface (countdown text in `--c-primary`, deadline pill in `--fds-color-orange-200`).
474
-
475
- 2. **Rich color, per-band.** The home page assigns one accent hue per content rail — yellow for "0원 / 사전알림", orange for early-bird discount, blue for dev/data, pink for design/creative, red for primary brand commerce. *UI implication:* never mix two accent hues in one card; the rail-level hue is the spatial wayfinding.
476
-
477
- 3. **Rank is a number, not a story.** "1위 / 1,940+" lives in a corner badge — no editorialized adjective. *UI implication:* if a tile says "최고의", the rank badge has failed. Use raw rank + raw count, let the number speak.
478
-
479
- 4. **4px everywhere, top-rounded on cards.** A single radius vocabulary plus the `4px 4px 0 0` card-with-thumbnail convention. *UI implication:* introducing a full-pill radius on a CTA is a tonal mistake — Fastcampus reads as "structured market," not "social feed."
480
-
481
- 5. **Casual-polite, not formal.** `~해요 / ~하기 / ~만나자` for product surfaces; `~합니다` reserved for legal / refund / receipt screens. *UI implication:* avoid `~하시기 바랍니다` and `~하실 수 있습니다` in CTA / banner copy.
482
-
483
- ## 13. Personas
484
-
485
- *(Personas inferred from observable surface targeting on `/` and `/category_online_all`; not from a published Fastcampus persona doc.)*
486
-
487
- - **The 20s Self-Funded Upskiller.** 22–28, recent grad or early-career, paying out of pocket for a single-cohort bootcamp-style course (AI / data / design). Sensitive to deadline + discount; the orange-band "early-bird 25%" rail is the most-clicked acquisition surface for this persona. Buys 1-2 premium courses per year.
488
-
489
- - **The B2B Sponsored Learner.** 28–38, mid-career, sent by the employer via the **기업교육 (corporate-training)** track. Comes via GNB compact secondary link; values certificate, syllabus, and live-session schedule; less price-sensitive, more time-sensitive (must complete by fiscal year-end).
490
-
491
- - **The Career-Pivot IC.** 30–40, established IC considering a category jump (e.g., marketer → product, engineer → ML). Buys roadmap-style course bundles; reads instructor credentials and project deliverables carefully; rank badges and enrolment counts are decision shortcuts.
492
-
493
- - **The Hobbyist / Adjacent-Function Curious.** 25–45, browsing outside core category (engineer learning design, designer learning a bit of code, marketer learning analytics). Drawn to the design/creative pink rail and drawing/illustration sub-category; price-elastic; uses the free-class yellow tag heavily.
494
-
495
- ## 14. States Catalog
496
-
497
- | Category | Treatment |
498
- |---|---|
499
- | **Empty — My Courses** | Center-aligned illustration + `아직 수강 중인 강의가 없어요`; outlined CTA `강의 둘러보기` linking to `/category_online_all`. |
500
- | **Empty — Wishlist** | `찜한 강의가 아직 없어요. 마음에 드는 강의를 담아두세요.` + outlined CTA. |
501
- | **Empty — Search results** | `'<query>'에 대한 결과가 없어요.` + 3 category-pill suggestions in unselected (`#f5f5f6`) state. |
502
- | **Loading — page** | Skeleton blocks `#e7e7e8` for rail tiles (3-5 tiles per row, 16:9 thumbnail + 2 text lines), shimmer 1.5s linear. |
503
- | **Loading — submit** | Inline 16px spinner replaces CTA label; CTA bg remains `#fc1c49`; pointer disabled. |
504
- | **Error — Network** | Inline banner `연결을 확인해 주세요. 다시 시도해주세요.` + outlined `다시 시도` button. |
505
- | **Error — Validation** | 14px `#fc1c49` text below field; field border `#fc1c49`. |
506
- | **Error — Payment** | Modal with specific cause line + `다른 결제 수단으로 시도하기` primary red CTA. |
507
- | **Success — Enrolment** | Inline `수강신청이 완료되었어요.` in `#43a047`; `내 강의실로 가기` primary CTA. |
508
- | **Skeleton — Card** | `#e7e7e8` block for thumbnail (16:9, `4px 4px 0 0`) + 2 text lines; shimmer 1.5s linear. |
509
- | **Disabled — Form** | `#e7e7e8` bg, `#a0a2a3` text, `cursor: not-allowed`; tooltip on hover explaining what's missing. |
510
- | **Time-Pressure — Countdown** | Inline `#fc1c49` countdown text (`3일 21:14:02 남음`) paired with `--fds-color-orange-200` deadline pill on enrolment CTAs. |
511
-
512
- ## 15. Motion & Easing
513
-
514
- | Token | Value | Use |
515
- |---|---|---|
516
- | `motion-fast` | 150ms | Hover bg fade, focus ring appear |
517
- | `motion-base` | 200ms | Card thumbnail scale, category-pill bg, button color |
518
- | `motion-slow` | 300ms | Banner carousel slide (Swiper default), modal open |
519
- | `easing-default` | `ease` | All hover / focus transitions |
520
- | `easing-emphasized` | `cubic-bezier(0.4, 0, 0.2, 1)` | Modal / drawer enter |
521
- | `easing-decelerate` | `cubic-bezier(0, 0, 0.2, 1)` | Skeleton shimmer, page-content fade-in |
522
-
523
- **Motion rules**:
524
- - Banner carousel auto-advances (Swiper default 5s) — Fastcampus accepts the convention; this is a deliberate departure from Inflearn ("no carousel auto-advance"). Time pressure is part of the brand.
525
- - Card hover micro-scale (1.0 → 1.02) is the only ambient motion outside the carousel.
526
- - No parallax. No scroll-triggered hero animation.
527
- - Respect `prefers-reduced-motion: reduce` — fall back to instant transitions, keep color fades only, and stop carousel auto-advance.
528
-
529
- **Motion tokens are inferred** — `--fds-motion-*` is not exposed at `:root`. UPDATE pass recommended on course-detail / cart pages where toast / modal / drawer interactions would expose canonical durations.