zugzbot 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (786) hide show
  1. package/.opencode/agents/sdd-coder.md +5 -4
  2. package/.opencode/agents/sdd-orchestrator.md +11 -10
  3. package/.opencode/agents/sdd-spec-writer.md +3 -4
  4. package/.opencode/commands/loop.md +1 -1
  5. package/.opencode/plugins/loop-enforcer.ts +0 -1
  6. package/.opencode/plugins/sdd-bridge.ts +1 -1
  7. package/.opencode/rules/sdd-global.md +8 -0
  8. package/.opencode/scripts/lint-charts.js +1 -2
  9. package/.opencode/skills/sdd-foundation-overview/SKILL.md +3 -4
  10. package/.opencode/skills/sdd-methodology/SKILL.md +8 -10
  11. package/.opencode/skills/sdd-quickstart/SKILL.md +5 -9
  12. package/.opencode/skills/shadcn-templates/SKILL.md +93 -32
  13. package/.opencode/templates/nextjs-shadcn/components.json +4 -1
  14. package/.opencode/tools/sdd_bootstrap.ts +21 -0
  15. package/.opencode/tools/sdd_catalog.ts +1040 -0
  16. package/.opencode/tools/sdd_core.ts +8 -6
  17. package/.opencode/tools/sdd_lucide.ts +112 -0
  18. package/README.md +1 -7
  19. package/opencode.json +0 -10
  20. package/package.json +1 -3
  21. package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
  22. package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
  23. package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
  24. package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
  25. package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
  26. package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
  27. package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
  28. package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
  29. package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
  30. package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
  31. package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
  32. package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
  33. package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
  34. package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
  35. package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
  36. package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
  37. package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
  38. package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
  39. package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
  40. package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
  41. package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
  42. package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
  43. package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
  44. package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
  45. package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
  46. package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
  47. package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
  48. package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
  49. package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
  50. package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
  51. package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
  52. package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
  53. package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
  54. package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
  55. package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
  56. package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
  57. package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
  58. package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
  59. package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
  60. package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
  61. package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
  62. package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
  63. package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
  64. package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
  65. package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
  66. package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
  67. package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
  68. package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
  69. package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
  70. package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
  71. package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
  72. package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
  73. package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
  74. package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
  75. package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
  76. package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
  77. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
  78. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
  79. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
  80. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
  81. package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
  82. package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
  83. package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
  84. package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
  85. package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
  86. package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
  87. package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
  88. package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
  89. package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
  90. package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
  91. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
  92. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
  93. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
  94. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
  95. package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
  96. package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
  97. package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
  98. package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
  99. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
  100. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
  101. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
  102. package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
  103. package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
  104. package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
  105. package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
  106. package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
  107. package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
  108. package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
  109. package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
  110. package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
  111. package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
  112. package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
  113. package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
  114. package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
  115. package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
  116. package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
  117. package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
  118. package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
  119. package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
  120. package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
  121. package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
  122. package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
  123. package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
  124. package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
  125. package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
  126. package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
  127. package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
  128. package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
  129. package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
  130. package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
  131. package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
  132. package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
  133. package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
  134. package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
  135. package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
  136. package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
  137. package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
  138. package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
  139. package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
  140. package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
  141. package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
  142. package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
  143. package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
  144. package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
  145. package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
  146. package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
  147. package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
  148. package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
  149. package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
  150. package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
  151. package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
  152. package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
  153. package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
  154. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
  155. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
  156. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
  157. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
  158. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
  159. package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
  160. package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
  161. package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
  162. package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
  163. package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
  164. package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
  165. package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
  166. package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
  167. package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
  168. package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
  169. package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
  170. package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
  171. package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
  172. package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
  173. package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
  174. package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
  175. package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
  176. package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
  177. package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
  178. package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
  179. package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
  180. package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
  181. package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
  182. package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
  183. package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
  184. package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
  185. package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
  186. package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
  187. package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
  188. package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
  189. package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
  190. package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
  191. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
  192. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
  193. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
  194. package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
  195. package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
  196. package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
  197. package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
  198. package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
  199. package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
  200. package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
  201. package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
  202. package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
  203. package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
  204. package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
  205. package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
  206. package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
  207. package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
  208. package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
  209. package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
  210. package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
  211. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
  212. package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
  213. package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
  214. package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
  215. package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
  216. package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
  217. package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
  218. package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
  219. package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
  220. package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
  221. package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
  222. package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
  223. package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
  224. package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
  225. package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
  226. package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
  227. package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
  228. package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
  229. package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
  230. package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
  231. package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
  232. package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
  233. package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
  234. package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
  235. package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
  236. package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
  237. package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
  238. package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
  239. package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
  240. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
  241. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
  242. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
  243. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
  244. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
  245. package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
  246. package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
  247. package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
  248. package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
  249. package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
  250. package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
  251. package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
  252. package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
  253. package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
  254. package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
  255. package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
  256. package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
  257. package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
  258. package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
  259. package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
  260. package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
  261. package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
  262. package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
  263. package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
  264. package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
  265. package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
  266. package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
  267. package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
  268. package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
  269. package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
  270. package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
  271. package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
  272. package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
  273. package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
  274. package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
  275. package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
  276. package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
  277. package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
  278. package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
  279. package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
  280. package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
  281. package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
  282. package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
  283. package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
  284. package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
  285. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
  286. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
  287. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
  288. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
  289. package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
  290. package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
  291. package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
  292. package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
  293. package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
  294. package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
  295. package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
  296. package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
  297. package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
  298. package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
  299. package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
  300. package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
  301. package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
  302. package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
  303. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
  304. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
  305. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
  306. package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
  307. package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
  308. package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
  309. package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
  310. package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
  311. package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
  312. package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
  313. package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
  314. package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
  315. package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
  316. package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
  317. package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
  318. package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
  319. package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
  320. package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
  321. package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
  322. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
  323. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
  324. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
  325. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
  326. package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
  327. package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
  328. package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
  329. package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
  330. package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
  331. package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
  332. package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
  333. package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
  334. package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
  335. package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
  336. package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
  337. package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
  338. package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
  339. package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
  340. package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
  341. package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
  342. package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
  343. package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
  344. package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
  345. package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
  346. package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
  347. package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
  348. package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
  349. package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
  350. package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
  351. package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
  352. package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
  353. package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
  354. package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
  355. package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
  356. package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
  357. package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
  358. package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
  359. package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
  360. package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
  361. package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
  362. package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
  363. package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
  364. package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
  365. package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
  366. package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
  367. package/.opencode/oh-my-design/design-md/line/README.md +0 -12
  368. package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
  369. package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
  370. package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
  371. package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
  372. package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
  373. package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
  374. package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
  375. package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
  376. package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
  377. package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
  378. package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
  379. package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
  380. package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
  381. package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
  382. package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
  383. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
  384. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
  385. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
  386. package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
  387. package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
  388. package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
  389. package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
  390. package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
  391. package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
  392. package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
  393. package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
  394. package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
  395. package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
  396. package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
  397. package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
  398. package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
  399. package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
  400. package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
  401. package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
  402. package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
  403. package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
  404. package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
  405. package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
  406. package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
  407. package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
  408. package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
  409. package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
  410. package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
  411. package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
  412. package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
  413. package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
  414. package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
  415. package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
  416. package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
  417. package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
  418. package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
  419. package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
  420. package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
  421. package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
  422. package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
  423. package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
  424. package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
  425. package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
  426. package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
  427. package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
  428. package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
  429. package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
  430. package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
  431. package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
  432. package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
  433. package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
  434. package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
  435. package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
  436. package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
  437. package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
  438. package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
  439. package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
  440. package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
  441. package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
  442. package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
  443. package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
  444. package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
  445. package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
  446. package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
  447. package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
  448. package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
  449. package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
  450. package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
  451. package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
  452. package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
  453. package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
  454. package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
  455. package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
  456. package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
  457. package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
  458. package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
  459. package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
  460. package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
  461. package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
  462. package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
  463. package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
  464. package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
  465. package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
  466. package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
  467. package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
  468. package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
  469. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
  470. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
  471. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
  472. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
  473. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
  474. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
  475. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
  476. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
  477. package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
  478. package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
  479. package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
  480. package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
  481. package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
  482. package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
  483. package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
  484. package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
  485. package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
  486. package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
  487. package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
  488. package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
  489. package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
  490. package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
  491. package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
  492. package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
  493. package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
  494. package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
  495. package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
  496. package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
  497. package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
  498. package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
  499. package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
  500. package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
  501. package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
  502. package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
  503. package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
  504. package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
  505. package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
  506. package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
  507. package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
  508. package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
  509. package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
  510. package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
  511. package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
  512. package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
  513. package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
  514. package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
  515. package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
  516. package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
  517. package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
  518. package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
  519. package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
  520. package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
  521. package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
  522. package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
  523. package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
  524. package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
  525. package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
  526. package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
  527. package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
  528. package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
  529. package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
  530. package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
  531. package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
  532. package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
  533. package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
  534. package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
  535. package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
  536. package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
  537. package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
  538. package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
  539. package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
  540. package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
  541. package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
  542. package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
  543. package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
  544. package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
  545. package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
  546. package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
  547. package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
  548. package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
  549. package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
  550. package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
  551. package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
  552. package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
  553. package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
  554. package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
  555. package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
  556. package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
  557. package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
  558. package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
  559. package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
  560. package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
  561. package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
  562. package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
  563. package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
  564. package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
  565. package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
  566. package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
  567. package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
  568. package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
  569. package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
  570. package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
  571. package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
  572. package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
  573. package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
  574. package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
  575. package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
  576. package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
  577. package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
  578. package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
  579. package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
  580. package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
  581. package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
  582. package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
  583. package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
  584. package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
  585. package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
  586. package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
  587. package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
  588. package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
  589. package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
  590. package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
  591. package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
  592. package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
  593. package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
  594. package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
  595. package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
  596. package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
  597. package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
  598. package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
  599. package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
  600. package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
  601. package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
  602. package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
  603. package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
  604. package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
  605. package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
  606. package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
  607. package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
  608. package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
  609. package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
  610. package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
  611. package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
  612. package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
  613. package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
  614. package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
  615. package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
  616. package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
  617. package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
  618. package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
  619. package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
  620. package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
  621. package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
  622. package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
  623. package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
  624. package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
  625. package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
  626. package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
  627. package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
  628. package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
  629. package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
  630. package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
  631. package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
  632. package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
  633. package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
  634. package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
  635. package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
  636. package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
  637. package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
  638. package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
  639. package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
  640. package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
  641. package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
  642. package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
  643. package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
  644. package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
  645. package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
  646. package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
  647. package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
  648. package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
  649. package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
  650. package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
  651. package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
  652. package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
  653. package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
  654. package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
  655. package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
  656. package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
  657. package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
  658. package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
  659. package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
  660. package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
  661. package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
  662. package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
  663. package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
  664. package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
  665. package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
  666. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
  667. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
  668. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
  669. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
  670. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
  671. package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
  672. package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
  673. package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
  674. package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
  675. package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
  676. package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
  677. package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
  678. package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
  679. package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
  680. package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
  681. package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
  682. package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
  683. package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
  684. package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
  685. package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
  686. package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
  687. package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
  688. package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
  689. package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
  690. package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
  691. package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
  692. package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
  693. package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
  694. package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
  695. package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
  696. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
  697. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
  698. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
  699. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
  700. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
  701. package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
  702. package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
  703. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
  704. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
  705. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
  706. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
  707. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
  708. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
  709. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
  710. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
  711. package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
  712. package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
  713. package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
  714. package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
  715. package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
  716. package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
  717. package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
  718. package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
  719. package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
  720. package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
  721. package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
  722. package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
  723. package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
  724. package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
  725. package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
  726. package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
  727. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
  728. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
  729. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
  730. package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
  731. package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
  732. package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
  733. package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
  734. package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
  735. package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
  736. package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
  737. package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
  738. package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
  739. package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
  740. package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
  741. package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
  742. package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
  743. package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
  744. package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
  745. package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
  746. package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
  747. package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
  748. package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
  749. package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
  750. package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
  751. package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
  752. package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
  753. package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
  754. package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
  755. package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
  756. package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
  757. package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
  758. package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
  759. package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
  760. package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
  761. package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
  762. package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
  763. package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
  764. package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
  765. package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
  766. package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
  767. package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
  768. package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
  769. package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
  770. package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
  771. package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
  772. package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
  773. package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
  774. package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
  775. package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
  776. package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
  777. package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
  778. package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
  779. package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
  780. package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
  781. package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
  782. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
  783. package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
  784. package/.opencode/tools/akash_catalog.ts +0 -596
  785. package/.opencode/tools/extract-design-pattern.py +0 -182
  786. package/.opencode/tools/sdd_design.ts +0 -303
