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,563 +0,0 @@
1
- ---
2
- id: duolingo
3
- name: Duolingo
4
- country: US
5
- category: education
6
- homepage: "https://www.duolingo.com"
7
- primary_color: "#58CC02"
8
- logo:
9
- type: simpleicons
10
- slug: "duolingo"
11
- verified: "2026-06-06"
12
- added: "2026-06-06"
13
- omd: "0.1"
14
- tokens:
15
- source: reconciled
16
- extracted: "2026-06-08"
17
- components_harvested: true
18
- note: "deterministic pick (#1a73e8) was a Google sign-in embed false-positive; canonical = Feather Green"
19
- colors:
20
- primary: "#58cc02"
21
- primary-lip: "#58a700"
22
- mask: "#89e219"
23
- accent: "#1cb0f6"
24
- accent-lip: "#1899d6"
25
- canvas: "#ffffff"
26
- foreground: "#4b4b4b"
27
- on-primary: "#ffffff"
28
- error: "#ff4b4b"
29
- warning: "#ffc800"
30
- fox: "#ff9600"
31
- beetle: "#ce82ff"
32
- typography:
33
- family: { sans: "din-round", display: "Feather Bold" }
34
- display-hero: { size: 40, weight: 700, lineHeight: 1.2, tracking: -0.5, use: "Landing hero, big celebrations" }
35
- title: { size: 24, weight: 700, lineHeight: 1.25, use: "Section titles, modal headers" }
36
- body: { size: 17, weight: 400, lineHeight: 1.5, use: "Standard reading text" }
37
- button: { size: 15, weight: 700, lineHeight: 1.2, use: "CTA button labels (uppercase)" }
38
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48 }
39
- rounded: { sm: 8, md: 12, lg: 16, full: 9999 }
40
- shadow:
41
- button-3d: "0 4px 0 0 #58a700"
42
- card: "0 2px 0 0 rgba(0,0,0,0.1)"
43
- components:
44
- button-primary: { type: button, bg: "#58cc02", fg: "#ffffff", radius: "12px", padding: "14px 20px", height: "50px", font: "15px / 700", shadow: "0 4px 0 #58a700", active: "translateY(4px), lip collapses", disabled: "bg #e5e5e5, fg #afafaf, no lip", use: "Single primary action — CONTINUE, START, CHECK ANSWER (uppercase)" }
45
- button-accent: { type: button, bg: "#1cb0f6", fg: "#ffffff", radius: "12px", padding: "14px 20px", font: "15px / 700", shadow: "0 4px 0 #1899d6", use: "Alternative positive action, Super upsell, info CTA (uppercase)" }
46
- card: { type: card, bg: "#ffffff", border: "2px solid #e5e5e5", radius: "16px", padding: "16px", shadow: "none", use: "Course units, skill tiles, list rows" }
47
- ---
48
-
49
- # Design System Inspiration of Duolingo
50
-
51
- ## 1. Visual Theme & Atmosphere
52
-
53
- Duolingo is the world's most-downloaded education app, and its interface is engineered to feel less like studying and more like a game you can't put down. The brand's whole thesis is that learning should be *fun first* — and the visual language enforces that on every pixel. The signature **Feather Green** (`#58CC02`) is an almost impossibly bright, optimistic lime that reads as energy, growth, and "go." It is the color of the owl, the color of the streak, the color of every primary action. Nothing about it is muted or institutional; it is deliberately the opposite of the dusty greens of a classroom chalkboard.
54
-
55
- What defines Duolingo visually is **chunky, tactile playfulness**. Buttons are not flat rectangles — they have a solid 3D "lip," a hard offset shadow of the button's own darker shade, so pressing them feels like pressing a physical key. Cards carry **bold 2px outlines** rather than soft elevation. Corners are generously rounded (12–16px). Everything is oversized and high-contrast: big rounded type, big touch targets, big celebratory states. The aesthetic borrows from children's books and arcade games but executes with the rigor of a mature product system — "a children's book that grew up."
56
-
57
- The type system pairs two custom voices. **Feather Bold** — a bespoke display typeface whose curves echo the shape of Duo the owl — carries headings, buttons, and any moment that needs personality. **DIN Next Rounded** handles longer-form and UI body text where Feather would be too loud. Together they keep the brand friendly without ever feeling childish.
58
-
59
- **Key Characteristics:**
60
- - Feather Green (`#58CC02`) as the universal primary — CTAs, owl, streaks, correctness
61
- - Chunky 3D buttons with a hard offset bottom-shadow "lip" that depresses on press
62
- - Bold 2px card/button outlines instead of soft drop shadows
63
- - Generous corner radii (12px buttons, 16px cards) and oversized touch targets
64
- - Feather Bold (display/buttons) + DIN Next Rounded (UI/body) type pairing
65
- - A vivid gamification palette — Macaw blue, Cardinal red, Bee yellow, Fox orange
66
- - White-dominant surfaces with bold color reserved for interaction and feedback
67
- - Generous whitespace, single-focus screens, one clear action at a time
68
-
69
- ## 2. Color Palette & Roles
70
-
71
- Duolingo names its colors after animals and birds — a playful taxonomy that mirrors the owl mascot world. The values below are the widely-documented brand tokens.
72
-
73
- ### Primary
74
- - **Feather Green** (`#58CC02`): The brand workhorse. Primary CTAs, correct answers, the owl, streak flames, progress. The single most important color.
75
- - **Feather Green Dark / Tree** (`#58A700`): The darker shade used for the 3D button "lip" shadow and pressed states of green buttons.
76
- - **Mask Green** (`#89E219`): Lighter green accent, success highlights, lesson-complete glows.
77
-
78
- ### Accent (Gamification)
79
- - **Macaw** (`#1CB0F6`): Bright blue. Secondary actions, links, info states, "Super/Plus" accents, streak-freeze.
80
- - **Whale** (`#1899D6`): Darker blue, the 3D lip for Macaw buttons and pressed blue states.
81
- - **Cardinal** (`#FF4B4B`): Red. Incorrect answers, errors, destructive actions, hearts/lives.
82
- - **Bee** (`#FFC800`): Yellow/gold. XP, achievements, crowns, streak rewards, premium glints.
83
- - **Fox** (`#FF9600`): Orange. Highlights, secondary rewards, warnings, leaderboard accents.
84
- - **Beetle** (`#CE82FF`): Purple. Special events, Super Duolingo branding, decorative accents.
85
- - **Cardinal Dark** (`#EA2B2B`): The 3D lip for red buttons and pressed destructive states.
86
-
87
- ### Neutral Scale
88
- - **Snow / White** (`#FFFFFF`): Primary surface. Page and card backgrounds.
89
- - **Polar** (`#F7F7F7`): Lightest gray. Secondary surface, disabled/empty fills, alt rows.
90
- - **Swan** (`#E5E5E5`): Default border, dividers, disabled button fill, progress-bar track.
91
- - **Hare** (`#AFAFAF`): Placeholder text, disabled text, inactive icons.
92
- - **Wolf** (`#777777`): Secondary/body text, captions, metadata.
93
- - **Eel** (`#4B4B4B`): Primary text color — strong near-black-gray for headings and body. Duolingo's default ink, *not* pure black.
94
-
95
- ### Semantic
96
- - **Correct / Success**: Feather Green (`#58CC02`) fill, Mask Green glow.
97
- - **Incorrect / Error**: Cardinal (`#FF4B4B`).
98
- - **Reward / XP**: Bee (`#FFC800`) and Fox (`#FF9600`).
99
- - **Info / Neutral action**: Macaw (`#1CB0F6`).
100
-
101
- ### Surface & Text Summary
102
- - **Page background**: `#FFFFFF`
103
- - **Subtle surface**: `#F7F7F7` (Polar)
104
- - **Border default**: `#E5E5E5` (Swan)
105
- - **Heading/body ink**: `#4B4B4B` (Eel)
106
- - **Secondary text**: `#777777` (Wolf)
107
- - **Placeholder/disabled**: `#AFAFAF` (Hare)
108
-
109
- ## 3. Typography Rules
110
-
111
- ### Font Family
112
- - **Display / Buttons / Headings**: `"Feather Bold", "din-round", "DIN Next Rounded", "Nunito", -apple-system, BlinkMacSystemFont, sans-serif` — bespoke Duolingo typeface, rounded and friendly, used everywhere personality matters.
113
- - **UI / Body**: `"din-round", "DIN Next Rounded", "Nunito", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif` — cleaner, lighter, for longer text and dense UI.
114
- - **Fallback web pairing**: `Nunito` (700/800) is the closest open-source stand-in for Feather Bold when the custom font is unavailable.
115
-
116
- ### Hierarchy
117
-
118
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
119
- |------|------|------|--------|-------------|----------------|-------|
120
- | Display Hero | Feather Bold | 40px | 700 | 48px (1.2) | -0.5px | Landing hero, big celebrations |
121
- | Display | Feather Bold | 32px | 700 | 40px (1.25) | -0.25px | Section headers, lesson-complete |
122
- | Heading Large | Feather Bold | 24px | 700 | 32px (1.33) | normal | Screen titles, modal headers |
123
- | Heading | Feather Bold | 20px | 700 | 28px (1.4) | normal | Card titles, sub-sections |
124
- | Subtitle | Feather Bold | 17px | 700 | 24px (1.4) | normal | List headers, prompts |
125
- | Button Label | Feather Bold | 15px | 700 | 20px | 0.8px (uppercase) | CTAs — often UPPERCASE |
126
- | Body Large | DIN Next Rounded | 17px | 400 | 26px (1.5) | normal | Lesson sentences, explanations |
127
- | Body | DIN Next Rounded | 15px | 400 | 23px (1.5) | normal | Standard reading text |
128
- | Caption | DIN Next Rounded | 13px | 400 | 18px (1.4) | normal | Metadata, hints, fine print |
129
- | Stat / Number | Feather Bold | 24px+ | 700 | tight | normal | XP, streak count, % — bold and big |
130
-
131
- ### Principles
132
- - **Feather Bold for personality, DIN for reading**: Headings, buttons, and stats use the chunky display face; multi-sentence content uses the lighter rounded sans for comfort.
133
- - **Buttons shout**: Primary button labels are frequently UPPERCASE Feather Bold with slight letter-spacing (`CONTINUE`, `START`, `CHECK`).
134
- - **Bold over light**: There is no thin-weight body text. The system lives at 400 (body) and 700 (everything with emphasis). Restraint comes from size, not weight variety.
135
- - **Numbers are celebrated**: XP, streaks, and percentages render in large Feather Bold — gamification stats are display typography, not fine print.
136
- - **Eel, not black**: Default text is `#4B4B4B`, never `#000000` — pure black feels harsh against the playful palette.
137
-
138
- ## 4. Component Stylings
139
-
140
- ### Buttons
141
-
142
- The Duolingo button is the brand's signature component: a chunky, tactile control with a hard **offset bottom border** (the "lip") in a darker shade of its own color, so it looks and feels like a physical key. On press, the button translates down and the lip collapses.
143
-
144
- **Primary (Green)**
145
- - Background: `#58CC02`
146
- - Text: `#FFFFFF`
147
- - Border: none
148
- - Lip / bottom shadow: `0 4px 0 #58A700` (solid, no blur)
149
- - Radius: 12px
150
- - Padding: 14px 20px (min-height 50px)
151
- - Font: 15px / 700 / Feather Bold, UPPERCASE, 0.8px tracking
152
- - Pressed: `translateY(4px)`, lip collapses to `0 0`
153
- - Disabled: bg `#E5E5E5`, text `#AFAFAF`, no lip
154
- - Use: The single primary action — `CONTINUE`, `START`, `CHECK ANSWER`
155
-
156
- **Secondary (Blue / Macaw)**
157
- - Background: `#1CB0F6`
158
- - Text: `#FFFFFF`
159
- - Lip: `0 4px 0 #1899D6`
160
- - Radius: 12px
161
- - Padding: 14px 20px
162
- - Font: 15px / 700 / Feather Bold, UPPERCASE
163
- - Use: Alternative positive action, "Super" upsell, info CTA
164
-
165
- **Destructive (Red / Cardinal)**
166
- - Background: `#FF4B4B`
167
- - Text: `#FFFFFF`
168
- - Lip: `0 4px 0 #EA2B2B`
169
- - Radius: 12px
170
- - Padding: 14px 20px
171
- - Font: 15px / 700 / Feather Bold, UPPERCASE
172
- - Use: "Incorrect" continue bar, give-up / end-session, delete
173
-
174
- **Outline / Ghost (Neutral)**
175
- - Background: `#FFFFFF`
176
- - Text: `#1CB0F6` (or `#4B4B4B` for neutral)
177
- - Border: 2px solid `#E5E5E5`
178
- - Lip: `0 2px 0 #E5E5E5`
179
- - Radius: 12px
180
- - Padding: 14px 20px
181
- - Font: 15px / 700 / Feather Bold, UPPERCASE
182
- - Use: Secondary choice paired with a filled primary (`SKIP`, `MAYBE LATER`)
183
-
184
- **Disabled**
185
- - Background: `#E5E5E5`
186
- - Text: `#AFAFAF`
187
- - Border: none, no lip
188
- - Radius: 12px
189
- - Use: Inactive `CHECK` before an answer is selected
190
-
191
- Display modes — buttons are typically full-width (`block`) on mobile lesson screens, auto-width inline on dense settings rows. The lip is the brand-defining detail: it is *always* a solid darker shade of the button's own color, never a blurred drop shadow.
192
-
193
- ### Inputs
194
-
195
- Duolingo uses inputs sparingly (it is a tap-first product), but text fields follow the same rounded, bold-border language.
196
-
197
- **Default**
198
- - Background: `#FFFFFF`
199
- - Text: `#4B4B4B`
200
- - Border: 2px solid `#E5E5E5`
201
- - Radius: 12px
202
- - Padding: 12px 16px
203
- - Font: 15px / 400 / DIN Next Rounded
204
- - Placeholder: `#AFAFAF`
205
- - Focus: border `#1CB0F6` (2px)
206
- - Use: Email/username/password on sign-up
207
-
208
- **Error**
209
- - Background: `#FFF0F0`
210
- - Text: `#4B4B4B`
211
- - Border: 2px solid `#FF4B4B`
212
- - Radius: 12px
213
- - Padding: 12px 16px
214
- - Helper text below: `#FF4B4B` 13px
215
- - Use: Invalid email, wrong password
216
-
217
- **Answer Tile (Word Bank)**
218
- - Background: `#FFFFFF`
219
- - Text: `#4B4B4B`
220
- - Border: 2px solid `#E5E5E5`
221
- - Lip: `0 2px 0 #E5E5E5`
222
- - Radius: 12px
223
- - Padding: 10px 16px
224
- - Font: 17px / 400 / DIN Next Rounded
225
- - Selected: border `#1CB0F6`, bg `#DDF4FF`
226
- - Use: Tappable word chips in translation exercises
227
-
228
- ### Cards
229
-
230
- **Lesson / Path Card**
231
- - Background: `#FFFFFF`
232
- - Border: 2px solid `#E5E5E5`
233
- - Radius: 16px
234
- - Padding: 16px
235
- - Shadow: none (the 2px outline is the elevation)
236
- - Use: Course units, skill tiles, list rows
237
-
238
- **Highlight Card**
239
- - Background: `#DDF4FF` (light Macaw tint) or `#F7F7F7`
240
- - Border: 2px solid `#1CB0F6` (when active/selected)
241
- - Radius: 16px
242
- - Padding: 16px
243
- - Use: Selected plan, active streak card, tip callouts
244
-
245
- **Stat Card**
246
- - Background: `#FFFFFF`
247
- - Border: 2px solid `#E5E5E5`
248
- - Radius: 16px
249
- - Padding: 20px
250
- - Icon: large colored emoji/illustration (streak flame, XP bolt)
251
- - Number: Feather Bold 24px `#4B4B4B`; label Wolf `#777777` 13px
252
- - Use: Profile stats — streak, total XP, league
253
-
254
- ### Badges & Pills
255
-
256
- **Streak / XP Pill**
257
- - Background: `#FFFFFF` with 2px `#E5E5E5` border, or solid color
258
- - Text: `#FF9600` (streak) / `#FFC800` (XP) with matching icon
259
- - Radius: 9999px (pill)
260
- - Padding: 4px 10px
261
- - Font: 13px / 700 / Feather Bold
262
- - Use: Top-bar counters
263
-
264
- **New / Status Badge**
265
- - Background: `#FF4B4B` (notification) / `#58CC02` (complete)
266
- - Text: `#FFFFFF`
267
- - Radius: 9999px
268
- - Padding: 2px 8px
269
- - Font: 12px / 700 / Feather Bold, UPPERCASE
270
- - Use: "NEW", unread dots, completion ticks
271
-
272
- ### Progress Bar
273
-
274
- - Track: `#E5E5E5` (Swan), radius 9999px, height 16px
275
- - Fill: `#58CC02` (Feather Green), radius 9999px
276
- - Inner highlight: thin lighter-green top stripe for a glossy, gamey sheen
277
- - Use: Lesson progress at the top of every exercise screen
278
-
279
- ### Tabs / Bottom Nav
280
-
281
- **Bottom Tab (Active)**
282
- - Background: `#FFFFFF`, top border 2px `#E5E5E5`
283
- - Active icon/label: `#58CC02`
284
- - Inactive icon/label: `#AFAFAF`
285
- - Font: 11px / 700 / Feather Bold
286
- - Use: Learn / Leagues / Quests / Shop / Profile nav
287
-
288
- ### Toasts / Feedback Bars
289
-
290
- **Correct**
291
- - Background: `#D7FFB8` (light green) / footer area
292
- - Text: `#58A700`
293
- - Border-top: 2px `#A5ED6E`
294
- - CTA button: green primary `CONTINUE`
295
- - Use: Bottom feedback bar after a right answer
296
-
297
- **Incorrect**
298
- - Background: `#FFDFE0` (light red)
299
- - Text: `#EA2B2B`
300
- - Border-top: 2px `#FFB3B3`
301
- - CTA button: red `CONTINUE`
302
- - Use: Bottom feedback bar after a wrong answer
303
-
304
- ### Dialogs / Modals
305
-
306
- **Centered Modal**
307
- - Background: `#FFFFFF`
308
- - Border: none (or 2px `#E5E5E5`)
309
- - Radius: 16px
310
- - Padding: 24px
311
- - Shadow: `0 8px 0 rgba(0,0,0,0.05)` soft, plus occasional confetti/owl illustration
312
- - Title: Feather Bold 20px `#4B4B4B`
313
- - Use: Streak celebration, plan upsell, exit confirmation
314
-
315
- ### Toggles
316
-
317
- **Default**
318
- - Track: `#58CC02` (on) / `#E5E5E5` (off)
319
- - Thumb: `#FFFFFF` circle, soft inner shadow
320
- - Radius: 9999px
321
- - Use: Settings (sound effects, notifications)
322
-
323
- ---
324
-
325
- **Verified:** 2026-06-06
326
- **Tier 1 sources:** design.duolingo.com (official brand identity/color portal), www.duolingo.com (live product) · https://www.duolingo.com (live production site)
327
- **Tier 2 sources:** widely-documented Duolingo brand tokens (Feather Green `#58CC02`, Macaw `#1CB0F6`, Cardinal `#FF4B4B`, Bee `#FFC800`, Fox `#FF9600`, Eel `#4B4B4B`, Wolf `#777777`, Swan `#E5E5E5`, Polar `#F7F7F7`) corroborated across multiple brand-color references.
328
- **Note:** The animal color names and the 3D "lip" button mechanic are signature, well-documented Duolingo system traits. Exact internal token values may vary slightly by platform/release.
329
-
330
- ## 5. Layout Principles
331
-
332
- ### Spacing System
333
- - Base unit: 8px
334
- - Common values: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px
335
- - Screen horizontal padding: 16px (mobile), generous 24px+ on web
336
- - Lesson screens are deliberately uncluttered — one prompt, the answer area, one CTA
337
-
338
- ### Grid & Container
339
- - Mobile-first; primary design baseline ~375–414px
340
- - Single-column, full-width content with one focal action per screen
341
- - Web learning view centers a constrained column (~600px) with side rails for streak/league widgets
342
- - Marketing/landing uses a wider centered container (max ~1080px) with big illustration blocks
343
-
344
- ### Whitespace Philosophy
345
- - **One thing at a time**: Each lesson screen presents a single exercise. No competing actions, no scrolling clutter — the next CTA is always the obvious move.
346
- - **Room to breathe, room to celebrate**: Generous padding around the prompt and answer keeps focus; celebration moments (lesson complete, streak) get full-screen treatment.
347
- - **Bold over busy**: Few elements, each large and high-contrast, rather than many small ones.
348
-
349
- ### Border Radius Scale
350
- - Small (8px): Inline chips, small tags
351
- - Standard (12px): Buttons, inputs, answer tiles
352
- - Comfortable (16px): Cards, modals, larger surfaces
353
- - Pill (9999px): Progress bars, streak pills, toggles, badges
354
-
355
- ## 6. Depth & Elevation
356
-
357
- Duolingo's depth model is **physical, not atmospheric**. Instead of soft blurred shadows, the system uses hard, solid offsets — a darker shade of the element's own color sitting directly beneath it. This is what makes buttons feel like real, pressable keys.
358
-
359
- | Level | Treatment | Use |
360
- |-------|-----------|-----|
361
- | Flat (Level 0) | No border, no shadow | Inline text, page background |
362
- | Outlined (Level 1) | 2px solid `#E5E5E5` border | Cards, tiles, list rows |
363
- | Lip (Level 2) | `0 4px 0 <darker-shade>` solid offset | Buttons, answer tiles — the signature 3D effect |
364
- | Raised (Level 3) | 2px outline + subtle `0 4px 0 rgba(0,0,0,0.05)` | Floating cards, selected plans |
365
- | Modal (Level 4) | `0 8px 0 rgba(0,0,0,0.05)` + scrim `rgba(0,0,0,0.4)` | Dialogs, celebration sheets |
366
-
367
- **Shadow Philosophy**: The 3D "lip" is the heart of the brand's tactility. It is *always* a solid color (no blur, no spread) and *always* a darker tint of the component it sits under — green buttons get `#58A700`, blue get `#1899D6`, red get `#EA2B2B`. On press the element shifts down by the lip height and the lip disappears, mimicking a physical key travel. Atmospheric blurred shadows are rare and kept very subtle when used.
368
-
369
- ### Blur Effects
370
- - Modal scrims dim the background with `rgba(0,0,0,0.4)` — flat dim, minimal/no blur
371
- - Sticky headers/footers (progress bar, feedback bar) sit on solid surfaces, no glass
372
-
373
- ## 7. Do's and Don'ts
374
-
375
- ### Do
376
- - Use Feather Green (`#58CC02`) for the single primary action on every screen
377
- - Give buttons the solid 3D lip (`0 4px 0` in a darker shade of the same color)
378
- - Use 2px outlines on cards instead of soft drop shadows
379
- - Set body/heading text in Eel (`#4B4B4B`), never pure black
380
- - Make CTAs Feather Bold, often UPPERCASE with slight letter-spacing
381
- - Reserve the gamification palette (Bee, Fox, Bee yellow, Macaw) for rewards/feedback
382
- - Use generous radii — 12px buttons, 16px cards, pill progress bars
383
- - Keep one clear action per screen; let it breathe
384
-
385
- ### Don't
386
- - Don't use blurred/soft drop shadows where the 3D lip belongs — kills the tactile feel
387
- - Don't use pure black (`#000000`) for text — Eel `#4B4B4B` is the brand ink
388
- - Don't crowd a lesson screen with multiple primary actions
389
- - Don't use thin font weights — the system lives at 400 and 700 only
390
- - Don't make the lip a blurred or neutral shadow — it must be a darker shade of the button's own hue
391
- - Don't use muted/desaturated greens — Feather Green is intentionally vivid
392
- - Don't shrink touch targets; buttons are tall (≥50px) and finger-friendly
393
- - Don't mix radii randomly — follow the 8/12/16/pill scale
394
-
395
- ## 8. Responsive Behavior
396
-
397
- ### Breakpoints
398
- | Name | Width | Key Changes |
399
- |------|-------|-------------|
400
- | Mobile (Primary) | <768px | Full-screen single-column lessons, full-width CTAs, bottom nav |
401
- | Tablet | 768–1024px | Centered learning column, side widgets appear |
402
- | Desktop | >1024px | Constrained center column (~600px) + left nav rail + right streak/league rail |
403
-
404
- ### Touch Targets
405
- - Buttons: ≥50px tall, often full-width on mobile
406
- - Answer tiles: ≥44px tall with comfortable spacing for rapid tapping
407
- - Bottom nav items: ≥48px tap area
408
-
409
- ### Collapsing Strategy
410
- - Desktop side rails (streak, leaderboard, "Super" promo) collapse off-screen on mobile, surfacing in the top bar and dedicated tabs instead
411
- - Sticky top progress bar and sticky bottom feedback/CTA bar persist across all sizes
412
- - Marketing hero stacks illustration above copy on mobile, side-by-side on desktop
413
-
414
- ### Image Behavior
415
- - Duo the owl and character illustrations are vector/Lottie — scale crisply at any size
416
- - Flag/course icons render at consistent sizes (24–40px) within lists
417
- - Celebration animations (confetti, owl reactions) play full-bleed on completion screens
418
-
419
- ## 9. Agent Prompt Guide
420
-
421
- ### Quick Color Reference
422
- - Primary CTA: Feather Green (`#58CC02`), lip `#58A700`
423
- - Secondary CTA: Macaw blue (`#1CB0F6`), lip `#1899D6`
424
- - Destructive: Cardinal red (`#FF4B4B`), lip `#EA2B2B`
425
- - Reward/XP: Bee yellow (`#FFC800`), Fox orange (`#FF9600`)
426
- - Special/premium: Beetle purple (`#CE82FF`)
427
- - Background: White (`#FFFFFF`), subtle surface Polar (`#F7F7F7`)
428
- - Heading/body text: Eel (`#4B4B4B`)
429
- - Secondary text: Wolf (`#777777`)
430
- - Placeholder/disabled text: Hare (`#AFAFAF`)
431
- - Border: Swan (`#E5E5E5`)
432
-
433
- ### Example Component Prompts
434
- - "Create a Duolingo primary button: `#58CC02` bg, white UPPERCASE Feather Bold 15px text with 0.8px tracking, 12px radius, 14px/20px padding, min-height 50px, solid 3D lip `0 4px 0 #58A700`. On press translateY(4px) and collapse the lip."
435
- - "Build a lesson progress bar: 16px tall, 9999px radius, track `#E5E5E5`, fill `#58CC02` with a thin lighter-green top sheen, animating width."
436
- - "Design an answer tile: white bg, 2px `#E5E5E5` border, 12px radius, `0 2px 0 #E5E5E5` lip, 17px DIN Next Rounded text `#4B4B4B`. Selected: border `#1CB0F6`, bg `#DDF4FF`."
437
- - "Create a correct-answer feedback bar: bottom-fixed, bg `#D7FFB8`, text `#58A700`, top border 2px `#A5ED6E`, with a green CONTINUE button on the right."
438
- - "Build a streak stat card: white bg, 2px `#E5E5E5` border, 16px radius, 20px padding. Flame emoji, Feather Bold 24px `#4B4B4B` count, Wolf `#777777` 13px label."
439
- - "Design a Duolingo bottom nav: white bg, top border 2px `#E5E5E5`, 5 tabs. Active `#58CC02`, inactive `#AFAFAF`, 11px Feather Bold labels."
440
-
441
- ### Iteration Guide
442
- 1. Every primary action is Feather Green (`#58CC02`) with the 3D lip — this is non-negotiable brand DNA
443
- 2. Buttons and headings use Feather Bold (fallback Nunito 700/800); body uses DIN Next Rounded
444
- 3. Text is Eel `#4B4B4B`, never pure black; secondary text is Wolf `#777777`
445
- 4. Cards use 2px `#E5E5E5` outlines, not blurred shadows
446
- 5. Radii: 12px buttons/inputs, 16px cards/modals, pill for bars/badges
447
- 6. The lip shadow is always a solid darker shade of the element's own color
448
- 7. One clear primary action per screen; keep it spacious and celebratory
449
-
450
- ---
451
-
452
- ## 10. Voice & Tone
453
-
454
- Duolingo speaks like an enthusiastic, slightly mischievous friend who genuinely wants you to win. The voice is warm, encouraging, playful, and occasionally cheeky — never stern, never academic. English is the primary voice, written at a friendly, casual register. Praise is generous and specific; failure is reframed as a normal step, never a scolding. The brand famously leans into humor (and the "passive-aggressive owl" meme) in notifications, but inside the learning flow the tone stays kind and motivating.
455
-
456
- | Context | Tone |
457
- |---|---|
458
- | CTAs | Short, imperative, energetic — `CONTINUE`, `START`, `GET STARTED`, `CHECK` |
459
- | Correct feedback | Celebratory, brief — `Nice!`, `You're on fire!`, `Correct!` |
460
- | Incorrect feedback | Gentle, no blame — `Correct solution:` shown plainly; never `Wrong!` |
461
- | Streak / reward | Excited, exclamatory — `7 day streak!`, `+10 XP` |
462
- | Onboarding | Friendly second-person, one question per screen, low pressure |
463
- | Empty states | Encouraging nudge with one clear action — never cold or empty-feeling |
464
- | Notifications | Playful, personality-driven (the owl's signature charm) |
465
-
466
- **Forbidden tones.** No academic jargon, no shaming for mistakes (`Wrong!`, `You failed`), no corporate stiffness, no guilt-tripping inside the learning flow. Keep sentences short. Exclamation points are welcome where genuine excitement is warranted; em-dashes and clever asides are on-brand in marketing copy.
467
-
468
- ## 11. Brand Narrative
469
-
470
- Duolingo was founded in 2011 by **Luis von Ahn** and **Severin Hacker** out of Carnegie Mellon University, on a simple, radical premise: free language education for everyone. Von Ahn — who had earlier invented reCAPTCHA — built Duolingo to remove cost as a barrier to learning. The company went public on Nasdaq in 2021 and has grown into the world's most popular way to learn languages, with hundreds of millions of learners.
471
-
472
- The design language is inseparable from the business model. Because the product is free and habit-driven, **engagement is the whole game** — and so the interface is engineered like a game: streaks, XP, leagues, hearts, crowns, and the relentlessly cheerful owl, **Duo**. Feather Green and the chunky tactile buttons exist to make a single lesson feel rewarding enough to come back tomorrow. The 3D button lip, the confetti, the celebratory full-screen states — these are not decoration; they are the retention mechanics rendered in pixels.
473
-
474
- What Duolingo refuses is the aesthetic of *school*. No chalkboard greens, no textbook density, no intimidating grammar tables front-and-center. It also refuses the cold minimalism of typical SaaS — flat gray dashboards would never produce the dopamine the streak demands. Duolingo occupies a deliberate middle: rigorous, accessible product design wearing the costume of a friendly mobile game. The owl can be earnest or unhinged in marketing, but the core learning surface stays warm, clear, and relentlessly motivating.
475
-
476
- ## 12. Principles
477
-
478
- 1. **Fun is functional.** Every playful detail — the lip, the confetti, the owl — serves retention. Delight is not ornament; it is the product working.
479
- 2. **One action per screen.** A lesson screen has exactly one obvious next move. Choice paralysis kills momentum; the bright green CTA removes it.
480
- 3. **Celebrate everything.** Correct answers, streaks, level-ups, and milestones all get visible, joyful feedback. Progress made visible is progress repeated.
481
- 4. **Green means go.** Feather Green is reserved for the primary action and for correctness. It never decorates idly — it always means "do this" or "you got it."
482
- 5. **Tactile over flat.** Controls should feel physically pressable. The solid 3D lip and key-travel on press make the interface feel like a toy you want to touch.
483
- 6. **Kind to mistakes.** Errors are normal steps, shown plainly and without blame. The tone never shames; failure is just data on the way to fluency.
484
- 7. **Bold and legible.** Big rounded type, high contrast, large touch targets. The interface is readable at a glance and usable one-handed on the subway.
485
- 8. **Consistency builds habit.** The same green button, the same progress bar, the same celebration — repetition of the visual language is what makes the habit stick.
486
-
487
- ## 13. Personas
488
-
489
- *Personas below are fictional archetypes informed by publicly described language-learner segments, not individual people.*
490
-
491
- **Maya, 24, Chicago.** Marketing coordinator learning Spanish before a trip. Opens Duolingo on her evening commute, 1–2 lessons a night. Lives and dies by her streak — a 200-day streak is a point of pride she will not break. Motivated by the green progress bar filling and the confetti at the end. If a lesson feels like homework rather than a game, she drifts. Taps fast through the word bank; wants the CHECK button big and obvious.
492
-
493
- **Daniel, 41, Austin.** Software engineer brushing up on Japanese he studied in college. Pays for Super Duolingo to remove hearts and ads. Values the structured path and the sense of measurable progress (XP, crowns). Appreciates the playful tone but mostly cares that the product respects his time — fast, frictionless, one clear next step. Annoyed by anything that slows the loop between lessons.
494
-
495
- **Sofia, 16, Madrid.** High-school student using Duolingo for English alongside class. Competes hard in the weekly Diamond League leaderboard — the gamification *is* the motivation. Shares streak milestones with friends. Reacts to the owl's personality and the meme culture around it. For her, the social-game layer (leagues, friends, XP races) matters as much as the learning itself.
496
-
497
- ## 14. States
498
-
499
- | State | Treatment |
500
- |---|---|
501
- | **Empty (no lessons yet)** | Friendly Feather Bold headline + encouraging line in Wolf `#777777`, plus a green `#58CC02` CTA (`START LEARNING`). Often paired with a Duo illustration. Never cold. |
502
- | **Loading (first paint)** | Light skeleton blocks in `#F7F7F7` (Polar) at final dimensions, or a centered animated Duo. Path tiles fade in. |
503
- | **Loading (checking answer)** | CHECK button shows an inline spinner / brief disabled state; never blocks the whole screen. |
504
- | **Correct answer** | Bottom feedback bar bg `#D7FFB8`, text `#58A700`, top border `#A5ED6E`, cheerful copy (`Nice!`), green CONTINUE button. Optional ding + small confetti. |
505
- | **Incorrect answer** | Bottom feedback bar bg `#FFDFE0`, text `#EA2B2B`, shows `Correct solution:` plainly, red CONTINUE button. No shaming language. Heart/life decrements if applicable. |
506
- | **Error (form field)** | 2px `#FF4B4B` border, bg `#FFF0F0`, helper text below in `#FF4B4B` 13px, one actionable sentence. |
507
- | **Disabled (CHECK before answer)** | bg `#E5E5E5`, text `#AFAFAF`, no lip, not pressable. Re-enables the moment a choice is made. |
508
- | **Success (lesson complete)** | Full-screen celebration: confetti, Duo reaction, XP count animating up in Bee `#FFC800`/Feather Bold, streak increment, single green CONTINUE. The peak emotional moment. |
509
- | **Streak milestone** | Modal with flame illustration, big Feather Bold count, Fox `#FF9600` accents, share + continue actions. |
510
- | **Out of hearts** | Modal explaining hearts depleted, options to wait, practice to refill, or upsell to Super. Tone stays light, not punitive. |
511
- | **Skeleton** | `#F7F7F7` blocks at exact final dimensions, gentle shimmer, rounded at component radius. |
512
-
513
- ## 15. Motion & Easing
514
-
515
- **Durations** (named):
516
-
517
- | Token | Value | Use |
518
- |---|---|---|
519
- | `motion-instant` | 0ms | Disabled-state flips, reduced-motion fallback |
520
- | `motion-fast` | 150ms | Button press / lip collapse, hover, small reveals |
521
- | `motion-standard` | 250ms | Screen transitions, feedback bar slide-up, tile select |
522
- | `motion-celebrate` | 400–600ms | XP count-up, progress fill, success reveals |
523
- | `motion-confetti` | 800ms+ | Lesson-complete confetti and Duo reactions |
524
-
525
- **Easings:**
526
-
527
- | Token | Curve | Use |
528
- |---|---|---|
529
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Feedback bars, modals, screen pushes appearing |
530
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals, bar slide-down |
531
- | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions, tab/content switches |
532
- | `ease-bounce` | `cubic-bezier(0.34, 1.56, 0.64, 1)` | Celebrations — XP pop, streak flame, owl bounce, badge reveal. The playful overshoot is on-brand here. |
533
-
534
- **Signature motions.**
535
-
536
- 1. **Button key-press.** On tap, the button translates down by the lip height (`4px`) over `motion-fast` and the solid lip collapses to zero — exactly like pressing a physical key. On release it springs back. This is the single most recognizable Duolingo interaction.
537
- 2. **Progress fill.** The top progress bar animates its green fill width over `motion-standard` with `ease-standard` after each correct answer — visible, satisfying forward motion.
538
- 3. **Celebration pop.** On lesson complete, XP counts up, the streak flame and badges scale in with `ease-bounce`, and confetti bursts. Overshoot/bounce easing is *licensed* here (and only in celebratory contexts) — it would feel unserious elsewhere, but here joy is the point.
539
- 4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, confetti and bounce overshoots are removed and durations collapse toward `motion-instant`; transitions become simple fades. The product stays fully usable and still celebratory in copy, just less kinetic.
540
-
541
- <!--
542
- OmD v0.1 Sources — Duolingo
543
-
544
- Tier 1 (official):
545
- - design.duolingo.com/identity/color — Duolingo's official brand identity & color portal
546
- - www.duolingo.com — live product surface
547
-
548
- Tier 2 (corroborating brand references, accessed 2026-06-06):
549
- - Feather Green #58CC02 confirmed across multiple brand-color references and Duolingo design docs
550
- - Animal-named palette (Macaw #1CB0F6, Cardinal #FF4B4B, Bee #FFC800, Fox #FF9600,
551
- Beetle #CE82FF, Eel #4B4B4B, Wolf #777777, Hare #AFAFAF, Swan #E5E5E5, Polar #F7F7F7)
552
- are widely-documented Duolingo system tokens.
553
- - Typography: Feather Bold (bespoke display, owl-curve inspired) + DIN Next Rounded (UI/body);
554
- Nunito 700/800 as the common open-source web stand-in for Feather Bold.
555
-
556
- Signature traits (3D button "lip", 2px card outlines, gamified celebration states) are
557
- well-documented, brand-defining characteristics of the Duolingo product UI.
558
-
559
- Personas (§13) are fictional archetypes informed by publicly described language-learner
560
- segments. Interpretive claims (e.g. "refuses the aesthetic of school") are editorial
561
- readings of the design, not documented Duolingo statements. Exact token values may vary
562
- slightly by platform and release.
563
- -->