zugzbot 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (784) hide show
  1. package/.opencode/agents/sdd-coder.md +5 -4
  2. package/.opencode/agents/sdd-orchestrator.md +9 -8
  3. package/.opencode/agents/sdd-spec-writer.md +3 -4
  4. package/.opencode/commands/loop.md +1 -1
  5. package/.opencode/plugins/loop-enforcer.ts +0 -1
  6. package/.opencode/plugins/sdd-bridge.ts +1 -1
  7. package/.opencode/rules/sdd-global.md +9 -5
  8. package/.opencode/scripts/lint-charts.js +1 -2
  9. package/.opencode/skills/sdd-foundation-overview/SKILL.md +3 -4
  10. package/.opencode/skills/sdd-methodology/SKILL.md +8 -10
  11. package/.opencode/skills/sdd-quickstart/SKILL.md +5 -9
  12. package/.opencode/skills/shadcn-templates/SKILL.md +71 -15
  13. package/.opencode/templates/nextjs-shadcn/components.json +2 -1
  14. package/.opencode/tools/sdd_catalog.ts +335 -20
  15. package/.opencode/tools/sdd_core.ts +8 -6
  16. package/.opencode/tools/sdd_lucide.ts +112 -0
  17. package/README.md +1 -7
  18. package/opencode.json +0 -10
  19. package/package.json +1 -3
  20. package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
  21. package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
  22. package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
  23. package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
  24. package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
  25. package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
  26. package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
  27. package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
  28. package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
  29. package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
  30. package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
  31. package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
  32. package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
  33. package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
  34. package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
  35. package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
  36. package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
  37. package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
  38. package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
  39. package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
  40. package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
  41. package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
  42. package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
  43. package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
  44. package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
  45. package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
  46. package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
  47. package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
  48. package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
  49. package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
  50. package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
  51. package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
  52. package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
  53. package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
  54. package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
  55. package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
  56. package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
  57. package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
  58. package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
  59. package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
  60. package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
  61. package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
  62. package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
  63. package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
  64. package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
  65. package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
  66. package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
  67. package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
  68. package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
  69. package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
  70. package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
  71. package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
  72. package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
  73. package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
  74. package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
  75. package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
  76. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  77. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
  78. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
  79. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
  80. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
  81. package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
  82. package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
  83. package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
  84. package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
  85. package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
  86. package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
  87. package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
  88. package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
  89. package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
  90. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  91. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  92. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
  93. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
  94. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
  95. package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
  96. package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
  97. package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
  98. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  99. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
  100. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
  101. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
  102. package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
  103. package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
  104. package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
  105. package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
  106. package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
  107. package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
  108. package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
  109. package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
  110. package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
  111. package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
  112. package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
  113. package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
  114. package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
  115. package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
  116. package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
  117. package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
  118. package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
  119. package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
  120. package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
  121. package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
  122. package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
  123. package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
  124. package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
  125. package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
  126. package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
  127. package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
  128. package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
  129. package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
  130. package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
  131. package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
  132. package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
  133. package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
  134. package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
  135. package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
  136. package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
  137. package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
  138. package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
  139. package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
  140. package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
  141. package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
  142. package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
  143. package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
  144. package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
  145. package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
  146. package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
  147. package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
  148. package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
  149. package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
  150. package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
  151. package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
  152. package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
  153. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  154. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
  155. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
  156. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
  157. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
  158. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
  159. package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
  160. package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
  161. package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
  162. package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
  163. package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
  164. package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
  165. package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
  166. package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
  167. package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
  168. package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
  169. package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
  170. package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
  171. package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
  172. package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
  173. package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
  174. package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
  175. package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
  176. package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
  177. package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
  178. package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
  179. package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
  180. package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
  181. package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
  182. package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
  183. package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
  184. package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
  185. package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
  186. package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
  187. package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
  188. package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
  189. package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
  190. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  191. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
  192. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
  193. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
  194. package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
  195. package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
  196. package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
  197. package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
  198. package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
  199. package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
  200. package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
  201. package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
  202. package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
  203. package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
  204. package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
  205. package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
  206. package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
  207. package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
  208. package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
  209. package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
  210. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
  211. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
  212. package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
  213. package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
  214. package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
  215. package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
  216. package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
  217. package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
  218. package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
  219. package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
  220. package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
  221. package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
  222. package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
  223. package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
  224. package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
  225. package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
  226. package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
  227. package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
  228. package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
  229. package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
  230. package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
  231. package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
  232. package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
  233. package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
  234. package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
  235. package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
  236. package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
  237. package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
  238. package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
  239. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  240. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
  241. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  242. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  243. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
  244. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
  245. package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
  246. package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
  247. package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
  248. package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
  249. package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
  250. package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
  251. package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
  252. package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
  253. package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
  254. package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
  255. package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
  256. package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
  257. package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
  258. package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
  259. package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
  260. package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
  261. package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
  262. package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
  263. package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
  264. package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
  265. package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
  266. package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
  267. package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
  268. package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
  269. package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
  270. package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
  271. package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
  272. package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
  273. package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
  274. package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
  275. package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
  276. package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
  277. package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
  278. package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
  279. package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
  280. package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
  281. package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
  282. package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
  283. package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
  284. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  285. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  286. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
  287. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
  288. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
  289. package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
  290. package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
  291. package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
  292. package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
  293. package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
  294. package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
  295. package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
  296. package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
  297. package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
  298. package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
  299. package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
  300. package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
  301. package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
  302. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  303. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
  304. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
  305. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
  306. package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
  307. package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
  308. package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
  309. package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
  310. package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
  311. package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
  312. package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
  313. package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
  314. package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
  315. package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
  316. package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
  317. package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
  318. package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
  319. package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
  320. package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
  321. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  322. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  323. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
  324. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
  325. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
  326. package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
  327. package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
  328. package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
  329. package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
  330. package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
  331. package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
  332. package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
  333. package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
  334. package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
  335. package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
  336. package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
  337. package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
  338. package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
  339. package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
  340. package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
  341. package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
  342. package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
  343. package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
  344. package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
  345. package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
  346. package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
  347. package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
  348. package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
  349. package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
  350. package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
  351. package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
  352. package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
  353. package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
  354. package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
  355. package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
  356. package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
  357. package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
  358. package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
  359. package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
  360. package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
  361. package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
  362. package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
  363. package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
  364. package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
  365. package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
  366. package/.opencode/oh-my-design/design-md/line/README.md +0 -12
  367. package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
  368. package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
  369. package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
  370. package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
  371. package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
  372. package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
  373. package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
  374. package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
  375. package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
  376. package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
  377. package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
  378. package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
  379. package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
  380. package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
  381. package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
  382. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  383. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
  384. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
  385. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
  386. package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
  387. package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
  388. package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
  389. package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
  390. package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
  391. package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
  392. package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
  393. package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
  394. package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
  395. package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
  396. package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
  397. package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
  398. package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
  399. package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
  400. package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
  401. package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
  402. package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
  403. package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
  404. package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
  405. package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
  406. package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
  407. package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
  408. package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
  409. package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
  410. package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
  411. package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
  412. package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
  413. package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
  414. package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
  415. package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
  416. package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
  417. package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
  418. package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
  419. package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
  420. package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
  421. package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
  422. package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
  423. package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
  424. package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
  425. package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
  426. package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
  427. package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
  428. package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
  429. package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
  430. package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
  431. package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
  432. package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
  433. package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
  434. package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
  435. package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
  436. package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
  437. package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
  438. package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
  439. package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
  440. package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
  441. package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
  442. package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
  443. package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
  444. package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
  445. package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
  446. package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
  447. package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
  448. package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
  449. package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
  450. package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
  451. package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
  452. package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
  453. package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
  454. package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
  455. package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
  456. package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
  457. package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
  458. package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
  459. package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
  460. package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
  461. package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
  462. package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
  463. package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
  464. package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
  465. package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
  466. package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
  467. package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
  468. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  469. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
  470. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  471. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
  472. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  473. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
  474. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
  475. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
  476. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
  477. package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
  478. package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
  479. package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
  480. package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
  481. package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
  482. package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
  483. package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
  484. package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
  485. package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
  486. package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
  487. package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
  488. package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
  489. package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
  490. package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
  491. package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
  492. package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
  493. package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
  494. package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
  495. package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
  496. package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
  497. package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
  498. package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
  499. package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
  500. package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
  501. package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
  502. package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
  503. package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
  504. package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
  505. package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
  506. package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
  507. package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
  508. package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
  509. package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
  510. package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
  511. package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
  512. package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
  513. package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
  514. package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
  515. package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
  516. package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
  517. package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
  518. package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
  519. package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
  520. package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
  521. package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
  522. package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
  523. package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
  524. package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
  525. package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
  526. package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
  527. package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
  528. package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
  529. package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
  530. package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
  531. package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
  532. package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
  533. package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
  534. package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
  535. package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
  536. package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
  537. package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
  538. package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
  539. package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
  540. package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
  541. package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
  542. package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
  543. package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
  544. package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
  545. package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
  546. package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
  547. package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
  548. package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
  549. package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
  550. package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
  551. package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
  552. package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
  553. package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
  554. package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
  555. package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
  556. package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
  557. package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
  558. package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
  559. package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
  560. package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
  561. package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
  562. package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
  563. package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
  564. package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
  565. package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
  566. package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
  567. package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
  568. package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
  569. package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
  570. package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
  571. package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
  572. package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
  573. package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
  574. package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
  575. package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
  576. package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
  577. package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
  578. package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
  579. package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
  580. package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
  581. package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
  582. package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
  583. package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
  584. package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
  585. package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
  586. package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
  587. package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
  588. package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
  589. package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
  590. package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
  591. package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
  592. package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
  593. package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
  594. package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
  595. package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
  596. package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
  597. package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
  598. package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
  599. package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
  600. package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
  601. package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
  602. package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
  603. package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
  604. package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
  605. package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
  606. package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
  607. package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
  608. package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
  609. package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
  610. package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
  611. package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
  612. package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
  613. package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
  614. package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
  615. package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
  616. package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
  617. package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
  618. package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
  619. package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
  620. package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
  621. package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
  622. package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
  623. package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
  624. package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
  625. package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
  626. package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
  627. package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
  628. package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
  629. package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
  630. package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
  631. package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
  632. package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
  633. package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
  634. package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
  635. package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
  636. package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
  637. package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
  638. package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
  639. package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
  640. package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
  641. package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
  642. package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
  643. package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
  644. package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
  645. package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
  646. package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
  647. package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
  648. package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
  649. package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
  650. package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
  651. package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
  652. package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
  653. package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
  654. package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
  655. package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
  656. package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
  657. package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
  658. package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
  659. package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
  660. package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
  661. package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
  662. package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
  663. package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
  664. package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
  665. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  666. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  667. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  668. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
  669. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
  670. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
  671. package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
  672. package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
  673. package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
  674. package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
  675. package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
  676. package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
  677. package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
  678. package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  679. package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
  680. package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
  681. package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  682. package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
  683. package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
  684. package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
  685. package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
  686. package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
  687. package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
  688. package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
  689. package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
  690. package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
  691. package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
  692. package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
  693. package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
  694. package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
  695. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  696. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
  697. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  698. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
  699. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
  700. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
  701. package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
  702. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  703. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
  704. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
  705. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
  706. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
  707. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
  708. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
  709. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
  710. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
  711. package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
  712. package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
  713. package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
  714. package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
  715. package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
  716. package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
  717. package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
  718. package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
  719. package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
  720. package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
  721. package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
  722. package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
  723. package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
  724. package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
  725. package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
  726. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  727. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
  728. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
  729. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
  730. package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
  731. package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
  732. package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
  733. package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
  734. package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
  735. package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
  736. package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
  737. package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
  738. package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
  739. package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
  740. package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
  741. package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
  742. package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
  743. package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
  744. package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
  745. package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
  746. package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
  747. package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
  748. package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
  749. package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
  750. package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
  751. package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
  752. package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
  753. package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
  754. package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
  755. package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
  756. package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
  757. package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
  758. package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
  759. package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
  760. package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
  761. package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
  762. package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
  763. package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
  764. package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
  765. package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
  766. package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
  767. package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
  768. package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
  769. package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
  770. package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
  771. package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
  772. package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
  773. package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
  774. package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
  775. package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
  776. package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
  777. package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
  778. package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
  779. package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
  780. package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
  781. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
  782. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
  783. package/.opencode/tools/extract-design-pattern.py +0 -182
  784. package/.opencode/tools/sdd_design.ts +0 -303
@@ -1,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
- -->