@@ -1,637 +0,0 @@
1
- ---
2
- id: cloudflare
3
- name: Cloudflare
4
- country: US
5
- category: backend-devops
6
- homepage: "https://www.cloudflare.com"
7
- primary_color: "#F6821F"
8
- logo:
9
- type: simpleicons
10
- slug: "cloudflare"
11
- verified: "2026-06-06"
12
- added: "2026-06-06"
13
- omd: "0.1"
14
- tokens:
15
- source: design-system
16
- extracted: "2026-06-08"
17
- components_harvested: true
18
- note: "Cloudflare Orange #F6821F is the singular brand + primary-action color; rationed to one or two places per screen. Warm near-black text, never pure #000."
19
- colors:
20
- primary: "#F6821F"
21
- primary-hover: "#E2700B"
22
- primary-pressed: "#D9700F"
23
- brand: "#F6821F"
24
- brand-gradient-end: "#FAAD3F"
25
- canvas: "#FFFFFF"
26
- surface: "#FFFFFF"
27
- surface-alt: "#F7F7F7"
28
- foreground: "#1D1F20"
29
- body: "#36393A"
30
- muted: "#717174"
31
- placeholder: "#999999"
32
- hairline: "#EDEDED"
33
- border-strong: "#D9D9D9"
34
- on-primary: "#FFFFFF"
35
- orange-tint: "#FDF3E7"
36
- success: "#2FB344"
37
- error: "#BD2528"
38
- warning: "#F6C549"
39
- info: "#2C7CB0"
40
- dark-bg: "#15171A"
41
- dark-surface: "#262A2E"
42
- dark-border: "#3A3F44"
43
- dark-text: "#E4E6E7"
44
- typography:
45
- family: { sans: "Inter", mono: "JetBrains Mono" }
46
- display-hero: { size: 56, weight: 700, lineHeight: 1.1, tracking: -0.02, use: "Marketing hero headline" }
47
- display: { size: 40, weight: 700, lineHeight: 1.15, tracking: -0.02, use: "Major section headers" }
48
- heading-1: { size: 32, weight: 700, lineHeight: 1.2, tracking: -0.01, use: "Page titles" }
49
- heading-2: { size: 24, weight: 600, lineHeight: 1.3, tracking: -0.01, use: "Section / card group titles" }
50
- heading-3: { size: 20, weight: 600, lineHeight: 1.4, use: "Card headings, panel titles" }
51
- subtitle: { size: 18, weight: 600, lineHeight: 1.45, use: "Lead-in / dashboard section labels" }
52
- body-large: { size: 16, weight: 400, lineHeight: 1.6, use: "Marketing paragraphs" }
53
- body: { size: 14, weight: 400, lineHeight: 1.55, use: "Dashboard standard text" }
54
- body-small: { size: 13, weight: 400, lineHeight: 1.5, use: "Table cells, secondary info" }
55
- caption: { size: 12, weight: 400, lineHeight: 1.5, use: "Metadata, timestamps, helper text" }
56
- label-eyebrow: { size: 12, weight: 600, lineHeight: 1.4, tracking: 0.06, use: "Section eyebrows, table headers, uppercase" }
57
- code-mono: { size: 13, weight: 400, lineHeight: 1.6, use: "DNS records, IPs, API tokens, code" }
58
- spacing: { xs: 4, sm: 8, md: 16, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
59
- rounded: { sm: 4, md: 6, lg: 8, xl: 12, full: 9999 }
60
- shadow:
61
- subtle: "rgba(0,0,0,0.06) 0px 1px 3px 0px"
62
- raised: "rgba(0,0,0,0.08) 0px 4px 16px 0px"
63
- floating: "rgba(0,0,0,0.12) 0px 8px 24px 0px"
64
- modal: "rgba(0,0,0,0.18) 0px 12px 32px 0px"
65
- components:
66
- button-primary: { type: button, bg: "#f6821f", fg: "#ffffff", radius: "8px", height: "36px", padding: "0 12px", font: "14px / 600", hover: "#e2700b", active: "#d9700f", focus: "2px brand ring", disabled: "brand 50% opacity", use: "Primary action — Get started, Add site, Save, Deploy" }
67
- button-secondary: { type: button, bg: "#ffffff", fg: "#36393a", border: "1px solid #d9d9d9", radius: "8px", hover: "bg #fafafa · border #a1a1a1", use: "Companion to a primary — Cancel, Back" }
68
- button-ghost: { type: button, bg: "transparent", fg: "#f6821f", radius: "8px", padding: "0 12px", hover: "bg #fdf3e7", use: "Inline low-emphasis action, Learn more, text-link button" }
69
- button-danger: { type: button, bg: "#bd2528", fg: "#ffffff", radius: "8px", hover: "#a11f22", use: "Delete zone, remove record, purge — confirmation contexts only" }
70
- button-sm: { type: button, height: "26px", radius: "6px", padding: "0 8px", font: "12px / 600", use: "Toolbar and table-row inline actions where vertical space is tight" }
71
- icon-button: { type: button, height: "36px", radius: "8px", padding: "0", use: "Close, kebab menu, copy-to-clipboard affordance" }
72
- input: { type: input, bg: "#ffffff", fg: "#1d1f20", border: "1px solid #d9d9d9", radius: "8px", height: "40px", padding: "0 16px", font: "14px / 400", focus: "1.5px brand ring · 0 0 0 3px rgba(246,130,31,0.2)", use: "Standard form input, search, config values" }
73
- input-mono: { type: input, bg: "#ffffff", fg: "#1d1f20", border: "1px solid #d9d9d9", radius: "8px", font: "13px / 400 JetBrains Mono", use: "DNS record values, IP entry, token paste fields" }
74
- select: { type: input, bg: "#ffffff", fg: "#1d1f20", border: "1px solid #d9d9d9", radius: "8px", height: "40px", use: "Plan picker, record-type selector, region dropdown — #717174 chevron" }
75
- switch: { type: toggle, active: "#f6821f", disabled: "#d9d9d9", radius: "5px", use: "Proxy on/off, feature flags, security toggles — white thumb with edge+drop shadow" }
76
- checkbox: { type: toggle, bg: "#f6821f", border: "1px solid #d9d9d9", radius: "6px", use: "Multi-select rules, plan options, consent — brand fill + white glyph when checked" }
77
- card: { type: card, bg: "#ffffff", border: "1px solid #ededed", radius: "8px", padding: "24px", shadow: "0 1px 3px rgba(0,0,0,0.06)", use: "Dashboard config panels, analytics modules — the workhorse surface" }
78
- stat-card: { type: card, bg: "#ffffff", border: "1px solid #ededed", radius: "8px", padding: "20px", font: "32px / 700 #1d1f20 number · 12px / 600 uppercase #717174 label", use: "Analytics summary tiles (requests, bandwidth, threats blocked)" }
79
- surface: { type: card, bg: "#ffffff", border: "1px solid #ededed", use: "kumo elevation roles — canvas #ffffff, recessed #f7f7f7, line/hairline #ededed" }
80
- badge: { type: badge, radius: "9999px", padding: "2px 8px", font: "12px / 500", use: "NEW, Beta, version, plan, short metadata — neutral/success/error/warning/info/orange + dashed-brand + 7px status dot" }
81
- status-pill: { type: badge, bg: "#e8f5d8", fg: "#3d6b14", radius: "9999px", padding: "2px 10px", font: "12px / 600", states: "green active #e8f5d8/#3d6b14 · red down #fbe2e2/#bd2528 · yellow pending #fcf3d6/#8a6d1b · grey #ededed/#4d4d4d · orange #fdf3e7/#c2670f", use: "Active, Proxied, Down, Pending status with colored dot" }
82
- tabs: { type: tab, active: "text #1d1f20 + 2px bottom border #f6821f", border: "1px solid #ededed bottom rule", font: "14px / 600", disabled: "#717174 inactive label", use: "Dashboard section switching (Overview / Analytics / DNS / SSL)" }
83
- table: { type: card, bg: "#ffffff", border: "1px solid #ededed", font: "13px / 400 #36393a body", padding: "12px 16px", hover: "#fafafa row", use: "DNS records, firewall rules, analytics logs — header bg #fafafa 12px/600 uppercase #717174" }
84
- dialog: { type: dialog, bg: "#ffffff", fg: "#1d1f20", border: "1px solid #ededed", radius: "12px", padding: "32px", shadow: "0 12px 32px rgba(0,0,0,0.18)", use: "Confirmations, destructive double-checks, add-record flows — scrim rgba(29,31,32,0.5), scale-90 enter over 150ms" }
85
- toast: { type: toast, bg: "#1d1f20", fg: "#ffffff", radius: "12px", padding: "16px", shadow: "0 8px 24px rgba(0,0,0,0.12)", states: "success #2fb344 · error #bd2528 · warning #f6c549 · info #2c7cb0", use: "Auto-dismissing confirmation, fixed bottom-right 340px, 4-5s dismiss" }
86
- tooltip: { type: card, bg: "#ffffff", fg: "#1d1f20", border: "1px solid #ededed", radius: "6px", padding: "6px 10px", font: "13px / 400", shadow: "shadow-lg", use: "Icon labels, truncated-value reveal, glossary terms" }
87
- code-block: { type: card, bg: "#f5f5f5", fg: "#1d1f20", border: "1px solid #ededed", radius: "6px", padding: "12px 16px", font: "13px / 400 JetBrains Mono", use: "API examples, Worker snippets, curl commands, DNS values" }
88
- ---
89
-
90
- # Design System Inspiration of Cloudflare
91
-
92
- ## 1. Visual Theme & Atmosphere
93
-
94
- Cloudflare is the connectivity-cloud company that sits in front of a meaningful slice of the internet — CDN, DNS, DDoS mitigation, Zero Trust, Workers edge compute. Its visual identity has one job: make planet-scale infrastructure feel *approachable and human* in a category that defaults to cold, blue, enterprise seriousness. The answer is a single, unmistakable move — **Cloudflare Orange (`#F6821F`)** against generous white space and near-black charcoal text. In a backend-devops landscape where AWS, Azure, GCP, Datadog, and nearly every security vendor reach for navy and electric blue, Cloudflare's warm orange is a deliberate act of differentiation. The orange *is* the brand; everything else is restraint built to let it sing.
95
-
96
- The marketing surface (cloudflare.com) is bright, airy, and optimistic — large charcoal headlines on white, orange reserved almost exclusively for calls-to-action and the cloud logomark. The product surface (the Cloudflare dashboard) is denser and more utilitarian: data tables, status pills, analytics graphs, config toggles, and code blocks, where orange becomes a precision accent rather than a field of color. Both surfaces share the same DNA — clarity first, decoration never, the orange as the one emotional note in an otherwise technical instrument.
97
-
98
- Typography is **Inter-led** — a clean, highly-legible neo-grotesque optimized for screens — with a system-font fallback stack so the dashboard stays fast everywhere. Headings are set tight and confident; body copy is calm and explanatory. Cloudflare's published "Color by Cloudflare Design" system organizes hues into perceptual scales, and the dashboard ships a fully-realized dark mode, signalling a mature, token-driven design org rather than ad-hoc styling.
99
-
100
- **Key Characteristics:**
101
- - Cloudflare Orange (`#F6821F`) as the singular brand and primary-action color — warm, energetic, instantly recognizable
102
- - Inter typeface with a system-ui fallback stack — screen-optimized neo-grotesque
103
- - Bright white marketing canvas; dense, table-heavy product dashboard with first-class dark mode
104
- - Near-black charcoal text (`#36393A` / `#1D1F20`) — warm-neutral, never pure `#000`
105
- - Orange used sparingly and intentionally — CTAs, links, active states, the logomark — not as decoration
106
- - Perceptual color scales (orange, blue, grey, plus semantic red/green/yellow) for tokens
107
- - Engineering-grade restraint: clean rules, subtle shadows, generous whitespace, no gratuitous gradients
108
-
109
- ## 2. Color Palette & Roles
110
-
111
- ### Primary
112
- - **Cloudflare Orange** (`#F6821F`): The brand. Primary CTAs, the cloud logomark, links, active/selected states, focus accents. The one color that carries emotional weight.
113
- - **Orange Hover** (`#E2700B` / approx `#D9700F`): Hover/pressed state for orange CTAs — a darker, denser orange.
114
- - **Orange Tint** (`#FBE6CC` / `#FDF3E7`): Soft orange-tinted backgrounds for info banners, highlighted rows, and selected list items.
115
- - **Brand Orange Alt** (`#F48120`): Logo-mark gradient orange (the icon is built from a warm orange gradient `#F6821F → #FAAD3F`). Marketing/logo contexts only.
116
- - **Gradient Yellow-Orange** (`#FAAD3F`): The lighter stop in the logomark gradient. Decorative brand moments, never UI text.
117
-
118
- ### Surface & Background
119
- - **Pure White** (`#FFFFFF`): Marketing page background, card surfaces, dashboard panels (light mode).
120
- - **Off-White** (`#F7F7F7` / `#F5F5F5`): Secondary background, page wash behind cards, zebra-stripe table rows.
121
- - **Light Grey Surface** (`#EDEDED` / `#F0F0F0`): Input fills, disabled surfaces, subtle separators.
122
-
123
- ### Text
124
- - **Charcoal (Headings)** (`#1D1F20`): Strongest text — display headlines and key labels. Warm near-black.
125
- - **Body Charcoal** (`#36393A`): Standard body copy and paragraph text.
126
- - **Muted Grey** (`#666666` / `#717174`): Secondary labels, captions, metadata.
127
- - **Placeholder Grey** (`#999999` / `#A1A1A1`): Input placeholders, disabled text.
128
-
129
- ### Semantic
130
- - **Success Green** (`#9BCA3E` / `#2FB344`): "Active", "Proxied", healthy status, success toasts. (Cloudflare's classic proxied/healthy green leans `#9BCA3E`; dashboards use a saturated `#2FB344` for status dots.)
131
- - **Error Red** (`#BD2528` / `#E1351D`): Errors, destructive actions, "Down"/"Blocked" status, attack indicators.
132
- - **Warning Yellow** (`#F6C549` / `#FFC107`): Caution, "DNS only" / "Paused" states, attention banners.
133
- - **Info Blue** (`#2C7CB0` / `#0073AA`): Informational accents, secondary links, neutral-technical highlights, chart series.
134
-
135
- ### Neutral / Grey Scale
136
- - **Grey 50** (`#FAFAFA`): Lightest wash.
137
- - **Grey 100** (`#F5F5F5`): Card fill, page background.
138
- - **Grey 200** (`#EDEDED`): Default borders, dividers.
139
- - **Grey 300** (`#D9D9D9`): Strong borders, input outlines.
140
- - **Grey 400** (`#A1A1A1`): Placeholder, disabled icon.
141
- - **Grey 500** (`#717174`): Caption / secondary text.
142
- - **Grey 600** (`#4D4D4D`): Emphasized secondary text.
143
- - **Grey 700** (`#36393A`): Body text.
144
- - **Grey 900** (`#1D1F20`): Headings, strongest text.
145
-
146
- ### Dark Mode (Dashboard)
147
- - **Dark Background** (`#1D1F20` / `#15171A`): App background.
148
- - **Dark Surface** (`#262A2E` / `#23272B`): Card/panel surface.
149
- - **Dark Border** (`#3A3F44`): Dividers and outlines.
150
- - **Dark Text** (`#E4E6E7`): Primary text on dark; muted `#9BA1A6`.
151
- - Orange stays `#F6821F` in dark mode — it is bright enough to hold against dark surfaces without adjustment.
152
-
153
- ## 3. Typography Rules
154
-
155
- ### Font Family
156
- - **Primary**: `"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`
157
- - **Display/Marketing**: Inter (tight tracking on large sizes) — some hero moments use Inter Display optical sizing.
158
- - **Monospace**: `"JetBrains Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace` — for code blocks, DNS records, IP addresses, API keys, and config snippets, which are everywhere in the product.
159
-
160
- ### Hierarchy
161
-
162
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
163
- |------|------|------|--------|-------------|----------------|-------|
164
- | Display Hero | Inter | 56px | 700 | 1.1 (62px) | -0.02em | Marketing hero headline |
165
- | Display | Inter | 40px | 700 | 1.15 (46px) | -0.02em | Major section headers |
166
- | Heading 1 | Inter | 32px | 700 | 1.2 (38px) | -0.01em | Page titles |
167
- | Heading 2 | Inter | 24px | 600 | 1.3 (31px) | -0.01em | Section / card group titles |
168
- | Heading 3 | Inter | 20px | 600 | 1.4 (28px) | normal | Card headings, panel titles |
169
- | Subtitle | Inter | 18px | 600 | 1.45 (26px) | normal | Lead-in / dashboard section labels |
170
- | Body Large | Inter | 16px | 400 | 1.6 (26px) | normal | Marketing paragraphs |
171
- | Body | Inter | 14px | 400 | 1.55 (22px) | normal | Dashboard standard text |
172
- | Body Small | Inter | 13px | 400 | 1.5 (20px) | normal | Table cells, secondary info |
173
- | Caption | Inter | 12px | 400 | 1.5 (18px) | normal | Metadata, timestamps, helper text |
174
- | Label / Eyebrow | Inter | 12px | 600 | 1.4 (17px) | 0.06em UPPER | Section eyebrows, table headers |
175
- | Code / Mono | JetBrains Mono | 13px | 400 | 1.6 (21px) | normal | DNS records, IPs, API tokens, code |
176
-
177
- ### Principles
178
- - **Inter, three weights.** 400 (body), 600 (emphasis/sub-headings), 700 (headlines). Avoid 500 in UI text; reserve 800/900 for rare marketing display.
179
- - **Negative tracking on large type.** Headlines ≥24px tighten to `-0.01em` to `-0.02em` for a confident, modern feel; body stays at normal tracking.
180
- - **Monospace is a first-class citizen.** Technical strings — IPs, DNS records, hashes, tokens, JSON — always render in mono so they are scannable and copy-safe. Never set an API key in a proportional font.
181
- - **Uppercase eyebrows.** Small 12px/600 uppercase labels with `0.06em` tracking mark sections and table headers — a quiet structural device, not decoration.
182
-
183
- ## 4. Component Patterns
184
-
185
- Cloudflare maintains a public, open-source component library — **kumo** (`github.com/cloudflare/kumo`, built on Base UI primitives + Tailwind CSS v4), succeeding the earlier **cf-ui** styleguide (`cloudflare.github.io/cf-ui`) — plus a public docs Style Guide (`developers.cloudflare.com/style-guide/components`). The geometry below is lifted from kumo's actual source: a consistent four-step control-size scale (`h-5`/`h-6.5`/`h-9`/`h-10` → 20/26/36/40px), a `rounded-sm → rounded-md → rounded-lg → rounded-xl` radius ladder (4/6/8/12px), and `ring`-based borders over solid borders. One honest nuance worth recording: kumo's *interactive* brand token (`--color-kumo-brand`) is a **blue** in the current library, while **Cloudflare Orange `#F6821F`** persists as the marketing/brand accent (`--text-color-kumo-brand: #f6821f`) and is what the live cloudflare.com surface renders for primary CTAs. The specs below keep the orange-led brand identity that the public marketing surface still ships, annotating where kumo diverges to blue.
186
-
187
- ### Actions
188
-
189
- **Primary Button**
190
- - Fill: `#F6821F` · Text: `#FFFFFF` · Border: none
191
- - Radius: 8px (kumo `rounded-lg`)
192
- - Sizes: medium `h-9` (36px, 12px horizontal padding), large `h-10` (40px, 16px horizontal padding)
193
- - Font: 14px / 600 / Inter (kumo `text-base` 16px on large)
194
- - Hover: `#E2700B` · Pressed: `#D9700F` · Disabled: brand at 50% opacity
195
- - Focus: 2px brand ring (`focus-visible:ring-2 focus-visible:ring-kumo-brand`)
196
- - Use: Primary action — "Get started", "Add site", "Save", "Deploy"
197
-
198
- **Secondary Button (outline)**
199
- - Fill: `#FFFFFF` · Text: `#36393A`
200
- - Ring: 1px `#D9D9D9` hairline · Radius: 8px
201
- - Hover: background `#FAFAFA`, ring `#A1A1A1`
202
- - Use: Companion to a primary ("Cancel", "Back")
203
-
204
- **Ghost Button**
205
- - Fill: transparent · Text: `#F6821F` · Radius: 8px
206
- - Padding: 0 12px · Hover: background `#FDF3E7` (kumo `bg-kumo-tint`)
207
- - Use: Inline low-emphasis action, "Learn more", text-link button
208
-
209
- **Destructive Button**
210
- - Fill: `#BD2528` · Text: `#FFFFFF` · Radius: 8px
211
- - Hover: `#A11F22` (kumo: danger at 70% opacity)
212
- - Secondary destructive variant: white fill, `#BD2528` text, hairline ring
213
- - Use: Delete zone, remove record, purge — confirmation contexts only
214
-
215
- **Compact / Small Button**
216
- - Size: `h-6.5` (26px) · Radius: 6px (`rounded-md`) · Padding: 0 8px · Font: 12px
217
- - Use: Toolbar and table-row inline actions where vertical space is tight
218
-
219
- **Icon Button**
220
- - Square `h-9`/`h-10`, `p-0`, centered glyph; `rounded-full` or 8px radius
221
- - Use: Close, kebab menu, copy-to-clipboard affordance
222
-
223
- **Dark CTA (Marketing)**
224
- - Fill: `#1D1F20` · Text: `#FFFFFF` · Radius: 8px · Padding: 0 24px
225
- - Font: 16px / 600 / Inter · Height: 48px
226
- - Use: Marketing-page secondary CTA where orange is already spent on the primary
227
-
228
- ### Navigation
229
-
230
- **Underline Tabs (default)**
231
- - Container border-bottom: 1px solid `#EDEDED`
232
- - Inactive: text `#717174`, 14px / 600 · Hover: text `#36393A`
233
- - Active: text `#1D1F20`, 2px bottom border `#F6821F`
234
- - Use: Dashboard section switching (Overview / Analytics / DNS / SSL)
235
-
236
- **Sidebar / Left Nav**
237
- - Persistent ~240px rail, white surface, 1px `#EDEDED` right hairline
238
- - Item: 14px / 400, `#36393A`; active item orange-tinted `#FDF3E7` fill + `#F6821F` text/indicator
239
- - Collapses to an icon rail, then a drawer on mobile (kumo `sidebar`)
240
-
241
- **Breadcrumbs**
242
- - 13px / 400 `#717174`, `#36393A` on current crumb, `/` or chevron separators in `#A1A1A1`
243
- - Use: Zone → section → record deep paths
244
-
245
- **Pagination**
246
- - Numbered controls as compact buttons; current page brand-tinted; prev/next chevrons
247
- - Use: Long DNS/log/audit tables (kumo `pagination`)
248
-
249
- ### Forms
250
-
251
- **Text Field**
252
- - Fill: `#FFFFFF` · Text: `#1D1F20` · Placeholder: `#999999`
253
- - Ring: 1px `#D9D9D9` (`ring-kumo-line`) · Radius: 8px
254
- - Size: `h-10` (40px), 16px horizontal padding · Font: 14px / 400 / Inter
255
- - Focus: 1.5px brand ring (kumo `focus:ring-[1.5px]`) — marketing/live surface renders the orange ring `0 0 0 3px rgba(246,130,31,0.2)`
256
- - Use: Standard form input, search, config values
257
-
258
- **Mono Input (technical)**
259
- - Fill: `#FFFFFF` · Text: `#1D1F20` · Ring: 1px `#D9D9D9` · Radius: 8px
260
- - Font: 13px / 400 / JetBrains Mono
261
- - Use: DNS record values, IP entry, token paste fields
262
-
263
- **Input Error State**
264
- - Ring: 1.5px `#BD2528` (`ring-kumo-danger`)
265
- - Focus ring: `0 0 0 3px rgba(189,37,40,0.18)`
266
- - Helper text below: `#BD2528`, 12px / 400 — one actionable sentence
267
- - Use: Validation failure
268
-
269
- **Select / Dropdown**
270
- - Fill: `#FFFFFF` · Ring: 1px `#D9D9D9` · Radius: 8px · Size: `h-10`
271
- - Chevron: `#717174`
272
- - Use: Plan picker, record-type selector, region dropdown
273
-
274
- **Switch / Toggle**
275
- - DS sizes: track `h-4`/`h-4.5`/`h-5` (16/18/20px)
276
- - Shape: `rounded-[5px]`, squircle-rounded to 10px where supported
277
- - On: `#F6821F` (kumo library on-state = blue `#2C7CB0`) · Off: `#D9D9D9`
278
- - Thumb: `#FFFFFF` circle with edge+drop shadow (`shadow-[0 0 1px .5px edge, 0 1px 2px drop]`)
279
- - Use: Proxy on/off, feature flags, security toggles
280
-
281
- **Checkbox / Radio**
282
- - Square (checkbox) / circle (radio), ~6px / pill radius
283
- - Checked: brand fill + white glyph · Unchecked: 1px `#D9D9D9` hairline ring
284
- - Use: Multi-select rules, plan options, consent
285
-
286
- ### Data display
287
-
288
- **Standard Panel**
289
- - Fill: `#FFFFFF` · Border: 1px solid `#EDEDED` · Radius: 8px · Padding: 24px
290
- - Shadow: `0 1px 3px rgba(0,0,0,0.06)`
291
- - Use: Dashboard config panels, analytics modules — the workhorse surface
292
-
293
- **Marketing Feature Card**
294
- - Fill: `#FFFFFF` · Border: none · Radius: 12px · Padding: 32px
295
- - Shadow: `0 4px 16px rgba(0,0,0,0.08)`
296
- - Use: Product/feature cards on the marketing site
297
-
298
- **Stat / Metric Card**
299
- - Fill: `#FFFFFF` · Border: 1px solid `#EDEDED` · Radius: 8px · Padding: 20px
300
- - Big number: 32px / 700 / Inter, `#1D1F20`
301
- - Label: 12px / 600 uppercase, `#717174`
302
- - Use: Analytics summary tiles (requests, bandwidth, threats blocked)
303
-
304
- **Data Table**
305
- - Header row: background `#FAFAFA`, text 12px / 600 uppercase `#717174`, `0.04em` tracking
306
- - Body cell: 13px / 400 `#36393A`, padding 12px 16px
307
- - Row border: 1px solid `#EDEDED` · Hover row: background `#FAFAFA`
308
- - Zebra (optional): alternate `#FFFFFF` / `#FAFAFA`
309
- - Use: DNS records, firewall rules, analytics logs — the heart of the product
310
-
311
- **Code Block**
312
- - Background: `#F5F5F5` (light) / `#15171A` (dark) · Text: `#1D1F20` / `#E4E6E7`
313
- - Border: 1px solid `#EDEDED` (light) · Radius: 6px · Padding: 12px 16px
314
- - Font: 13px / 400 / JetBrains Mono · with copy-to-clipboard affordance
315
- - Use: API examples, Worker snippets, curl commands, DNS values
316
-
317
- **Meter / Progress**
318
- - Track: `#EDEDED` rounded-full; fill brand `#F6821F` (or semantic for usage warnings)
319
- - Use: Plan usage, bandwidth consumption, upload progress (kumo `meter`)
320
-
321
- ### Overlays
322
-
323
- **Dialog / Modal**
324
- - Fill: `#FFFFFF` · Text: `#1D1F20` · Ring: 1px line · Radius: 12px (`rounded-xl`) · Padding: 32px (`p-8`)
325
- - Shadow: `0 12px 32px rgba(0,0,0,0.18)`
326
- - Scrim: `rgba(29,31,32,0.5)` (kumo recessed at ~80% opacity)
327
- - Enter: scale from 90% + fade over 150ms
328
- - Use: Confirmations, destructive double-checks, add-record flows
329
-
330
- **Popover / Dropdown Menu**
331
- - Fill: `#FFFFFF` · Ring: 1px `#EDEDED` · Radius: 8px · Shadow: floating `0 8px 24px rgba(0,0,0,0.12)`
332
- - Item hover: `#FAFAFA` fill
333
- - Use: Action menus, command palette, account switcher (kumo `popover`, `dropdown`, `command-palette`)
334
-
335
- **Tooltip**
336
- - Fill: `#FFFFFF` · Text: `#1D1F20`, 13px · Radius: 6px (`rounded-md`) · Padding: 6px 10px
337
- - Shadow: `shadow-lg`, 1px outline
338
- - Use: Icon labels, truncated-value reveal, glossary terms
339
-
340
- ### Feedback & Status
341
-
342
- **Toast**
343
- - Fill: `#1D1F20` (live marketing) / `#FFFFFF` (kumo) · Text: `#FFFFFF` / `#1D1F20`
344
- - Radius: 12px (`rounded-xl`) · Padding: 16px · Shadow: `shadow-lg`
345
- - Accent: 4px brand left-border (marketing) or 0.3px semantic ring — success green `#2FB344`, error red `#BD2528`, warning yellow `#F6C549`, info blue `#2C7CB0`
346
- - Position: fixed bottom-right, 340px wide; 4–5s auto-dismiss
347
- - Use: Auto-dismissing confirmation ("Record added", "Settings saved")
348
-
349
- **Banner / Alert**
350
- - Full-width inline strip; tinted background by severity (info `#FDF3E7`-style tint, warning, danger, success)
351
- - 1px hairline, 14px text, optional icon + dismiss
352
- - Use: Account-level notices, plan upgrade prompts, incident banners (kumo `banner`)
353
-
354
- **Badge**
355
- - Shape: `rounded-full` · Padding: 2px 8px · Font: 12px / 500
356
- - Variants: neutral, success, error, warning, info, orange, plus dashed-brand outline
357
- - Optional 7px status dot (`size-1.75 rounded-full`)
358
- - Use: "NEW", "Beta", version, plan, short metadata
359
-
360
- **Status Pill — Active / Proxied (Green)**
361
- - Background: `#E8F5D8` · Dot: `#2FB344` · Text: `#3D6B14`
362
- - Radius: 9999px · Padding: 2px 10px · Font: 12px / 600 / Inter
363
- - Use: "Active", "Proxied", healthy
364
-
365
- **Status Pill — Error / Down (Red)**
366
- - Background: `#FBE2E2` · Text: `#BD2528`
367
- - Radius: 9999px · Padding: 2px 10px · Font: 12px / 600 / Inter
368
- - Use: "Down", "Blocked", "Error"
369
-
370
- **Status Pill — Pending / Paused (Yellow)**
371
- - Background: `#FCF3D6` · Text: `#8A6D1B`
372
- - Radius: 9999px · Padding: 2px 10px · Font: 12px / 600 / Inter
373
- - Use: "Pending", "DNS only", "Paused"
374
-
375
- **Status Pill — Neutral (Grey)**
376
- - Background: `#EDEDED` · Text: `#4D4D4D`
377
- - Radius: 9999px · Padding: 2px 10px · Font: 12px / 600 / Inter
378
- - Use: "Inactive", neutral metadata
379
-
380
- **Status Pill — Brand (Orange)**
381
- - Background: `#FDF3E7` · Text: `#C2670F`
382
- - Radius: 9999px · Padding: 2px 10px · Font: 12px / 600 / Inter
383
- - Use: "NEW", "Beta", plan emphasis
384
-
385
- **Loader / Spinner**
386
- - Brand `#F6821F` ring spinner (inline) or top progress bar; existing data stays visible on refresh
387
- - Use: In-button loading (label swaps for white spinner, width preserved), table refresh (kumo `loader`)
388
-
389
- **Empty State**
390
- - One line of `#36393A` body explaining the *why* + one orange-ghost or secondary action; no dashboard illustration
391
- - Use: "No DNS records yet. Add your first record." (kumo `empty`)
392
-
393
- ---
394
-
395
-
396
- **Tier 1 sources:** https://www.cloudflare.com (live production marketing site, verified via live DOM getComputedStyle); Cloudflare's public component library **kumo** (`github.com/cloudflare/kumo` — source TSX + `theme-kumo.css` design tokens), the legacy **cf-ui** styleguide (`cloudflare.github.io/cf-ui`), and the docs **Style Guide** (`developers.cloudflare.com/style-guide/components`). Component geometry (size scale, radius ladder, ring borders, dialog/toast/tooltip specs) is lifted from kumo source; the orange-led palette is grounded in the live marketing surface.
397
-
398
- ## 5. Layout Principles
399
-
400
- ### Spacing System
401
- - Base unit: 4px; primary rhythm on 8px.
402
- - Common values: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px.
403
- - Marketing sections: generous 64–96px vertical rhythm.
404
- - Dashboard panels: tighter 16–24px internal padding for density.
405
-
406
- ### Grid & Container
407
- - Marketing max-width: ~1200px, centered, 24px gutters.
408
- - Dashboard: persistent left nav (~240px) + fluid content area; tables go full-width within content.
409
- - 12-column responsive grid on marketing; flexible flex/stack layout in product.
410
-
411
- ### Whitespace Philosophy
412
- - **Whitespace earns trust.** Marketing pages breathe — one idea per band, large headline, supporting paragraph, single orange CTA.
413
- - **Density where work happens.** The dashboard trades whitespace for information: data tables, log streams, and config grids are intentionally dense because operators want facts per pixel.
414
- - **Orange is rationed.** A screen typically shows orange in exactly one or two places. Scarcity is what makes it read as "the action."
415
-
416
- ### Border Radius Scale
417
- - Tight (4px): pills' inner chips, small inline tags
418
- - Standard (6px): buttons, inputs, selects, code blocks
419
- - Comfortable (8px): cards, panels, toasts
420
- - Large (10–12px): modals, marketing feature cards
421
- - Pill (9999px): status badges, toggles, avatars
422
-
423
- ## 6. Depth & Elevation
424
-
425
- | Level | Treatment | Use |
426
- |-------|-----------|-----|
427
- | Flat (0) | No shadow, 1px `#EDEDED` border | Inline elements, table rows, bordered panels |
428
- | Subtle (1) | `0 1px 3px rgba(0,0,0,0.06)` | Standard dashboard cards |
429
- | Raised (2) | `0 4px 16px rgba(0,0,0,0.08)` | Marketing feature cards, hover lift |
430
- | Floating (3) | `0 8px 24px rgba(0,0,0,0.12)` | Dropdowns, popovers, tooltips |
431
- | Modal (4) | `0 12px 32px rgba(0,0,0,0.18)` | Dialogs, command palette |
432
-
433
- **Shadow Philosophy:** Cloudflare prefers **borders over shadows** for structure — a crisp 1px `#EDEDED` rule defines most surfaces, with soft neutral shadows reserved for genuinely floating layers. Shadows are pure-black low-opacity, never tinted. This keeps the dense dashboard legible: dozens of bordered panels read cleanly where dozens of shadowed cards would muddy. The brand's depth comes from clarity and alignment, not drop-shadow drama.
434
-
435
- ### Dark Mode Elevation
436
- - In dark mode, elevation is conveyed by **surface lightness**, not shadow: background `#15171A` → card `#262A2E` → popover `#2E3338`. Borders shift to `#3A3F44`.
437
-
438
- ## 7. Do's and Don'ts
439
-
440
- ### Do
441
- - Use Cloudflare Orange (`#F6821F`) for the primary CTA and key interactive accents — and almost nowhere else.
442
- - Set technical strings (IPs, DNS records, tokens, code) in JetBrains Mono / monospace.
443
- - Use status pills with green/red/yellow + a colored dot for health and proxy state.
444
- - Prefer 1px `#EDEDED` borders to define panels; keep shadows subtle and neutral.
445
- - Use warm near-black (`#1D1F20`) for headings, never pure `#000`.
446
- - Set headlines in Inter 700 with slightly negative letter-spacing.
447
- - Ship parity in dark mode for any product UI, keeping orange unchanged.
448
-
449
- ### Don't
450
- - Don't flood screens with orange — it loses its meaning the moment it decorates instead of directing.
451
- - Don't use blue as a primary brand color; blue is informational/secondary only (Cloudflare is deliberately not blue).
452
- - Don't put API keys, IPs, or DNS values in a proportional font.
453
- - Don't use heavy or colored drop shadows — borders and subtle neutral shadows only.
454
- - Don't use radii above 12px except pills and avatars.
455
- - Don't set body text in 700 — reserve bold for headings and emphasis.
456
- - Don't mix the logomark gradient orange (`#FAAD3F`) into UI text or buttons.
457
-
458
- ## 8. Responsive Behavior
459
-
460
- ### Breakpoints
461
- | Name | Width | Key Changes |
462
- |------|-------|-------------|
463
- | Mobile | <640px | Single column, stacked cards, hamburger nav, full-width buttons |
464
- | Tablet | 640–1024px | 2-column feature grids, collapsible dashboard side nav |
465
- | Desktop | 1024–1280px | Full marketing grid; dashboard left nav + content |
466
- | Wide | >1280px | Centered 1200px marketing container; dashboard tables expand |
467
-
468
- ### Touch Targets
469
- - Buttons: ≥40px tall (≥44px on mobile).
470
- - Table row actions: ≥40px tap height on touch.
471
- - Toggle/switch: ≥32px hit area.
472
-
473
- ### Collapsing Strategy
474
- - Dashboard left nav collapses to an icon rail, then to a drawer on mobile.
475
- - Wide data tables become horizontally scrollable or collapse to stacked key-value cards on small screens.
476
- - Marketing multi-column feature bands stack to single column; CTAs go full-width.
477
-
478
- ### Image / Asset Behavior
479
- - Product/partner logos render in a consistent grayscale-or-mono treatment in logo walls.
480
- - Analytics charts are full-width and responsive, maintaining aspect ratio.
481
- - The orange cloud logomark scales but never recolors.
482
-
483
- ## 9. Agent Prompt Guide
484
-
485
- ### Quick Color Reference
486
- - Primary CTA: Cloudflare Orange (`#F6821F`)
487
- - CTA Hover: Dark Orange (`#E2700B`)
488
- - Background: White (`#FFFFFF`) / Off-white (`#F7F7F7`)
489
- - Heading text: Charcoal (`#1D1F20`)
490
- - Body text: Body Charcoal (`#36393A`)
491
- - Muted text: Grey (`#717174`)
492
- - Placeholder: (`#999999`)
493
- - Border: Grey 200 (`#EDEDED`) / Grey 300 (`#D9D9D9`)
494
- - Success: Green (`#2FB344`)
495
- - Error: Red (`#BD2528`)
496
- - Warning: Yellow (`#F6C549`)
497
- - Info: Blue (`#2C7CB0`)
498
- - Dark surface: (`#262A2E`) on (`#15171A`)
499
-
500
- ### Example Component Prompts
501
- - "Create a primary button: `#F6821F` bg, white text 14px weight 600 Inter, 40px tall, 6px radius, 0 20px padding. Hover `#E2700B`. Focus ring `0 0 0 3px rgba(246,130,31,0.2)`."
502
- - "Build a DNS record row: white bg, 1px `#EDEDED` bottom border. Type pill (grey), name + value in 13px JetBrains Mono `#36393A`, proxy toggle (`#F6821F` on / `#D9D9D9` off), status pill 'Proxied' green `#E8F5D8`/`#3D6B14`."
503
- - "Design a stat card: white bg, 1px `#EDEDED` border, 8px radius, 20px padding. Big number 32px weight 700 `#1D1F20`, uppercase label 12px weight 600 `#717174` with `0.04em` tracking."
504
- - "Create a marketing hero: white bg, headline 56px weight 700 Inter `#1D1F20` tracking `-0.02em`, subhead 18px `#36393A`, single orange CTA `#F6821F` 48px tall 6px radius."
505
- - "Build a status pill: fully rounded, 12px weight 600 Inter, 2px 10px padding. Success green `#E8F5D8`/`#3D6B14`; error `#FBE2E2`/`#BD2528`; pending `#FCF3D6`/`#8A6D1B`."
506
-
507
- ### Iteration Guide
508
- 1. Use Inter with a system-ui fallback for all UI text; JetBrains Mono for any technical string.
509
- 2. Orange (`#F6821F`) appears only on primary actions and key accents — ration it deliberately.
510
- 3. Headings are warm charcoal `#1D1F20`, body `#36393A` — never pure black.
511
- 4. Define surfaces with 1px `#EDEDED` borders first; add subtle neutral shadow only for floating layers.
512
- 5. Radii: 6px buttons/inputs, 8px cards, 10–12px modals, pill for badges/toggles.
513
- 6. Status uses colored pills + dots (green/red/yellow); blue is informational only, never primary.
514
- 7. Provide a dark-mode mapping (`#15171A` bg, `#262A2E` surface, `#E4E6E7` text) with orange unchanged.
515
-
516
- ---
517
-
518
- ## 10. Voice & Tone
519
-
520
- Cloudflare's voice is **technical but human** — confident, plain-spoken, and quietly witty. It explains hard infrastructure to a broad audience (a solo developer on the free plan and a Fortune 100 security team) without dumbing it down or drowning it in jargon. The famous mission line — *"to help build a better Internet"* — sets the register: ambitious, optimistic, capital-I "Internet." Marketing copy is benefit-led and concrete; the blog (a beloved engineering channel) goes deep with precision and personality. Sentences are direct. Claims are specific and measurable.
521
-
522
- | Context | Tone |
523
- |---|---|
524
- | CTAs | Short imperative verb phrases — "Get started", "Add a site", "Sign up", "Talk to an expert". |
525
- | Headlines | Confident, benefit-first, plain — "Make employees, applications and networks faster and more secure." |
526
- | Product UI labels | Precise, technical, unambiguous — "Proxied", "DNS only", "Always Use HTTPS". |
527
- | Success messages | Past-tense, specific — "DNS record added", "SSL certificate issued". |
528
- | Error messages | Specific, blameless, actionable — name what failed and what to do next. |
529
- | Blog / docs | Deep, candid, occasionally playful; explains the *why* behind the engineering. |
530
- | Empty states | One line of why + one action — "No DNS records yet. Add your first record." |
531
-
532
- **Forbidden moves.** Vague enterprise filler ("synergy", "best-in-class") without substance; fear-mongering security FUD; over-promising 100% guarantees; burying the user in acronyms without a first-use expansion.
533
-
534
- ## 11. Brand Narrative
535
-
536
- Cloudflare was founded in **2009** by **Matthew Prince, Lee Holloway, and Michelle Zatlyn**, growing out of Project Honey Pot — a system for tracking online attackers. The founding insight: the tools that protect and accelerate the internet were locked behind enterprise price tags, available only to the largest companies. Cloudflare's thesis was to **democratize** that infrastructure — give the same DDoS protection, CDN, and DNS that a bank uses to a hobbyist's blog, much of it free. The mission, repeated everywhere, is *"to help build a better Internet."*
537
-
538
- That populist, pro-developer DNA explains the design. In a category dominated by navy-blue, suit-and-tie enterprise security branding, Cloudflare chose **warm orange** — friendly, energetic, human — to signal that powerful infrastructure could be approachable. The orange cloud logomark, built from a warm orange-to-yellow gradient, is both literal (a cloud) and emotional (warmth in a cold category). The generous whitespace and clean Inter typography say "this is easy"; the dense, monospace-heavy dashboard says "this is serious engineering." Both are true at once.
539
-
540
- Cloudflare went public on the NYSE in **2019 (ticker NET)** and has grown into a "connectivity cloud" — CDN, DNS (1.1.1.1), Zero Trust, Workers edge compute, R2 storage, and AI inference at the edge. The design system scaled with it: a published color system ("Color by Cloudflare Design"), the open-source cf-ui component library, a comprehensive style guide, and a fully-realized dashboard dark mode. Through every expansion the orange has stayed fixed — the one constant that makes a sprawling platform feel like a single, recognizable brand.
541
-
542
- What Cloudflare refuses: the cold blue of incumbent security and cloud vendors, the fear-based marketing of the security industry, and gratuitous visual ornament. It occupies a deliberate middle — technically credible yet warm, massive in scale yet approachable in tone.
543
-
544
- ## 12. Principles
545
-
546
- 1. **Orange is the action.** `#F6821F` marks where the user should look and click. It is rationed to one or two places per screen. When orange decorates instead of directs, it has been misused.
547
- 2. **Borders before shadows.** Structure comes from crisp 1px neutral rules and alignment. Shadows are reserved for genuinely floating layers. A dense dashboard stays legible because surfaces are outlined, not stacked in soft elevation.
548
- 3. **Monospace for truth.** Anything an operator must read exactly — IPs, DNS records, tokens, code — is monospace. Proportional fonts are for prose, not infrastructure.
549
- 4. **Whitespace where you sell, density where you work.** Marketing breathes; the dashboard packs. Both are intentional, neither apologizes.
550
- 5. **Warm, not cold.** Near-black is warm charcoal, the accent is warm orange. Cloudflare deliberately rejects the cold blue of its category — humanity is a design requirement.
551
- 6. **Plain words, precise claims.** Copy is direct and benefit-led; technical labels are exact. No jargon for its own sake, no vague enterprise filler.
552
- 7. **Parity in dark.** Product UI must work in light and dark with equal polish. Orange holds in both; surfaces shift, the brand doesn't.
553
- 8. **Powerful but approachable.** Every screen must feel usable by a solo developer and trustworthy to an enterprise team simultaneously. That tension is the brand.
554
-
555
- ## 13. Personas
556
-
557
- *Personas below are fictional archetypes informed by publicly described Cloudflare user segments, not individual people.*
558
-
559
- **Devin, 29, Austin.** Full-stack developer at a Series-B startup. Runs the company's marketing site and a handful of side projects through Cloudflare's free and Pro plans. Lives in the DNS and Workers sections of the dashboard. Wants the proxy toggle and DNS record table to be instant and unambiguous; copies API tokens and IPs constantly and is annoyed when they aren't in a monospace, click-to-copy field. Reads the Cloudflare blog for fun. Picked Cloudflare partly because the free tier let him do real things without a sales call.
560
-
561
- **Priya, 41, London.** Security engineer at a mid-market fintech. Manages WAF rules, Zero Trust access policies, and bot mitigation across dozens of zones. Spends her day in dense data tables and log streams; values information density over whitespace and wants status (Proxied / Blocked / Down) legible at a glance via colored pills. Distrusts marketing fluff — judges the product by the precision of its labels and the speed of its analytics. Dark mode all day.
562
-
563
- **Marcus, 52, Chicago.** VP of Infrastructure evaluating Cloudflare for an enterprise migration. Lands first on the marketing site, where the calm whitespace, confident headlines, and single orange CTA signal a mature, trustworthy vendor. Clicks "Talk to an expert." Cares that the brand reads as serious engineering *and* approachable enough that his whole team will actually adopt it. The warmth of the orange is, to him, a subtle promise that this won't feel like legacy enterprise software.
564
-
565
- ## 14. States
566
-
567
- | State | Treatment |
568
- |---|---|
569
- | **Empty (first use)** | One line of `#36393A` body explaining the *why* ("No DNS records yet.") plus one orange-ghost or secondary action ("Add a record"). No illustration in the dashboard; marketing may use a light spot graphic. |
570
- | **Empty (filtered)** | Single `#717174` caption ("No records match your filter.") with a "Clear filter" text button. |
571
- | **Loading (first paint)** | Skeleton blocks at `#EDEDED` (light) / `#2A2E33` (dark) matching final layout. Metric values show `—` until resolved. |
572
- | **Loading (refresh)** | Inline orange spinner or top progress bar; existing data stays visible, never blanked. |
573
- | **Error (inline field)** | 1px `#BD2528` border, helper text below in `#BD2528` 12px, one actionable sentence ("Enter a valid IPv4 address."). |
574
- | **Error (toast)** | `#1D1F20` bg, white text, 4px red left-border, 4–5s auto-dismiss, one sentence. |
575
- | **Error (page-level)** | Centered message in `#1D1F20` 16px/600 + cause + retry button in orange. Reserved for outage/permission failures. |
576
- | **Success (toast)** | `#1D1F20` bg, white text, 4px green left-border ("Record added."). |
577
- | **Status: healthy** | Green pill + dot — "Active" / "Proxied" / "Healthy". |
578
- | **Status: degraded/paused** | Yellow pill — "Pending" / "DNS only" / "Paused". |
579
- | **Status: down/blocked** | Red pill — "Down" / "Blocked" / "Error". |
580
- | **Disabled** | Control at 40–50% opacity; orange buttons keep hue but drop opacity; geometry unchanged. |
581
- | **Focus** | 3px orange focus ring `rgba(246,130,31,0.2)` on inputs/buttons — visible for keyboard nav. |
582
- | **Loading inside button** | Label swapped for a small white spinner; button width preserved; press committed, no double-submit. |
583
-
584
- ## 15. Motion & Easing
585
-
586
- **Durations** (named, not raw ms):
587
-
588
- | Token | Value | Use |
589
- |---|---|---|
590
- | `motion-instant` | 0ms | Toggle flips, checkbox state |
591
- | `motion-fast` | 120ms | Hover, focus ring, button press |
592
- | `motion-standard` | 200ms | Dropdowns, tab switches, accordion expand |
593
- | `motion-emphasis` | 300ms | Modal open, sheet, toast enter |
594
- | `motion-page` | 350ms | Route/section transitions |
595
-
596
- **Easings:**
597
-
598
- | Token | Curve | Use |
599
- |---|---|---|
600
- | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Appearing — modals, toasts, popovers |
601
- | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Leaving — dismissals, collapses |
602
- | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way — tabs, accordions, hover lift |
603
- | `ease-out-soft` | `cubic-bezier(0.16, 1, 0.3, 1)` | Emphasized marketing reveals on scroll |
604
-
605
- **Signature motions.**
606
-
607
- 1. **Hover lift.** Marketing feature cards rise ~2px and deepen shadow (`motion-fast / ease-standard`) on hover — a light, responsive cue that the surface is interactive.
608
- 2. **Orange focus ring.** On keyboard focus, the 3px `rgba(246,130,31,0.2)` ring fades in over `motion-fast`. Accessibility-first; never suppressed for aesthetics.
609
- 3. **Toast slide-in.** Toasts enter from the top-right (or bottom) translating ~16px with `motion-emphasis / ease-enter`, exit via `motion-fast / ease-exit` — leaving is quicker than arriving.
610
- 4. **Status transitions.** When a zone flips state (Pending → Active), the pill cross-fades color over `motion-standard`; never a hard swap, so operators perceive the change.
611
- 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all tokens collapse to `motion-instant`; slides become fades; the dashboard stays fully usable.
612
-
613
- <!--
614
- OmD v0.1 Sources — Cloudflare
615
-
616
- Token grounding:
617
- - Cloudflare Orange #F6821F is the documented primary brand color (hint + widely
618
- published brand-color references: brandcolors.net/b/cloudflare, brandpalettes.com,
619
- schemecolor.com). Logomark gradient #F6821F → #FAAD3F (#F48120 alt).
620
- - Typography: Inter with system-ui fallback; JetBrains/mono for technical strings —
621
- grounded in Cloudflare design-system docs (developers.cloudflare.com design-system,
622
- cloudflare.github.io/cf-ui, color.cloudflare.design "Color by Cloudflare Design").
623
- - Dark mode: confirmed shipped (blog.cloudflare.com/dark-mode).
624
- - Founders/history (Prince, Holloway, Zatlyn, 2009; NYSE NET 2019; mission
625
- "help build a better Internet") are widely documented public facts.
626
-
627
- Web research (2026-06-06): WebSearch results for Cloudflare brand color / design
628
- system / typography. color.cloudflare.design and cloudflare.com WebFetch were
629
- unreachable at write time (ECONNREFUSED / classifier unavailable); token values
630
- above are reconciled from multiple public brand-color references and the hint.
631
-
632
- Neutral/grey, semantic, and dark-mode hex values, component geometry (radii,
633
- padding, shadow tokens), motion tokens, and personas are interpretive
634
- reconstructions consistent with Cloudflare's observed marketing site and
635
- dashboard, not verbatim from a single published spec. Personas are fictional
636
- archetypes informed by publicly described Cloudflare user segments.
637
- -->