codymaster 4.1.4 → 4.4.1

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 (662) hide show
  1. package/CHANGELOG.md +22 -2
  2. package/README.md +56 -86
  3. package/dist/index.js +130 -16
  4. package/dist/ui/box.js +2 -2
  5. package/dist/ui/onboarding.js +11 -5
  6. package/install.sh +317 -35
  7. package/package.json +8 -8
  8. package/public/dashboard/app.js +1270 -0
  9. package/public/dashboard/index.html +218 -0
  10. package/public/dashboard/style.css +440 -0
  11. package/skills/AGENTS.md +61 -0
  12. package/skills/CLAUDE.md +158 -0
  13. package/skills/boxme-git-config/SKILL.md +56 -0
  14. package/skills/boxme-local-dev/SKILL.md +66 -0
  15. package/skills/build.sh +30 -0
  16. package/skills/cf +314 -0
  17. package/skills/cf 2 +313 -0
  18. package/skills/cm-ads-tracker/SKILL.md +364 -69
  19. package/skills/cm-auto-publisher/SKILL.md +81 -0
  20. package/skills/cm-booking-calendar/SKILL.md +521 -0
  21. package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
  22. package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
  23. package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
  24. package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
  25. package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
  26. package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
  27. package/skills/cm-brainstorm-idea/SKILL.md +15 -24
  28. package/skills/cm-clean-code/SKILL.md +300 -0
  29. package/skills/cm-code-review/SKILL.md +0 -27
  30. package/skills/cm-codeintell/SKILL.md +598 -0
  31. package/skills/cm-content-factory/.content-factory-state.json +132 -0
  32. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
  33. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
  34. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  35. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  36. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  37. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  38. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  39. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  40. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  41. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  42. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  43. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  44. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  45. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  46. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  47. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  48. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  49. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  50. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  51. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  52. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  53. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  54. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  55. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  56. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  57. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  58. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  59. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  60. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  61. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  62. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  63. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  64. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  65. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  66. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  67. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  68. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  69. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  70. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  71. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  72. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  73. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  74. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  75. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  76. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  77. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
  78. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  79. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  80. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  81. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  82. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  83. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  84. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  85. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  86. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  87. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  88. package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
  89. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
  90. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
  91. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
  92. package/skills/cm-content-factory/AGENTS.md +61 -0
  93. package/skills/cm-content-factory/CLAUDE.md +63 -0
  94. package/skills/cm-content-factory/CURSOR.md +43 -0
  95. package/skills/cm-content-factory/Content Factory.zip +0 -0
  96. package/skills/cm-content-factory/cf +313 -0
  97. package/skills/cm-content-factory/config.schema.json +397 -0
  98. package/skills/cm-content-factory/dashboard/app.js +556 -0
  99. package/skills/cm-content-factory/dashboard/index.html +397 -0
  100. package/skills/cm-content-factory/dashboard/style.css +1211 -0
  101. package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
  102. package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
  103. package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
  104. package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
  105. package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
  106. package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
  107. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
  108. package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
  109. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
  110. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
  111. package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
  112. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
  113. package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
  114. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
  115. package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
  116. package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
  117. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
  118. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
  119. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
  120. package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
  121. package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
  122. package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
  123. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
  124. package/skills/cm-content-factory/extensions/hooks.py +126 -0
  125. package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
  126. package/skills/cm-content-factory/landing/index.html +680 -0
  127. package/skills/cm-content-factory/landing/script.js +101 -0
  128. package/skills/cm-content-factory/landing/style.css +1216 -0
  129. package/skills/cm-content-factory/landing/translations.js +508 -0
  130. package/skills/cm-content-factory/logs/events.jsonl +11 -0
  131. package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
  132. package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
  133. package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
  134. package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
  135. package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
  136. package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
  137. package/skills/cm-content-factory/scripts/audit.py +106 -0
  138. package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
  139. package/skills/cm-content-factory/scripts/deploy.py +146 -0
  140. package/skills/cm-content-factory/scripts/extract.py +132 -0
  141. package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
  142. package/skills/cm-content-factory/scripts/memory.py +521 -0
  143. package/skills/cm-content-factory/scripts/monetize.py +239 -0
  144. package/skills/cm-content-factory/scripts/pipeline.py +357 -0
  145. package/skills/cm-content-factory/scripts/plan.py +163 -0
  146. package/skills/cm-content-factory/scripts/publish.py +145 -0
  147. package/skills/cm-content-factory/scripts/research.py +337 -0
  148. package/skills/cm-content-factory/scripts/scaffold.py +464 -0
  149. package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
  150. package/skills/cm-content-factory/scripts/seo.py +90 -0
  151. package/skills/cm-content-factory/scripts/state_manager.py +320 -0
  152. package/skills/cm-content-factory/scripts/token_manager.py +268 -0
  153. package/skills/cm-content-factory/scripts/validate.py +221 -0
  154. package/skills/cm-content-factory/scripts/wizard.py +329 -0
  155. package/skills/cm-content-factory/scripts/write.py +93 -0
  156. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  157. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
  158. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
  159. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
  160. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
  161. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
  162. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
  163. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
  164. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
  165. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
  166. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
  167. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
  168. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
  169. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
  170. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
  171. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
  172. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
  173. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
  174. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
  175. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
  176. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
  177. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
  178. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
  179. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
  180. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
  181. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
  182. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
  183. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
  184. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
  185. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
  186. package/skills/cm-content-factory/tests/conftest.py +66 -0
  187. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
  188. package/skills/cm-content-factory/tests/test_memory.py +128 -0
  189. package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
  190. package/skills/cm-content-factory/tests/test_research.py +56 -0
  191. package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
  192. package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
  193. package/skills/cm-content-factory/tests/test_wizard.py +121 -0
  194. package/skills/cm-continuity/SKILL.md +7 -0
  195. package/skills/cm-cro-methodology/SKILL.md +290 -0
  196. package/skills/cm-dashboard/SKILL.md +7 -525
  197. package/skills/cm-debugging/SKILL.md +7 -116
  198. package/skills/cm-deep-search/SKILL.md +5 -1
  199. package/skills/cm-dockit/README.md +6 -15
  200. package/skills/cm-dockit/SKILL.md +20 -37
  201. package/skills/cm-execution/SKILL.md +6 -1
  202. package/skills/cm-frappe-agent/SKILL.md +134 -0
  203. package/skills/cm-frappe-agent/agents/doctype-architect.md +596 -0
  204. package/skills/cm-frappe-agent/agents/erpnext-customizer.md +643 -0
  205. package/skills/cm-frappe-agent/agents/frappe-backend.md +814 -0
  206. package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +557 -0
  207. package/skills/cm-frappe-agent/agents/frappe-debugger.md +625 -0
  208. package/skills/cm-frappe-agent/agents/frappe-fixer.md +275 -0
  209. package/skills/cm-frappe-agent/agents/frappe-frontend.md +660 -0
  210. package/skills/cm-frappe-agent/agents/frappe-installer.md +158 -0
  211. package/skills/cm-frappe-agent/agents/frappe-performance.md +307 -0
  212. package/skills/cm-frappe-agent/agents/frappe-planner.md +419 -0
  213. package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +153 -0
  214. package/skills/cm-frappe-agent/agents/github-workflow.md +286 -0
  215. package/skills/cm-frappe-agent/commands/frappe-app.md +351 -0
  216. package/skills/cm-frappe-agent/commands/frappe-backend.md +162 -0
  217. package/skills/cm-frappe-agent/commands/frappe-bench.md +254 -0
  218. package/skills/cm-frappe-agent/commands/frappe-debug.md +263 -0
  219. package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +272 -0
  220. package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +310 -0
  221. package/skills/cm-frappe-agent/commands/frappe-erpnext.md +210 -0
  222. package/skills/cm-frappe-agent/commands/frappe-fix.md +59 -0
  223. package/skills/cm-frappe-agent/commands/frappe-frontend.md +210 -0
  224. package/skills/cm-frappe-agent/commands/frappe-fullstack.md +243 -0
  225. package/skills/cm-frappe-agent/commands/frappe-github.md +57 -0
  226. package/skills/cm-frappe-agent/commands/frappe-install.md +52 -0
  227. package/skills/cm-frappe-agent/commands/frappe-plan.md +442 -0
  228. package/skills/cm-frappe-agent/commands/frappe-remote.md +58 -0
  229. package/skills/cm-frappe-agent/commands/frappe-test.md +356 -0
  230. package/skills/cm-frappe-agent/docs/README.md +51 -0
  231. package/skills/cm-frappe-agent/docs/agents-catalog.md +113 -0
  232. package/skills/cm-frappe-agent/docs/architecture.md +149 -0
  233. package/skills/cm-frappe-agent/docs/commands-catalog.md +82 -0
  234. package/skills/cm-frappe-agent/docs/resources-catalog.md +66 -0
  235. package/skills/cm-frappe-agent/docs/sitemap-urls.txt +52 -0
  236. package/skills/cm-frappe-agent/docs/sitemap.md +81 -0
  237. package/skills/cm-frappe-agent/docs/sop/user-guide.md +178 -0
  238. package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +122 -0
  239. package/skills/cm-frappe-agent/resources/7-layer-architecture.md +985 -0
  240. package/skills/cm-frappe-agent/resources/bench_commands.md +73 -0
  241. package/skills/cm-frappe-agent/resources/code-patterns-guide.md +948 -0
  242. package/skills/cm-frappe-agent/resources/common_pitfalls.md +266 -0
  243. package/skills/cm-frappe-agent/resources/doctype-registry.md +158 -0
  244. package/skills/cm-frappe-agent/resources/installation-guide.md +289 -0
  245. package/skills/cm-frappe-agent/resources/rest-api-patterns.md +182 -0
  246. package/skills/cm-frappe-agent/resources/scaffold_checklist.md +82 -0
  247. package/skills/cm-frappe-agent/resources/upgrade_patterns.md +113 -0
  248. package/skills/cm-frappe-agent/resources/web-form-patterns.md +252 -0
  249. package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +621 -0
  250. package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +642 -0
  251. package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +576 -0
  252. package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +740 -0
  253. package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +47 -0
  254. package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +608 -0
  255. package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +46 -0
  256. package/skills/cm-git-worktrees/SKILL.md +0 -7
  257. package/skills/cm-google-form/SKILL.md +266 -0
  258. package/skills/cm-google-form/templates/apps-script.js +55 -0
  259. package/skills/cm-google-form/templates/form-markup.html +110 -0
  260. package/skills/cm-google-form/templates/form-submit.js +201 -0
  261. package/skills/cm-google-form/templates/toast.css +152 -0
  262. package/skills/cm-growth-hacking/SKILL.md +293 -0
  263. package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
  264. package/skills/cm-growth-hacking/calendar-integration.md +264 -0
  265. package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
  266. package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
  267. package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
  268. package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
  269. package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
  270. package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
  271. package/skills/cm-growth-hacking/tracking-events.md +246 -0
  272. package/skills/cm-growth-hacking/trigger-system.md +342 -0
  273. package/skills/cm-how-it-work/SKILL.md +20 -4
  274. package/skills/cm-identity-guard/SKILL.md +0 -11
  275. package/skills/cm-jtbd/SKILL.md +1 -1
  276. package/skills/cm-notebooklm/SKILL.md +172 -0
  277. package/skills/cm-notebooklm/references/command_reference.md +94 -0
  278. package/skills/cm-notebooklm/references/workflows.md +60 -0
  279. package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
  280. package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
  281. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
  282. package/skills/cm-planning/SKILL.md +39 -52
  283. package/skills/cm-project-bootstrap/SKILL.md +1308 -99
  284. package/skills/cm-quality-gate/SKILL.md +13 -106
  285. package/skills/cm-reactor/SKILL.md +274 -0
  286. package/skills/cm-safe-deploy/SKILL.md +415 -52
  287. package/skills/cm-safe-i18n/SKILL.md +1 -22
  288. package/skills/cm-secret-shield/SKILL.md +2 -2
  289. package/skills/cm-security-gate/SKILL.md +114 -0
  290. package/skills/cm-skill-chain/SKILL.md +2 -2
  291. package/skills/cm-skill-index/SKILL.md +9 -6
  292. package/skills/cm-skill-mastery/SKILL.md +2 -15
  293. package/skills/cm-start/SKILL.md +9 -0
  294. package/skills/cm-tdd/SKILL.md +16 -49
  295. package/skills/cm-ui-preview/SKILL.md +35 -173
  296. package/skills/cm-ux-master/FEATURES-v4.md +305 -0
  297. package/skills/cm-ux-master/README-ru.md +135 -0
  298. package/skills/cm-ux-master/README-vi.md +135 -0
  299. package/skills/cm-ux-master/README-zh.md +135 -0
  300. package/skills/cm-ux-master/README.md +489 -0
  301. package/skills/cm-ux-master/SKILL.md +773 -62
  302. package/skills/cm-ux-master/cli/README.md +180 -0
  303. package/skills/cm-ux-master/cli/pyproject.toml +106 -0
  304. package/skills/cm-ux-master/cli/requirements.txt +21 -0
  305. package/skills/cm-ux-master/cli/templates/base/skill-core.md +262 -0
  306. package/skills/cm-ux-master/cli/templates/platforms/claude.yaml +21 -0
  307. package/skills/cm-ux-master/cli/templates/platforms/cursor.yaml +21 -0
  308. package/skills/cm-ux-master/cli/templates/platforms/figma.yaml +24 -0
  309. package/skills/cm-ux-master/cli/templates/platforms/vscode-mcp.yaml +28 -0
  310. package/skills/cm-ux-master/cli/templates/platforms/windsurf.yaml +21 -0
  311. package/skills/cm-ux-master/cli/uxmaster/__init__.py +10 -0
  312. package/skills/cm-ux-master/cli/uxmaster/__main__.py +19 -0
  313. package/skills/cm-ux-master/cli/uxmaster/cli.py +349 -0
  314. package/skills/cm-ux-master/cli/uxmaster/commands/__init__.py +8 -0
  315. package/skills/cm-ux-master/cli/uxmaster/commands/extract.py +18 -0
  316. package/skills/cm-ux-master/cli/uxmaster/commands/init.py +58 -0
  317. package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +194 -0
  318. package/skills/cm-ux-master/cli/uxmaster/commands/search.py +23 -0
  319. package/skills/cm-ux-master/cli/uxmaster/commands/validate.py +270 -0
  320. package/skills/cm-ux-master/cli/uxmaster/search_engine.py +532 -0
  321. package/skills/cm-ux-master/cli/uxmaster/template_engine.py +458 -0
  322. package/skills/cm-ux-master/cli/uxmaster/utils/__init__.py +9 -0
  323. package/skills/cm-ux-master/cli/uxmaster/utils/console.py +42 -0
  324. package/skills/cm-ux-master/cli/uxmaster/utils/detect.py +83 -0
  325. package/skills/cm-ux-master/data/accessibility-advanced.csv +26 -0
  326. package/skills/cm-ux-master/data/animation.csv +31 -0
  327. package/skills/cm-ux-master/data/charts.csv +26 -0
  328. package/skills/cm-ux-master/data/colors.csv +97 -0
  329. package/skills/cm-ux-master/data/design-tests.csv +37 -0
  330. package/skills/cm-ux-master/data/devices.csv +21 -0
  331. package/skills/cm-ux-master/data/icons.csv +101 -0
  332. package/skills/cm-ux-master/data/landing.csv +31 -0
  333. package/skills/cm-ux-master/data/products.csv +97 -0
  334. package/skills/cm-ux-master/data/react-performance.csv +45 -0
  335. package/skills/cm-ux-master/data/responsive.csv +26 -0
  336. package/skills/cm-ux-master/data/semi-tokens.csv +52 -0
  337. package/skills/cm-ux-master/data/stacks/angular.csv +34 -0
  338. package/skills/cm-ux-master/data/stacks/astro.csv +54 -0
  339. package/skills/cm-ux-master/data/stacks/electron.csv +32 -0
  340. package/skills/cm-ux-master/data/stacks/flutter.csv +53 -0
  341. package/skills/cm-ux-master/data/stacks/html-tailwind.csv +56 -0
  342. package/skills/cm-ux-master/data/stacks/htmx.csv +28 -0
  343. package/skills/cm-ux-master/data/stacks/jetpack-compose.csv +53 -0
  344. package/skills/cm-ux-master/data/stacks/nextjs.csv +53 -0
  345. package/skills/cm-ux-master/data/stacks/nuxt-ui.csv +51 -0
  346. package/skills/cm-ux-master/data/stacks/nuxtjs.csv +59 -0
  347. package/skills/cm-ux-master/data/stacks/react-native.csv +52 -0
  348. package/skills/cm-ux-master/data/stacks/react.csv +54 -0
  349. package/skills/cm-ux-master/data/stacks/shadcn.csv +61 -0
  350. package/skills/cm-ux-master/data/stacks/svelte.csv +54 -0
  351. package/skills/cm-ux-master/data/stacks/swiftui.csv +51 -0
  352. package/skills/cm-ux-master/data/stacks/tauri.csv +29 -0
  353. package/skills/cm-ux-master/data/stacks/vue.csv +50 -0
  354. package/skills/cm-ux-master/data/styles.csv +68 -0
  355. package/skills/cm-ux-master/data/typography.csv +58 -0
  356. package/skills/cm-ux-master/data/ui-reasoning.csv +101 -0
  357. package/skills/cm-ux-master/data/ux-guidelines.csv +100 -0
  358. package/skills/cm-ux-master/data/ux-laws.csv +49 -0
  359. package/skills/cm-ux-master/data/web-interface.csv +31 -0
  360. package/skills/cm-ux-master/docs/LANDING-PAGE.html +377 -0
  361. package/skills/cm-ux-master/docs/README.md +108 -0
  362. package/skills/cm-ux-master/docs/css/styles.css +573 -0
  363. package/skills/cm-ux-master/docs/examples/demo-script.md +319 -0
  364. package/skills/cm-ux-master/docs/guides/for-designers.md +692 -0
  365. package/skills/cm-ux-master/docs/guides/for-developers.md +778 -0
  366. package/skills/cm-ux-master/docs/guides/for-product-managers.md +693 -0
  367. package/skills/cm-ux-master/docs/guides/react-guide-vi.md +50 -0
  368. package/skills/cm-ux-master/docs/index.html +1062 -0
  369. package/skills/cm-ux-master/docs/js/i18n.js +84 -0
  370. package/skills/cm-ux-master/docs/js/lang/de.js +145 -0
  371. package/skills/cm-ux-master/docs/js/lang/en.js +145 -0
  372. package/skills/cm-ux-master/docs/js/lang/fr.js +145 -0
  373. package/skills/cm-ux-master/docs/js/lang/hi.js +145 -0
  374. package/skills/cm-ux-master/docs/js/lang/id.js +145 -0
  375. package/skills/cm-ux-master/docs/js/lang/ja.js +145 -0
  376. package/skills/cm-ux-master/docs/js/lang/ko.js +145 -0
  377. package/skills/cm-ux-master/docs/js/lang/ru.js +145 -0
  378. package/skills/cm-ux-master/docs/js/lang/vi.js +145 -0
  379. package/skills/cm-ux-master/docs/js/lang/zh.js +145 -0
  380. package/skills/cm-ux-master/docs/js/main.js +117 -0
  381. package/skills/cm-ux-master/docs/plan/PHASE1-COMPLETION.md +217 -0
  382. package/skills/cm-ux-master/docs/plan/PHASE2-COMPLETION.md +199 -0
  383. package/skills/cm-ux-master/docs/plan/PHASE2-ENHANCED-COMPLETION.md +352 -0
  384. package/skills/cm-ux-master/docs/plan/PHASE3-VALIDATION-COMPLETION.md +499 -0
  385. package/skills/cm-ux-master/docs/plan/PHASE4-TESTING-POLISH-COMPLETION.md +483 -0
  386. package/skills/cm-ux-master/docs/plan/UXM-2.0-ROADMAP.md +681 -0
  387. package/skills/cm-ux-master/docs/plan/WOW-PITCH.md +410 -0
  388. package/skills/cm-ux-master/docs/technical/api-reference.md +824 -0
  389. package/skills/cm-ux-master/docs/technical/harvester-v4.md +328 -0
  390. package/skills/cm-ux-master/docs/technical/how-it-works.md +1128 -0
  391. package/skills/cm-ux-master/docs/tutorials/quickstart.md +339 -0
  392. package/skills/cm-ux-master/docs/tutorials/tutorials.md +939 -0
  393. package/skills/cm-ux-master/docs/tutorials/user-guide.md +716 -0
  394. package/skills/cm-ux-master/examples/README.md +63 -0
  395. package/skills/cm-ux-master/mcp/__init__.py +3 -0
  396. package/skills/cm-ux-master/mcp/integrations/__init__.py +11 -0
  397. package/skills/cm-ux-master/mcp/integrations/figma/__init__.py +6 -0
  398. package/skills/cm-ux-master/mcp/integrations/figma/client.py +293 -0
  399. package/skills/cm-ux-master/mcp/integrations/figma/plugin/code.js +561 -0
  400. package/skills/cm-ux-master/mcp/integrations/figma/plugin/ui.html +334 -0
  401. package/skills/cm-ux-master/mcp/integrations/stitch/__init__.py +5 -0
  402. package/skills/cm-ux-master/mcp/integrations/stitch/client.py +410 -0
  403. package/skills/cm-ux-master/mcp/integrations/vscode/package.json +167 -0
  404. package/skills/cm-ux-master/mcp/integrations/vscode/src/extension.ts +81 -0
  405. package/skills/cm-ux-master/mcp/mcp-config.json +274 -0
  406. package/skills/cm-ux-master/mcp/server.py +771 -0
  407. package/skills/cm-ux-master/mcp/tools/__init__.py +13 -0
  408. package/skills/cm-ux-master/mcp-server/server.py +595 -0
  409. package/skills/cm-ux-master/output/fila/FilaDashboard.tsx +47 -0
  410. package/skills/cm-ux-master/output/fila/components/badge/component.tsx +35 -0
  411. package/skills/cm-ux-master/output/fila/components/badge/index.ts +1 -0
  412. package/skills/cm-ux-master/output/fila/components/button/component.tsx +53 -0
  413. package/skills/cm-ux-master/output/fila/components/button/index.ts +1 -0
  414. package/skills/cm-ux-master/output/fila/components/card/component.tsx +35 -0
  415. package/skills/cm-ux-master/output/fila/components/card/index.ts +1 -0
  416. package/skills/cm-ux-master/output/fila/components/input/component.tsx +41 -0
  417. package/skills/cm-ux-master/output/fila/components/input/index.ts +1 -0
  418. package/skills/cm-ux-master/output/fila/design-system.css +151 -0
  419. package/skills/cm-ux-master/output/fila/design-system.html +1596 -0
  420. package/skills/cm-ux-master/output/fila/design-system.json +168 -0
  421. package/skills/cm-ux-master/output/fila/figma-tokens.json +523 -0
  422. package/skills/cm-ux-master/output/fila/harvest-v4-raw.json +406 -0
  423. package/skills/cm-ux-master/output/fila/semi-theme-override.css +95 -0
  424. package/skills/cm-ux-master/output/haravan/HaravanDashboard.tsx +103 -0
  425. package/skills/cm-ux-master/output/haravan/design-system-v3-live.html +2716 -0
  426. package/skills/cm-ux-master/output/haravan/design-system-v3.html +1770 -0
  427. package/skills/cm-ux-master/output/haravan/design-system.html +914 -0
  428. package/skills/cm-ux-master/output/haravan/figma-tokens.json +84 -0
  429. package/skills/cm-ux-master/output/haravan/haravan-harvest.json +33 -0
  430. package/skills/cm-ux-master/output/haravan/harvest-v3-raw.json +167 -0
  431. package/skills/cm-ux-master/output/haravan/semi-theme-override.css +39 -0
  432. package/skills/cm-ux-master/references/audit-template.md +257 -0
  433. package/skills/cm-ux-master/references/cultural-ux.md +346 -0
  434. package/skills/cm-ux-master/references/dark-patterns.md +362 -0
  435. package/skills/cm-ux-master/references/heuristic-conflicts.md +296 -0
  436. package/skills/cm-ux-master/references/krug-principles.md +289 -0
  437. package/skills/cm-ux-master/references/nielsen-heuristics.md +360 -0
  438. package/skills/cm-ux-master/references/wcag-checklist.md +306 -0
  439. package/skills/cm-ux-master/scripts/component_generator.py +631 -0
  440. package/skills/cm-ux-master/scripts/core.py +305 -0
  441. package/skills/cm-ux-master/scripts/demo_validation.py +452 -0
  442. package/skills/cm-ux-master/scripts/design_doc_generator.py +1325 -0
  443. package/skills/cm-ux-master/scripts/design_system.py +1141 -0
  444. package/skills/cm-ux-master/scripts/design_system_indexer.py +889 -0
  445. package/skills/cm-ux-master/scripts/extract_i18n.py +251 -0
  446. package/skills/cm-ux-master/scripts/extractor.py +1437 -0
  447. package/skills/cm-ux-master/scripts/figma_bridge.py +406 -0
  448. package/skills/cm-ux-master/scripts/generate.py +147 -0
  449. package/skills/cm-ux-master/scripts/harvest_session.py +207 -0
  450. package/skills/cm-ux-master/scripts/harvester.js +240 -0
  451. package/skills/cm-ux-master/scripts/harvester_browser.py +717 -0
  452. package/skills/cm-ux-master/scripts/harvester_cli.py +431 -0
  453. package/skills/cm-ux-master/scripts/harvester_v1.js +275 -0
  454. package/skills/cm-ux-master/scripts/harvester_v3.js +620 -0
  455. package/skills/cm-ux-master/scripts/harvester_v4.js +1003 -0
  456. package/skills/cm-ux-master/scripts/install.py +528 -0
  457. package/skills/cm-ux-master/scripts/license.py +81 -0
  458. package/skills/cm-ux-master/scripts/media/qrpayment.png +0 -0
  459. package/skills/cm-ux-master/scripts/pro_stubs.py +120 -0
  460. package/skills/cm-ux-master/scripts/project_registry.py +217 -0
  461. package/skills/cm-ux-master/scripts/search.py +114 -0
  462. package/skills/cm-ux-master/scripts/semi_mcp_bridge.py +425 -0
  463. package/skills/cm-ux-master/scripts/stitch_integration.py +583 -0
  464. package/skills/cm-ux-master/scripts/test_harvester_v4.py +335 -0
  465. package/skills/cm-ux-master/scripts/token_mapper.py +626 -0
  466. package/skills/cm-ux-master/scripts/validation_engine.py +1571 -0
  467. package/skills/cm-ux-master/scripts/wizard.py +653 -0
  468. package/skills/cm-ux-master/setup.py +93 -0
  469. package/skills/cm-ux-master/templates/base/flutter-widget.dart +69 -0
  470. package/skills/cm-ux-master/templates/base/html-page.html +152 -0
  471. package/skills/cm-ux-master/templates/base/react-component.tsx +47 -0
  472. package/skills/cm-ux-master/templates/base/swiftui-view.swift +62 -0
  473. package/skills/cm-ux-master/templates/quick-start.sh +176 -0
  474. package/skills/cm-ux-master/tests/automation/batch-validate.sh +250 -0
  475. package/skills/cm-ux-master/tests/automation/generate-test-projects.sh +561 -0
  476. package/skills/cm-ux-master/tests/automation/run-all-tests.sh +315 -0
  477. package/skills/cm-ux-master/tests/test_design_doc.py +145 -0
  478. package/skills/cm-ux-master/tests/test_devices.py +74 -0
  479. package/skills/cm-ux-master/tests/test_generator.py +116 -0
  480. package/skills/cm-ux-master/tests/test_harvest_session.py +131 -0
  481. package/skills/cm-ux-master/tests/test_harvester.py +127 -0
  482. package/skills/cm-ux-master/tests/test_harvester_v3.py +324 -0
  483. package/skills/cm-ux-master/tests/test_mcp_server.py +496 -0
  484. package/skills/cm-ux-master/tests/test_new_domains.py +108 -0
  485. package/skills/cm-ux-master/tests/test_new_stacks.py +103 -0
  486. package/skills/cm-ux-master/tests/test_project_registry.py +146 -0
  487. package/skills/cm-ux-master/tests/test_semi_mcp_bridge.py +207 -0
  488. package/skills/cm-ux-master/tests/test_token_mapper.py +247 -0
  489. package/skills/cm-ux-master/tests/test_validation_engine.py +617 -0
  490. package/skills/config.schema.json +397 -0
  491. package/skills/frappe-app-builder.zip +0 -0
  492. package/skills/jobs-to-be-done/SKILL.md +266 -0
  493. package/skills/jobs-to-be-done/references/case-studies.md +154 -0
  494. package/skills/jobs-to-be-done/references/competitive-strategy.md +280 -0
  495. package/skills/jobs-to-be-done/references/diagnostics.md +158 -0
  496. package/skills/jobs-to-be-done/references/innovation-process.md +392 -0
  497. package/skills/jobs-to-be-done/references/organizational-change.md +328 -0
  498. package/skills/marketplace-report-crawler/SKILL.md +176 -0
  499. package/skills/marketplace-report-crawler/config/accounts.json +41 -0
  500. package/skills/marketplace-report-crawler/config/report-types.json +422 -0
  501. package/skills/marketplace-report-crawler/config/sessions.json +3 -0
  502. package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +102 -0
  503. package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +114 -0
  504. package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +94 -0
  505. package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +272 -0
  506. package/skills/marketplace-report-crawler/scripts/crawl-runner.js +281 -0
  507. package/skills/marketplace-report-crawler/scripts/session-check.sh +72 -0
  508. package/skills/marketplace-report-crawler/scripts/session-manager.sh +349 -0
  509. package/skills/marketplace-report-crawler/scripts/setup-folders.sh +83 -0
  510. package/skills/medical-research/SKILL.md +194 -0
  511. package/skills/medical-research/scripts/evidence_checker.py +288 -0
  512. package/skills/mom-test/SKILL.md +267 -0
  513. package/skills/mom-test/references/avoiding-bad-data.md +221 -0
  514. package/skills/mom-test/references/case-studies.md +306 -0
  515. package/skills/mom-test/references/commitment-advancement.md +219 -0
  516. package/skills/mom-test/references/finding-conversations.md +251 -0
  517. package/skills/mom-test/references/processing-learning.md +256 -0
  518. package/skills/mom-test/references/question-patterns.md +198 -0
  519. package/skills/pandasai-analytics/SKILL.md +251 -0
  520. package/skills/release-it/SKILL.md +235 -0
  521. package/skills/release-it/references/anti-patterns.md +279 -0
  522. package/skills/release-it/references/capacity-planning.md +285 -0
  523. package/skills/release-it/references/chaos-engineering.md +325 -0
  524. package/skills/release-it/references/deployment-strategies.md +331 -0
  525. package/skills/release-it/references/observability.md +301 -0
  526. package/skills/release-it/references/stability-patterns.md +355 -0
  527. package/skills/scripts/sync-ide-skills.sh +61 -0
  528. package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +37 -0
  529. package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +34 -0
  530. package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +51 -0
  531. package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +39 -0
  532. package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +52 -0
  533. package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +25 -0
  534. package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +31 -0
  535. package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +25 -0
  536. package/skills/skill-creator-ultra/README.md +1242 -0
  537. package/skills/skill-creator-ultra/SKILL.md +388 -0
  538. package/skills/skill-creator-ultra/agents/analyzer.md +274 -0
  539. package/skills/skill-creator-ultra/agents/comparator.md +202 -0
  540. package/skills/skill-creator-ultra/agents/grader.md +223 -0
  541. package/skills/skill-creator-ultra/assets/eval_review.html +146 -0
  542. package/skills/skill-creator-ultra/eval-viewer/generate_review.py +471 -0
  543. package/skills/skill-creator-ultra/eval-viewer/viewer.html +1325 -0
  544. package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +109 -0
  545. package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +116 -0
  546. package/skills/skill-creator-ultra/examples/example_api_docs.md +189 -0
  547. package/skills/skill-creator-ultra/examples/example_db_migration.md +253 -0
  548. package/skills/skill-creator-ultra/examples/example_git_commit.md +111 -0
  549. package/skills/skill-creator-ultra/install.ps1 +289 -0
  550. package/skills/skill-creator-ultra/install.sh +313 -0
  551. package/skills/skill-creator-ultra/phases/phase1_interview.md +202 -0
  552. package/skills/skill-creator-ultra/phases/phase2_extract.md +55 -0
  553. package/skills/skill-creator-ultra/phases/phase3_detect.md +57 -0
  554. package/skills/skill-creator-ultra/phases/phase4_generate.md +543 -0
  555. package/skills/skill-creator-ultra/phases/phase5_test.md +319 -0
  556. package/skills/skill-creator-ultra/phases/phase6_eval.md +301 -0
  557. package/skills/skill-creator-ultra/phases/phase7_iterate.md +103 -0
  558. package/skills/skill-creator-ultra/phases/phase8_optimize.md +113 -0
  559. package/skills/skill-creator-ultra/resources/advanced_patterns.md +499 -0
  560. package/skills/skill-creator-ultra/resources/anti_patterns.md +376 -0
  561. package/skills/skill-creator-ultra/resources/blueprints.md +498 -0
  562. package/skills/skill-creator-ultra/resources/checklist.md +243 -0
  563. package/skills/skill-creator-ultra/resources/composition_cookbook.md +291 -0
  564. package/skills/skill-creator-ultra/resources/description_optimization.md +90 -0
  565. package/skills/skill-creator-ultra/resources/eval_guide.md +133 -0
  566. package/skills/skill-creator-ultra/resources/industry_questions.md +189 -0
  567. package/skills/skill-creator-ultra/resources/interview_questions.md +200 -0
  568. package/skills/skill-creator-ultra/resources/pattern_detection.md +200 -0
  569. package/skills/skill-creator-ultra/resources/prompt_engineering.md +531 -0
  570. package/skills/skill-creator-ultra/resources/schemas.md +430 -0
  571. package/skills/skill-creator-ultra/resources/script_integration.md +593 -0
  572. package/skills/skill-creator-ultra/resources/scripts_guide.md +339 -0
  573. package/skills/skill-creator-ultra/resources/skill_template.md +124 -0
  574. package/skills/skill-creator-ultra/resources/skill_writing_guide.md +634 -0
  575. package/skills/skill-creator-ultra/resources/versioning_guide.md +193 -0
  576. package/skills/skill-creator-ultra/scripts/ci_eval.py +200 -0
  577. package/skills/skill-creator-ultra/scripts/package_skill.py +165 -0
  578. package/skills/skill-creator-ultra/scripts/simulate_skill.py +398 -0
  579. package/skills/skill-creator-ultra/scripts/skill_audit.py +611 -0
  580. package/skills/skill-creator-ultra/scripts/skill_compare.py +265 -0
  581. package/skills/skill-creator-ultra/scripts/skill_export.py +334 -0
  582. package/skills/skill-creator-ultra/scripts/skill_scaffold.py +403 -0
  583. package/skills/skill-creator-ultra/scripts/skill_stats.py +339 -0
  584. package/skills/skill-creator-ultra/scripts/validate_skill.py +411 -0
  585. package/skills/tailwind-mastery/SKILL.md +229 -0
  586. package/skills/vercel-react-best-practices/AGENTS.md +3373 -0
  587. package/skills/vercel-react-best-practices/README.md +123 -0
  588. package/skills/vercel-react-best-practices/SKILL.md +143 -0
  589. package/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  590. package/skills/vercel-react-best-practices/rules/_template.md +28 -0
  591. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  592. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  593. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  594. package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  595. package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  596. package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  597. package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  598. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  599. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  600. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  601. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  602. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  603. package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  604. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  605. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  606. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  607. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  608. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  609. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  610. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  611. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  612. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  613. package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  614. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  615. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  616. package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  617. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  618. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  619. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  620. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  621. package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  622. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  623. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  624. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  625. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  626. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  627. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  628. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  629. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  630. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  631. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  632. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  633. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  634. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  635. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  636. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  637. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  638. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  639. package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  640. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  641. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  642. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  643. package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  644. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  645. package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  646. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  647. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  648. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  649. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  650. package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  651. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  652. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
  653. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  654. package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  655. package/skills/web-design-guidelines/SKILL.md +39 -0
  656. package/skills/cro-methodology/SKILL.md +0 -98
  657. /package/skills/{cro-methodology → cm-cro-methodology}/references/COPYWRITING.md +0 -0
  658. /package/skills/{cro-methodology → cm-cro-methodology}/references/OBJECTIONS.md +0 -0
  659. /package/skills/{cro-methodology → cm-cro-methodology}/references/PERSUASION.md +0 -0
  660. /package/skills/{cro-methodology → cm-cro-methodology}/references/RESEARCH.md +0 -0
  661. /package/skills/{cro-methodology → cm-cro-methodology}/references/funnel-analysis.md +0 -0
  662. /package/skills/{cro-methodology → cm-cro-methodology}/references/testing-methodology.md +0 -0
@@ -0,0 +1,1770 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="light">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Haravan Dashboard — Design System</title>
7
+ <style>
8
+
9
+ :root {
10
+ --doc-primary: #2463EB;
11
+ --doc-bg: #FAFBFC;
12
+ --doc-surface: #FFFFFF;
13
+ --doc-text: #111827;
14
+ --doc-text-secondary: #6B7280;
15
+ --doc-border: #E5E7EB;
16
+ --doc-code-bg: #F3F4F6;
17
+ --doc-radius: 12px;
18
+ --doc-shadow: 0 1px 3px rgba(0,0,0,0.08);
19
+ }
20
+
21
+ [data-theme="dark"] {
22
+ --doc-bg: #0F172A;
23
+ --doc-surface: #1E293B;
24
+ --doc-text: #F1F5F9;
25
+ --doc-text-secondary: #94A3B8;
26
+ --doc-border: #334155;
27
+ --doc-code-bg: #1E293B;
28
+ --doc-shadow: 0 1px 3px rgba(0,0,0,0.3);
29
+ }
30
+
31
+ * { margin: 0; padding: 0; box-sizing: border-box; }
32
+
33
+ body {
34
+ font-family: -apple-system, system-ui, 'Segoe UI', Roboto, 'Inter', sans-serif;
35
+ background: var(--doc-bg);
36
+ color: var(--doc-text);
37
+ line-height: 1.6;
38
+ transition: background 0.3s, color 0.3s;
39
+ }
40
+
41
+ .header {
42
+ position: sticky;
43
+ top: 0;
44
+ z-index: 100;
45
+ background: var(--doc-surface);
46
+ border-bottom: 1px solid var(--doc-border);
47
+ backdrop-filter: blur(12px);
48
+ -webkit-backdrop-filter: blur(12px);
49
+ }
50
+
51
+ .header-inner {
52
+ max-width: 1200px;
53
+ margin: 0 auto;
54
+ padding: 16px 24px;
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: space-between;
58
+ }
59
+
60
+ .header-left {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 12px;
64
+ }
65
+
66
+ .header-title {
67
+ font-size: 20px;
68
+ font-weight: 700;
69
+ }
70
+
71
+ .header-badge {
72
+ background: var(--doc-primary);
73
+ color: #fff;
74
+ font-size: 11px;
75
+ font-weight: 600;
76
+ padding: 2px 8px;
77
+ border-radius: 100px;
78
+ text-transform: uppercase;
79
+ letter-spacing: 0.5px;
80
+ }
81
+
82
+ .theme-toggle {
83
+ background: var(--doc-code-bg);
84
+ border: 1px solid var(--doc-border);
85
+ border-radius: 8px;
86
+ padding: 8px 12px;
87
+ cursor: pointer;
88
+ font-size: 16px;
89
+ transition: all 0.2s;
90
+ }
91
+
92
+ .theme-toggle:hover {
93
+ border-color: var(--doc-primary);
94
+ }
95
+
96
+ .main {
97
+ max-width: 1200px;
98
+ margin: 0 auto;
99
+ padding: 32px 24px;
100
+ }
101
+
102
+ .section {
103
+ margin-bottom: 48px;
104
+ }
105
+
106
+ .section-title {
107
+ font-size: 24px;
108
+ font-weight: 700;
109
+ margin-bottom: 20px;
110
+ padding-bottom: 8px;
111
+ border-bottom: 2px solid var(--doc-border);
112
+ }
113
+
114
+ .subsection-title {
115
+ font-size: 16px;
116
+ font-weight: 600;
117
+ margin: 16px 0 12px;
118
+ color: var(--doc-text-secondary);
119
+ }
120
+
121
+ /* Intro Grid */
122
+ .intro-grid {
123
+ display: grid;
124
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
125
+ gap: 12px;
126
+ }
127
+
128
+ .intro-card {
129
+ background: var(--doc-surface);
130
+ border: 1px solid var(--doc-border);
131
+ border-radius: var(--doc-radius);
132
+ padding: 16px;
133
+ box-shadow: var(--doc-shadow);
134
+ }
135
+
136
+ .intro-label {
137
+ font-size: 12px;
138
+ font-weight: 600;
139
+ text-transform: uppercase;
140
+ letter-spacing: 0.5px;
141
+ color: var(--doc-text-secondary);
142
+ margin-bottom: 4px;
143
+ }
144
+
145
+ .intro-value {
146
+ font-size: 15px;
147
+ font-weight: 500;
148
+ word-break: break-all;
149
+ }
150
+
151
+ .intro-value a {
152
+ color: var(--doc-primary);
153
+ text-decoration: none;
154
+ }
155
+
156
+ /* Color Swatches */
157
+ .swatch-grid {
158
+ display: grid;
159
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
160
+ gap: 12px;
161
+ }
162
+
163
+ .swatch {
164
+ background: var(--doc-surface);
165
+ border: 1px solid var(--doc-border);
166
+ border-radius: var(--doc-radius);
167
+ overflow: hidden;
168
+ cursor: pointer;
169
+ transition: transform 0.15s, box-shadow 0.15s;
170
+ }
171
+
172
+ .swatch:hover {
173
+ transform: translateY(-2px);
174
+ box-shadow: 0 4px 12px rgba(0,0,0,0.1);
175
+ }
176
+
177
+ .swatch-color {
178
+ height: 72px;
179
+ width: 100%;
180
+ }
181
+
182
+ .swatch-info {
183
+ padding: 10px 12px;
184
+ }
185
+
186
+ .swatch-name {
187
+ font-size: 13px;
188
+ font-weight: 600;
189
+ margin-bottom: 2px;
190
+ }
191
+
192
+ .swatch-value {
193
+ font-size: 11px;
194
+ color: var(--doc-text-secondary);
195
+ }
196
+
197
+ /* Typography */
198
+ .type-specimens {
199
+ display: flex;
200
+ flex-direction: column;
201
+ gap: 16px;
202
+ }
203
+
204
+ .type-specimen {
205
+ background: var(--doc-surface);
206
+ border: 1px solid var(--doc-border);
207
+ border-radius: var(--doc-radius);
208
+ padding: 20px;
209
+ }
210
+
211
+ .type-label {
212
+ font-size: 12px;
213
+ font-weight: 600;
214
+ text-transform: uppercase;
215
+ letter-spacing: 0.5px;
216
+ color: var(--doc-text-secondary);
217
+ margin-bottom: 8px;
218
+ }
219
+
220
+ .type-sample {
221
+ font-size: 32px;
222
+ font-weight: 600;
223
+ margin-bottom: 8px;
224
+ }
225
+
226
+ .type-heading-sample {
227
+ font-size: 28px;
228
+ font-weight: 700;
229
+ }
230
+
231
+ .type-body-sample {
232
+ line-height: 1.6;
233
+ }
234
+
235
+ .type-muted-sample {
236
+ color: var(--doc-text-secondary);
237
+ line-height: 1.6;
238
+ }
239
+
240
+ /* Geometry */
241
+ .geo-grid {
242
+ display: grid;
243
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
244
+ gap: 12px;
245
+ }
246
+
247
+ .geo-item {
248
+ background: var(--doc-surface);
249
+ border: 1px solid var(--doc-border);
250
+ border-radius: var(--doc-radius);
251
+ padding: 16px;
252
+ display: flex;
253
+ align-items: center;
254
+ gap: 16px;
255
+ }
256
+
257
+ .geo-preview {
258
+ width: 48px;
259
+ height: 48px;
260
+ background: var(--doc-primary);
261
+ flex-shrink: 0;
262
+ }
263
+
264
+ .geo-shadow {
265
+ background: var(--doc-surface);
266
+ border-radius: 8px;
267
+ }
268
+
269
+ .geo-label {
270
+ font-size: 13px;
271
+ font-weight: 600;
272
+ margin-bottom: 2px;
273
+ }
274
+
275
+ .geo-info code {
276
+ font-size: 11px;
277
+ color: var(--doc-text-secondary);
278
+ }
279
+
280
+ /* Components */
281
+ .component-grid {
282
+ display: grid;
283
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
284
+ gap: 16px;
285
+ }
286
+
287
+ .component-card {
288
+ background: var(--doc-surface);
289
+ border: 1px solid var(--doc-border);
290
+ border-radius: var(--doc-radius);
291
+ padding: 20px;
292
+ }
293
+
294
+ .component-card h4 {
295
+ font-size: 14px;
296
+ font-weight: 600;
297
+ margin-bottom: 12px;
298
+ color: var(--doc-text-secondary);
299
+ }
300
+
301
+ .component-row {
302
+ display: flex;
303
+ gap: 8px;
304
+ flex-wrap: wrap;
305
+ }
306
+
307
+ .comp-btn {
308
+ padding: 8px 16px;
309
+ border: none;
310
+ font-size: 14px;
311
+ font-weight: 500;
312
+ cursor: pointer;
313
+ transition: opacity 0.2s;
314
+ }
315
+
316
+ .comp-btn:hover { opacity: 0.9; }
317
+
318
+ .comp-card-preview {
319
+ padding: 16px;
320
+ }
321
+
322
+ .comp-card-title {
323
+ font-size: 16px;
324
+ font-weight: 600;
325
+ margin-bottom: 8px;
326
+ }
327
+
328
+ .comp-card-body {
329
+ font-size: 14px;
330
+ line-height: 1.5;
331
+ }
332
+
333
+ .comp-input {
334
+ width: 100%;
335
+ padding: 10px 12px;
336
+ font-size: 14px;
337
+ background: var(--doc-bg);
338
+ outline: none;
339
+ transition: border-color 0.2s;
340
+ }
341
+
342
+ .comp-input:focus {
343
+ border-color: var(--doc-primary) !important;
344
+ }
345
+
346
+ .comp-tag {
347
+ display: inline-block;
348
+ padding: 4px 10px;
349
+ font-size: 12px;
350
+ font-weight: 500;
351
+ }
352
+
353
+ /* Neutral Scale */
354
+ .neutral-grid {
355
+ display: grid;
356
+ grid-template-columns: repeat(10, 1fr);
357
+ gap: 4px;
358
+ border-radius: var(--doc-radius);
359
+ overflow: hidden;
360
+ }
361
+
362
+ .neutral-swatch {
363
+ cursor: pointer;
364
+ text-align: center;
365
+ transition: transform 0.15s;
366
+ }
367
+
368
+ .neutral-swatch:hover { transform: translateY(-2px); }
369
+
370
+ .neutral-color {
371
+ height: 48px;
372
+ width: 100%;
373
+ }
374
+
375
+ .neutral-label {
376
+ font-size: 11px;
377
+ font-weight: 600;
378
+ margin-top: 4px;
379
+ color: var(--doc-text-secondary);
380
+ }
381
+
382
+ .neutral-hex {
383
+ font-size: 9px;
384
+ color: var(--doc-text-secondary);
385
+ }
386
+
387
+ /* Spacing Scale */
388
+ .spacing-scale {
389
+ display: flex;
390
+ flex-direction: column;
391
+ gap: 8px;
392
+ background: var(--doc-surface);
393
+ border: 1px solid var(--doc-border);
394
+ border-radius: var(--doc-radius);
395
+ padding: 20px;
396
+ }
397
+
398
+ .spacing-item {
399
+ display: flex;
400
+ align-items: center;
401
+ gap: 12px;
402
+ }
403
+
404
+ .spacing-value {
405
+ width: 48px;
406
+ text-align: right;
407
+ font-size: 12px;
408
+ color: var(--doc-text-secondary);
409
+ flex-shrink: 0;
410
+ }
411
+
412
+ .spacing-bar {
413
+ height: 12px;
414
+ background: var(--doc-primary);
415
+ border-radius: 4px;
416
+ opacity: 0.7;
417
+ transition: opacity 0.2s;
418
+ }
419
+
420
+ .spacing-bar:hover { opacity: 1; }
421
+
422
+ .spacing-px {
423
+ font-size: 11px;
424
+ color: var(--doc-text-secondary);
425
+ }
426
+
427
+ /* Layout Blueprint */
428
+ .layout-blueprint {
429
+ margin-bottom: 20px;
430
+ }
431
+
432
+ .layout-diagram {
433
+ display: flex;
434
+ border: 2px dashed var(--doc-border);
435
+ border-radius: var(--doc-radius);
436
+ min-height: 200px;
437
+ overflow: hidden;
438
+ }
439
+
440
+ .layout-sidebar {
441
+ background: rgba(31, 41, 55, 0.9);
442
+ color: #D1D5DB;
443
+ display: flex;
444
+ flex-direction: column;
445
+ align-items: center;
446
+ justify-content: center;
447
+ gap: 4px;
448
+ border-right: 2px dashed var(--doc-border);
449
+ flex-shrink: 0;
450
+ }
451
+
452
+ .layout-main-area {
453
+ flex: 1;
454
+ display: flex;
455
+ flex-direction: column;
456
+ }
457
+
458
+ .layout-header {
459
+ background: var(--doc-surface);
460
+ border-bottom: 2px dashed var(--doc-border);
461
+ display: flex;
462
+ align-items: center;
463
+ justify-content: center;
464
+ gap: 8px;
465
+ }
466
+
467
+ .layout-content {
468
+ flex: 1;
469
+ padding: 20px;
470
+ display: flex;
471
+ flex-direction: column;
472
+ align-items: center;
473
+ justify-content: center;
474
+ gap: 4px;
475
+ background: var(--doc-bg);
476
+ }
477
+
478
+ .layout-metric-label {
479
+ font-size: 12px;
480
+ font-weight: 600;
481
+ }
482
+
483
+ .layout-tokens {
484
+ margin-top: 16px;
485
+ }
486
+
487
+ /* Token Table */
488
+ .table-wrapper {
489
+ overflow-x: auto;
490
+ border: 1px solid var(--doc-border);
491
+ border-radius: var(--doc-radius);
492
+ }
493
+
494
+ .token-table {
495
+ width: 100%;
496
+ border-collapse: collapse;
497
+ font-size: 13px;
498
+ }
499
+
500
+ .token-table th {
501
+ background: var(--doc-code-bg);
502
+ padding: 10px 16px;
503
+ text-align: left;
504
+ font-weight: 600;
505
+ font-size: 12px;
506
+ text-transform: uppercase;
507
+ letter-spacing: 0.5px;
508
+ border-bottom: 1px solid var(--doc-border);
509
+ }
510
+
511
+ .token-table td {
512
+ padding: 8px 16px;
513
+ border-bottom: 1px solid var(--doc-border);
514
+ vertical-align: middle;
515
+ }
516
+
517
+ .token-table tr:last-child td {
518
+ border-bottom: none;
519
+ }
520
+
521
+ .token-table tr:hover {
522
+ background: var(--doc-code-bg);
523
+ }
524
+
525
+ .token-color-preview {
526
+ display: inline-block;
527
+ width: 16px;
528
+ height: 16px;
529
+ border-radius: 4px;
530
+ vertical-align: middle;
531
+ margin-right: 8px;
532
+ border: 1px solid var(--doc-border);
533
+ }
534
+
535
+ /* Usage */
536
+ .usage-blocks {
537
+ display: flex;
538
+ flex-direction: column;
539
+ gap: 16px;
540
+ }
541
+
542
+ .usage-block {
543
+ background: var(--doc-surface);
544
+ border: 1px solid var(--doc-border);
545
+ border-radius: var(--doc-radius);
546
+ padding: 20px;
547
+ }
548
+
549
+ .usage-block h4 {
550
+ font-size: 14px;
551
+ font-weight: 600;
552
+ margin-bottom: 12px;
553
+ }
554
+
555
+ .usage-block pre {
556
+ background: var(--doc-code-bg);
557
+ border-radius: 8px;
558
+ padding: 16px;
559
+ overflow-x: auto;
560
+ font-size: 13px;
561
+ line-height: 1.5;
562
+ }
563
+
564
+ code {
565
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
566
+ }
567
+
568
+ /* Footer */
569
+ .footer {
570
+ text-align: center;
571
+ padding: 24px;
572
+ font-size: 13px;
573
+ color: var(--doc-text-secondary);
574
+ border-top: 1px solid var(--doc-border);
575
+ }
576
+
577
+ /* Toast */
578
+ .toast {
579
+ position: fixed;
580
+ bottom: -60px;
581
+ left: 50%;
582
+ transform: translateX(-50%);
583
+ background: var(--doc-text);
584
+ color: var(--doc-bg);
585
+ padding: 10px 20px;
586
+ border-radius: 8px;
587
+ font-size: 14px;
588
+ font-weight: 500;
589
+ transition: bottom 0.3s;
590
+ z-index: 999;
591
+ }
592
+
593
+ .toast.show {
594
+ bottom: 24px;
595
+ }
596
+
597
+ /* Responsive */
598
+ @media (max-width: 640px) {
599
+ .intro-grid { grid-template-columns: 1fr 1fr; }
600
+ .swatch-grid { grid-template-columns: repeat(2, 1fr); }
601
+ .component-grid { grid-template-columns: 1fr; }
602
+ .geo-grid { grid-template-columns: 1fr; }
603
+ }
604
+
605
+ </style>
606
+ </head>
607
+ <body>
608
+ <header class="header">
609
+ <div class="header-inner">
610
+ <div class="header-left">
611
+ <h1 class="header-title">Haravan Dashboard</h1>
612
+ <span class="header-badge">Design System</span>
613
+ </div>
614
+ <button class="theme-toggle" onclick="toggleTheme()" aria-label="Toggle dark mode">
615
+ <span class="toggle-icon" id="themeIcon">☀️</span>
616
+ </button>
617
+ </div>
618
+ </header>
619
+
620
+ <main class="main">
621
+ <!-- Section 1: Introduction -->
622
+ <section class="section" id="introduction">
623
+ <h2 class="section-title">Introduction</h2>
624
+ <div class="intro-grid">
625
+ <div class="intro-card">
626
+ <div class="intro-label">Project</div>
627
+ <div class="intro-value">Haravan Dashboard</div>
628
+ </div>
629
+ <div class="intro-card">
630
+ <div class="intro-label">Source</div>
631
+ <div class="intro-value"><a href="https://showcase.myharavan.com" target="_blank" rel="noopener">https://showcase.myharavan.com</a></div>
632
+ </div>
633
+ <div class="intro-card">
634
+ <div class="intro-label">Pages Scanned</div>
635
+ <div class="intro-value">3</div>
636
+ </div>
637
+ <div class="intro-card">
638
+ <div class="intro-label">Tokens Extracted</div>
639
+ <div class="intro-value">69</div>
640
+ </div>
641
+ <div class="intro-card">
642
+ <div class="intro-label">Last Updated</div>
643
+ <div class="intro-value">2026-02-25</div>
644
+ </div>
645
+ </div>
646
+ </section>
647
+
648
+ <!-- Section 2: Color Palette -->
649
+ <section class="section" id="colors">
650
+ <h2 class="section-title">🎨 Color Palette</h2>
651
+
652
+ <h3 class="subsection-title">Brand Colors</h3>
653
+ <div class="swatch-grid">
654
+ <div class="swatch" onclick="copyColor('#2463EB')">
655
+ <div class="swatch-color" style="background: #2463EB"></div>
656
+ <div class="swatch-info">
657
+ <div class="swatch-name">Primary</div>
658
+ <code class="swatch-value">#2463EB</code>
659
+ </div>
660
+ </div>
661
+ <div class="swatch" onclick="copyColor('#1C4FBC')">
662
+ <div class="swatch-color" style="background: #1C4FBC"></div>
663
+ <div class="swatch-info">
664
+ <div class="swatch-name">Primary Active</div>
665
+ <code class="swatch-value">#1C4FBC</code>
666
+ </div>
667
+ </div>
668
+ <div class="swatch" onclick="copyColor('#2059D3')">
669
+ <div class="swatch-color" style="background: #2059D3"></div>
670
+ <div class="swatch-info">
671
+ <div class="swatch-name">Primary Hover</div>
672
+ <code class="swatch-value">#2059D3</code>
673
+ </div>
674
+ </div>
675
+ <div class="swatch" onclick="copyColor('#DEE7FC')">
676
+ <div class="swatch-color" style="background: #DEE7FC"></div>
677
+ <div class="swatch-info">
678
+ <div class="swatch-name">Primary Light Default</div>
679
+ <code class="swatch-value">#DEE7FC</code>
680
+ </div>
681
+ </div>
682
+ </div>
683
+ <h3 class="subsection-title">Semantic Colors</h3>
684
+ <div class="swatch-grid">
685
+ <div class="swatch" onclick="copyColor('#EF4444')">
686
+ <div class="swatch-color" style="background: #EF4444"></div>
687
+ <div class="swatch-info">
688
+ <div class="swatch-name">Danger</div>
689
+ <code class="swatch-value">#EF4444</code>
690
+ </div>
691
+ </div>
692
+ <div class="swatch" onclick="copyColor('#BF3636')">
693
+ <div class="swatch-color" style="background: #BF3636"></div>
694
+ <div class="swatch-info">
695
+ <div class="swatch-name">Danger Active</div>
696
+ <code class="swatch-value">#BF3636</code>
697
+ </div>
698
+ </div>
699
+ <div class="swatch" onclick="copyColor('#D73D3D')">
700
+ <div class="swatch-color" style="background: #D73D3D"></div>
701
+ <div class="swatch-info">
702
+ <div class="swatch-name">Danger Hover</div>
703
+ <code class="swatch-value">#D73D3D</code>
704
+ </div>
705
+ </div>
706
+ <div class="swatch" onclick="copyColor('#10B981')">
707
+ <div class="swatch-color" style="background: #10B981"></div>
708
+ <div class="swatch-info">
709
+ <div class="swatch-name">Success</div>
710
+ <code class="swatch-value">#10B981</code>
711
+ </div>
712
+ </div>
713
+ <div class="swatch" onclick="copyColor('#0C9467')">
714
+ <div class="swatch-color" style="background: #0C9467"></div>
715
+ <div class="swatch-info">
716
+ <div class="swatch-name">Success Active</div>
717
+ <code class="swatch-value">#0C9467</code>
718
+ </div>
719
+ </div>
720
+ <div class="swatch" onclick="copyColor('#0EA674')">
721
+ <div class="swatch-color" style="background: #0EA674"></div>
722
+ <div class="swatch-info">
723
+ <div class="swatch-name">Success Hover</div>
724
+ <code class="swatch-value">#0EA674</code>
725
+ </div>
726
+ </div>
727
+ <div class="swatch" onclick="copyColor('#F59E0B')">
728
+ <div class="swatch-color" style="background: #F59E0B"></div>
729
+ <div class="swatch-info">
730
+ <div class="swatch-name">Warning</div>
731
+ <code class="swatch-value">#F59E0B</code>
732
+ </div>
733
+ </div>
734
+ <div class="swatch" onclick="copyColor('#C47E08')">
735
+ <div class="swatch-color" style="background: #C47E08"></div>
736
+ <div class="swatch-info">
737
+ <div class="swatch-name">Warning Active</div>
738
+ <code class="swatch-value">#C47E08</code>
739
+ </div>
740
+ </div>
741
+ <div class="swatch" onclick="copyColor('#DC8E09')">
742
+ <div class="swatch-color" style="background: #DC8E09"></div>
743
+ <div class="swatch-info">
744
+ <div class="swatch-name">Warning Hover</div>
745
+ <code class="swatch-value">#DC8E09</code>
746
+ </div>
747
+ </div>
748
+ </div>
749
+ <h3 class="subsection-title">Surface Colors</h3>
750
+ <div class="swatch-grid">
751
+ <div class="swatch" onclick="copyColor('#DEE7FC')">
752
+ <div class="swatch-color" style="background: #DEE7FC"></div>
753
+ <div class="swatch-info">
754
+ <div class="swatch-name"> Semi Border Color</div>
755
+ <code class="swatch-value">#DEE7FC</code>
756
+ </div>
757
+ </div>
758
+ <div class="swatch" onclick="copyColor('16px')">
759
+ <div class="swatch-color" style="background: 16px"></div>
760
+ <div class="swatch-info">
761
+ <div class="swatch-name"> Semi Border Radius Extra Large</div>
762
+ <code class="swatch-value">16px</code>
763
+ </div>
764
+ </div>
765
+ <div class="swatch" onclick="copyColor('9999px')">
766
+ <div class="swatch-color" style="background: 9999px"></div>
767
+ <div class="swatch-info">
768
+ <div class="swatch-name"> Semi Border Radius Full</div>
769
+ <code class="swatch-value">9999px</code>
770
+ </div>
771
+ </div>
772
+ <div class="swatch" onclick="copyColor('12px')">
773
+ <div class="swatch-color" style="background: 12px"></div>
774
+ <div class="swatch-info">
775
+ <div class="swatch-name"> Semi Border Radius Large</div>
776
+ <code class="swatch-value">12px</code>
777
+ </div>
778
+ </div>
779
+ <div class="swatch" onclick="copyColor('8px')">
780
+ <div class="swatch-color" style="background: 8px"></div>
781
+ <div class="swatch-info">
782
+ <div class="swatch-name"> Semi Border Radius Medium</div>
783
+ <code class="swatch-value">8px</code>
784
+ </div>
785
+ </div>
786
+ <div class="swatch" onclick="copyColor('4px')">
787
+ <div class="swatch-color" style="background: 4px"></div>
788
+ <div class="swatch-info">
789
+ <div class="swatch-name"> Semi Border Radius Small</div>
790
+ <code class="swatch-value">4px</code>
791
+ </div>
792
+ </div>
793
+ <div class="swatch" onclick="copyColor('1px')">
794
+ <div class="swatch-color" style="background: 1px"></div>
795
+ <div class="swatch-info">
796
+ <div class="swatch-name"> Semi Border Width</div>
797
+ <code class="swatch-value">1px</code>
798
+ </div>
799
+ </div>
800
+ <div class="swatch" onclick="copyColor('#F4F6F8')">
801
+ <div class="swatch-color" style="background: #F4F6F8"></div>
802
+ <div class="swatch-info">
803
+ <div class="swatch-name">Bg 0</div>
804
+ <code class="swatch-value">#F4F6F8</code>
805
+ </div>
806
+ </div>
807
+ <div class="swatch" onclick="copyColor('#FFFFFF')">
808
+ <div class="swatch-color" style="background: #FFFFFF"></div>
809
+ <div class="swatch-info">
810
+ <div class="swatch-name">Bg 1</div>
811
+ <code class="swatch-value">#FFFFFF</code>
812
+ </div>
813
+ </div>
814
+ <div class="swatch" onclick="copyColor('#1F2937')">
815
+ <div class="swatch-color" style="background: #1F2937"></div>
816
+ <div class="swatch-info">
817
+ <div class="swatch-name">Bg 2</div>
818
+ <code class="swatch-value">#1F2937</code>
819
+ </div>
820
+ </div>
821
+ <div class="swatch" onclick="copyColor('#FFFFFF')">
822
+ <div class="swatch-color" style="background: #FFFFFF"></div>
823
+ <div class="swatch-info">
824
+ <div class="swatch-name">Bg 3</div>
825
+ <code class="swatch-value">#FFFFFF</code>
826
+ </div>
827
+ </div>
828
+ <div class="swatch" onclick="copyColor('#DEE7FC')">
829
+ <div class="swatch-color" style="background: #DEE7FC"></div>
830
+ <div class="swatch-info">
831
+ <div class="swatch-name">Border</div>
832
+ <code class="swatch-value">#DEE7FC</code>
833
+ </div>
834
+ </div>
835
+ </div>
836
+ <h3 class="subsection-title">Text Colors</h3>
837
+ <div class="swatch-grid">
838
+ <div class="swatch" onclick="copyColor('#0F172A')">
839
+ <div class="swatch-color" style="background: #0F172A"></div>
840
+ <div class="swatch-info">
841
+ <div class="swatch-name">Text 0</div>
842
+ <code class="swatch-value">#0F172A</code>
843
+ </div>
844
+ </div>
845
+ <div class="swatch" onclick="copyColor('#475569')">
846
+ <div class="swatch-color" style="background: #475569"></div>
847
+ <div class="swatch-info">
848
+ <div class="swatch-name">Text 1</div>
849
+ <code class="swatch-value">#475569</code>
850
+ </div>
851
+ </div>
852
+ <div class="swatch" onclick="copyColor('#94A3B8')">
853
+ <div class="swatch-color" style="background: #94A3B8"></div>
854
+ <div class="swatch-info">
855
+ <div class="swatch-name">Text 2</div>
856
+ <code class="swatch-value">#94A3B8</code>
857
+ </div>
858
+ </div>
859
+ </div>
860
+
861
+ <h3 class="subsection-title">Neutral Scale</h3>
862
+ <div class="neutral-grid">
863
+ <div class="neutral-swatch" onclick="copyColor('#fafafa')">
864
+ <div class="neutral-color" style="background: #fafafa"></div>
865
+ <div class="neutral-label">50</div>
866
+ <code class="neutral-hex">#fafafa</code>
867
+ </div>
868
+ <div class="neutral-swatch" onclick="copyColor('#f4f4f5')">
869
+ <div class="neutral-color" style="background: #f4f4f5"></div>
870
+ <div class="neutral-label">100</div>
871
+ <code class="neutral-hex">#f4f4f5</code>
872
+ </div>
873
+ <div class="neutral-swatch" onclick="copyColor('#e4e4e7')">
874
+ <div class="neutral-color" style="background: #e4e4e7"></div>
875
+ <div class="neutral-label">200</div>
876
+ <code class="neutral-hex">#e4e4e7</code>
877
+ </div>
878
+ <div class="neutral-swatch" onclick="copyColor('#d4d4d8')">
879
+ <div class="neutral-color" style="background: #d4d4d8"></div>
880
+ <div class="neutral-label">300</div>
881
+ <code class="neutral-hex">#d4d4d8</code>
882
+ </div>
883
+ <div class="neutral-swatch" onclick="copyColor('#a1a1aa')">
884
+ <div class="neutral-color" style="background: #a1a1aa"></div>
885
+ <div class="neutral-label">400</div>
886
+ <code class="neutral-hex">#a1a1aa</code>
887
+ </div>
888
+ <div class="neutral-swatch" onclick="copyColor('#71717a')">
889
+ <div class="neutral-color" style="background: #71717a"></div>
890
+ <div class="neutral-label">500</div>
891
+ <code class="neutral-hex">#71717a</code>
892
+ </div>
893
+ <div class="neutral-swatch" onclick="copyColor('#52525b')">
894
+ <div class="neutral-color" style="background: #52525b"></div>
895
+ <div class="neutral-label">600</div>
896
+ <code class="neutral-hex">#52525b</code>
897
+ </div>
898
+ <div class="neutral-swatch" onclick="copyColor('#3f3f46')">
899
+ <div class="neutral-color" style="background: #3f3f46"></div>
900
+ <div class="neutral-label">700</div>
901
+ <code class="neutral-hex">#3f3f46</code>
902
+ </div>
903
+ <div class="neutral-swatch" onclick="copyColor('#27272a')">
904
+ <div class="neutral-color" style="background: #27272a"></div>
905
+ <div class="neutral-label">800</div>
906
+ <code class="neutral-hex">#27272a</code>
907
+ </div>
908
+ <div class="neutral-swatch" onclick="copyColor('#18181b')">
909
+ <div class="neutral-color" style="background: #18181b"></div>
910
+ <div class="neutral-label">900</div>
911
+ <code class="neutral-hex">#18181b</code>
912
+ </div>
913
+ </div>
914
+ </section>
915
+
916
+ <!-- Section 3: Typography -->
917
+ <section class="section" id="typography">
918
+ <h2 class="section-title">🔤 Typography</h2>
919
+
920
+ <div class="type-specimens">
921
+ <div class="type-specimen">
922
+ <div class="type-label">Font Family</div>
923
+ <div class="type-sample" style="font-family: -apple-system, BlinkMacSystemFont, sans-serif">-apple-system</div>
924
+ <code>-apple-system, BlinkMacSystemFont, sans-serif</code>
925
+ </div>
926
+ <div class="type-specimen">
927
+ <div class="type-label">Heading</div>
928
+ <div class="type-heading-sample" style="font-family: -apple-system, BlinkMacSystemFont, sans-serif">The quick brown fox jumps over the lazy dog</div>
929
+ </div>
930
+ <div class="type-specimen">
931
+ <div class="type-label">Body (12px)</div>
932
+ <div class="type-body-sample" style="font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: 12px">
933
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
934
+ </div>
935
+ </div>
936
+ <div class="type-specimen">
937
+ <div class="type-label">Muted</div>
938
+ <div class="type-muted-sample" style="font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: 12px">
939
+ Secondary text, captions, and supplementary information.
940
+ </div>
941
+ </div>
942
+ </div>
943
+ </section>
944
+
945
+ <!-- Section 4: Spacing -->
946
+ <section class="section" id="spacing">
947
+ <h2 class="section-title">📏 Spacing Scale</h2>
948
+
949
+ <div class="spacing-scale">
950
+ <div class="spacing-item">
951
+ <code class="spacing-value">4px</code>
952
+ <div class="spacing-bar" style="width: 4px; min-width: 4px"></div>
953
+ <span class="spacing-px">4</span>
954
+ </div>
955
+ <div class="spacing-item">
956
+ <code class="spacing-value">8px</code>
957
+ <div class="spacing-bar" style="width: 8px; min-width: 4px"></div>
958
+ <span class="spacing-px">8</span>
959
+ </div>
960
+ <div class="spacing-item">
961
+ <code class="spacing-value">12px</code>
962
+ <div class="spacing-bar" style="width: 12px; min-width: 4px"></div>
963
+ <span class="spacing-px">12</span>
964
+ </div>
965
+ <div class="spacing-item">
966
+ <code class="spacing-value">16px</code>
967
+ <div class="spacing-bar" style="width: 16px; min-width: 4px"></div>
968
+ <span class="spacing-px">16</span>
969
+ </div>
970
+ <div class="spacing-item">
971
+ <code class="spacing-value">20px</code>
972
+ <div class="spacing-bar" style="width: 20px; min-width: 4px"></div>
973
+ <span class="spacing-px">20</span>
974
+ </div>
975
+ <div class="spacing-item">
976
+ <code class="spacing-value">24px</code>
977
+ <div class="spacing-bar" style="width: 24px; min-width: 4px"></div>
978
+ <span class="spacing-px">24</span>
979
+ </div>
980
+ <div class="spacing-item">
981
+ <code class="spacing-value">32px</code>
982
+ <div class="spacing-bar" style="width: 32px; min-width: 4px"></div>
983
+ <span class="spacing-px">32</span>
984
+ </div>
985
+ <div class="spacing-item">
986
+ <code class="spacing-value">48px</code>
987
+ <div class="spacing-bar" style="width: 48px; min-width: 4px"></div>
988
+ <span class="spacing-px">48</span>
989
+ </div>
990
+ </div>
991
+ </section>
992
+
993
+ <!-- Section 5: Geometry -->
994
+ <section class="section" id="geometry">
995
+ <h2 class="section-title">📐 Geometry</h2>
996
+
997
+ <div class="geo-grid">
998
+ <div class="geo-item">
999
+ <div class="geo-preview" style="border-radius: #F3F4F6"></div>
1000
+ <div class="geo-info">
1001
+ <div class="geo-label">Color Fill 0</div>
1002
+ <code>#F3F4F6</code>
1003
+ </div>
1004
+ </div>
1005
+ <div class="geo-item">
1006
+ <div class="geo-preview" style="border-radius: #EFF6FF"></div>
1007
+ <div class="geo-info">
1008
+ <div class="geo-label">Color Fill 1</div>
1009
+ <code>#EFF6FF</code>
1010
+ </div>
1011
+ </div>
1012
+ <div class="geo-item">
1013
+ <div class="geo-preview" style="border-radius: #FFFFFF"></div>
1014
+ <div class="geo-info">
1015
+ <div class="geo-label">Color Fill 2</div>
1016
+ <code>#FFFFFF</code>
1017
+ </div>
1018
+ </div>
1019
+ <div class="geo-item">
1020
+ <div class="geo-preview" style="border-radius: #3B82F6"></div>
1021
+ <div class="geo-info">
1022
+ <div class="geo-label">Color Info</div>
1023
+ <code>#3B82F6</code>
1024
+ </div>
1025
+ </div>
1026
+ <div class="geo-item">
1027
+ <div class="geo-preview" style="border-radius: #2563EB"></div>
1028
+ <div class="geo-info">
1029
+ <div class="geo-label">Color Link</div>
1030
+ <code>#2563EB</code>
1031
+ </div>
1032
+ </div>
1033
+ <div class="geo-item">
1034
+ <div class="geo-preview" style="border-radius: #F4F4F5"></div>
1035
+ <div class="geo-info">
1036
+ <div class="geo-label">Color Neutral 100</div>
1037
+ <code>#F4F4F5</code>
1038
+ </div>
1039
+ </div>
1040
+ <div class="geo-item">
1041
+ <div class="geo-preview" style="border-radius: #E4E4E7"></div>
1042
+ <div class="geo-info">
1043
+ <div class="geo-label">Color Neutral 200</div>
1044
+ <code>#E4E4E7</code>
1045
+ </div>
1046
+ </div>
1047
+ <div class="geo-item">
1048
+ <div class="geo-preview" style="border-radius: #D4D4D8"></div>
1049
+ <div class="geo-info">
1050
+ <div class="geo-label">Color Neutral 300</div>
1051
+ <code>#D4D4D8</code>
1052
+ </div>
1053
+ </div>
1054
+ <div class="geo-item">
1055
+ <div class="geo-preview" style="border-radius: #A1A1AA"></div>
1056
+ <div class="geo-info">
1057
+ <div class="geo-label">Color Neutral 400</div>
1058
+ <code>#A1A1AA</code>
1059
+ </div>
1060
+ </div>
1061
+ <div class="geo-item">
1062
+ <div class="geo-preview" style="border-radius: #FAFAFA"></div>
1063
+ <div class="geo-info">
1064
+ <div class="geo-label">Color Neutral 50</div>
1065
+ <code>#FAFAFA</code>
1066
+ </div>
1067
+ </div>
1068
+ <div class="geo-item">
1069
+ <div class="geo-preview" style="border-radius: #71717A"></div>
1070
+ <div class="geo-info">
1071
+ <div class="geo-label">Color Neutral 500</div>
1072
+ <code>#71717A</code>
1073
+ </div>
1074
+ </div>
1075
+ <div class="geo-item">
1076
+ <div class="geo-preview" style="border-radius: #52525B"></div>
1077
+ <div class="geo-info">
1078
+ <div class="geo-label">Color Neutral 600</div>
1079
+ <code>#52525B</code>
1080
+ </div>
1081
+ </div>
1082
+ <div class="geo-item">
1083
+ <div class="geo-preview" style="border-radius: #3F3F46"></div>
1084
+ <div class="geo-info">
1085
+ <div class="geo-label">Color Neutral 700</div>
1086
+ <code>#3F3F46</code>
1087
+ </div>
1088
+ </div>
1089
+ <div class="geo-item">
1090
+ <div class="geo-preview" style="border-radius: #27272A"></div>
1091
+ <div class="geo-info">
1092
+ <div class="geo-label">Color Neutral 800</div>
1093
+ <code>#27272A</code>
1094
+ </div>
1095
+ </div>
1096
+ <div class="geo-item">
1097
+ <div class="geo-preview" style="border-radius: #18181B"></div>
1098
+ <div class="geo-info">
1099
+ <div class="geo-label">Color Neutral 900</div>
1100
+ <code>#18181B</code>
1101
+ </div>
1102
+ </div>
1103
+ <div class="geo-item">
1104
+ <div class="geo-preview" style="border-radius: 1280px"></div>
1105
+ <div class="geo-info">
1106
+ <div class="geo-label">Layout Content Max Width</div>
1107
+ <code>1280px</code>
1108
+ </div>
1109
+ </div>
1110
+ <div class="geo-item">
1111
+ <div class="geo-preview" style="border-radius: 24px"></div>
1112
+ <div class="geo-info">
1113
+ <div class="geo-label">Layout Content Padding</div>
1114
+ <code>24px</code>
1115
+ </div>
1116
+ </div>
1117
+ <div class="geo-item">
1118
+ <div class="geo-preview" style="border-radius: 16px"></div>
1119
+ <div class="geo-info">
1120
+ <div class="geo-label">Layout Grid Gap</div>
1121
+ <code>16px</code>
1122
+ </div>
1123
+ </div>
1124
+ <div class="geo-item">
1125
+ <div class="geo-preview" style="border-radius: 56px"></div>
1126
+ <div class="geo-info">
1127
+ <div class="geo-label">Layout Header Height</div>
1128
+ <code>56px</code>
1129
+ </div>
1130
+ </div>
1131
+ <div class="geo-item">
1132
+ <div class="geo-preview" style="border-radius: 240px"></div>
1133
+ <div class="geo-info">
1134
+ <div class="geo-label">Layout Sidebar Width</div>
1135
+ <code>240px</code>
1136
+ </div>
1137
+ </div>
1138
+ <div class="geo-item">
1139
+ <div class="geo-preview" style="border-radius: 24px"></div>
1140
+ <div class="geo-info">
1141
+ <div class="geo-label">Spacing Extra Loose</div>
1142
+ <code>24px</code>
1143
+ </div>
1144
+ </div>
1145
+ <div class="geo-item">
1146
+ <div class="geo-preview" style="border-radius: 4px"></div>
1147
+ <div class="geo-info">
1148
+ <div class="geo-label">Spacing Extra Tight</div>
1149
+ <code>4px</code>
1150
+ </div>
1151
+ </div>
1152
+ <div class="geo-item">
1153
+ <div class="geo-preview" style="border-radius: 20px"></div>
1154
+ <div class="geo-info">
1155
+ <div class="geo-label">Spacing Loose</div>
1156
+ <code>20px</code>
1157
+ </div>
1158
+ </div>
1159
+ <div class="geo-item">
1160
+ <div class="geo-preview" style="border-radius: 12px"></div>
1161
+ <div class="geo-info">
1162
+ <div class="geo-label">Spacing Medium</div>
1163
+ <code>12px</code>
1164
+ </div>
1165
+ </div>
1166
+ <div class="geo-item">
1167
+ <div class="geo-preview" style="border-radius: 16px"></div>
1168
+ <div class="geo-info">
1169
+ <div class="geo-label">Spacing Regular</div>
1170
+ <code>16px</code>
1171
+ </div>
1172
+ </div>
1173
+ <div class="geo-item">
1174
+ <div class="geo-preview" style="border-radius: 8px"></div>
1175
+ <div class="geo-info">
1176
+ <div class="geo-label">Spacing Tight</div>
1177
+ <code>8px</code>
1178
+ </div>
1179
+ </div>
1180
+ <div class="geo-item">
1181
+ <div class="geo-preview geo-shadow" style="box-shadow: 0px 1px 3px rgba(0,0,0,0.1)"></div>
1182
+ <div class="geo-info">
1183
+ <div class="geo-label">Shadow Elevated</div>
1184
+ <code>0px 1px 3px rgba(0,0,0,0.1)</code>
1185
+ </div>
1186
+ </div>
1187
+ <div class="geo-item">
1188
+ <div class="geo-preview geo-shadow" style="box-shadow: 0px 10px 15px rgba(0,0,0,0.1)"></div>
1189
+ <div class="geo-info">
1190
+ <div class="geo-label">Shadow Lg</div>
1191
+ <code>0px 10px 15px rgba(0,0,0,0.1)</code>
1192
+ </div>
1193
+ </div>
1194
+ <div class="geo-item">
1195
+ <div class="geo-preview geo-shadow" style="box-shadow: 0px 1px 2px rgba(0,0,0,0.05)"></div>
1196
+ <div class="geo-info">
1197
+ <div class="geo-label">Shadow Sm</div>
1198
+ <code>0px 1px 2px rgba(0,0,0,0.05)</code>
1199
+ </div>
1200
+ </div>
1201
+ </div>
1202
+ </section>
1203
+
1204
+ <!-- Section 6: Layout -->
1205
+ <section class="section" id="layout">
1206
+ <h2 class="section-title">📱 Layout Blueprint</h2>
1207
+
1208
+ <div class="layout-blueprint">
1209
+ <div class="layout-diagram">
1210
+ <div class="layout-sidebar" style="width: 120px">
1211
+ <div class="layout-metric-label">Sidebar</div>
1212
+ <code>240px</code>
1213
+ </div>
1214
+ <div class="layout-main-area">
1215
+ <div class="layout-header" style="height: 40px">
1216
+ <div class="layout-metric-label">Header</div>
1217
+ <code>56px</code>
1218
+ </div>
1219
+ <div class="layout-content">
1220
+ <div class="layout-metric-label">Content</div>
1221
+ <code>max-width: 1280px</code>
1222
+ <code>padding: 24px</code>
1223
+ <code>gap: 16px</code>
1224
+ </div>
1225
+ </div>
1226
+ </div>
1227
+ </div>
1228
+ <div class="layout-tokens">
1229
+ <div class="geo-grid">
1230
+ <div class="geo-item"><div class="geo-info"><div class="geo-label">Sidebar Width</div><code>240px</code></div></div>
1231
+ <div class="geo-item"><div class="geo-info"><div class="geo-label">Header Height</div><code>56px</code></div></div>
1232
+ <div class="geo-item"><div class="geo-info"><div class="geo-label">Content Max Width</div><code>1280px</code></div></div>
1233
+ <div class="geo-item"><div class="geo-info"><div class="geo-label">Content Padding</div><code>24px</code></div></div>
1234
+ <div class="geo-item"><div class="geo-info"><div class="geo-label">Grid Gap</div><code>16px</code></div></div>
1235
+ </div>
1236
+ </div>
1237
+ </section>
1238
+
1239
+ <!-- Section 7: Components Preview -->
1240
+ <section class="section" id="components">
1241
+ <h2 class="section-title">🧱 Components Preview</h2>
1242
+
1243
+ <div class="component-grid">
1244
+ <!-- Buttons -->
1245
+ <div class="component-card">
1246
+ <h4>Buttons</h4>
1247
+ <div class="component-row">
1248
+ <button class="comp-btn comp-btn-primary" style="background:rgb(36, 99, 235); border-radius:8px; color:#fff; padding:8px 16px">Primary</button>
1249
+ <button class="comp-btn comp-btn-outline" style="border: 1px solid #DEE7FC; border-radius:8px; color:rgb(55, 65, 81); background:rgb(255, 255, 255)">Secondary</button>
1250
+ <button class="comp-btn comp-btn-danger" style="background:#EF4444; border-radius:8px; color:#fff">Danger</button>
1251
+ </div>
1252
+ <div class="component-row" style="margin-top:8px">
1253
+ <button class="comp-btn" style="background:#10B981; border-radius:8px; color:#fff; padding:6px 12px; font-size:12px">Small</button>
1254
+ <button class="comp-btn" style="background:#2463EB; border-radius:8px; color:#fff; padding:8px 16px">Medium</button>
1255
+ <button class="comp-btn" style="background:#2463EB; border-radius:8px; color:#fff; padding:12px 24px; font-size:16px">Large</button>
1256
+ </div>
1257
+ </div>
1258
+
1259
+ <!-- Card -->
1260
+ <div class="component-card">
1261
+ <h4>Card</h4>
1262
+ <div class="comp-card-preview" style="background:#FFFFFF; border-radius:12px; box-shadow:0px 1px 3px rgba(0,0,0,0.1); border:1px solid #DEE7FC; padding:20px">
1263
+ <div class="comp-card-title" style="color:#0F172A">Card Title</div>
1264
+ <div class="comp-card-body" style="color:#475569">Card content with extracted design tokens applied.</div>
1265
+ </div>
1266
+ </div>
1267
+
1268
+ <!-- Input + Forms -->
1269
+ <div class="component-card">
1270
+ <h4>Form Elements</h4>
1271
+ <input type="text" class="comp-input" placeholder="Text input..." style="border: 1px solid #DEE7FC; border-radius:8px; color:#0F172A; padding:10px 12px; margin-bottom:8px">
1272
+ <div class="component-row">
1273
+ <select style="border:1px solid #DEE7FC; border-radius:8px; padding:10px 12px; background:#FFFFFF; color:#0F172A; font-size:14px; flex:1">
1274
+ <option>Select option</option>
1275
+ </select>
1276
+ </div>
1277
+ </div>
1278
+
1279
+ <!-- Table -->
1280
+ <div class="component-card" style="grid-column: span 2">
1281
+ <h4>Table</h4>
1282
+ <div style="overflow-x:auto; border:1px solid #DEE7FC; border-radius:8px">
1283
+ <table style="width:100%; border-collapse:collapse; font-size:14px">
1284
+ <thead>
1285
+ <tr style="background:rgb(249, 250, 251)">
1286
+ <th style="padding:12px 16px; text-align:left; font-weight:600; font-size:12px; color:#475569; border-bottom:1px solid #DEE7FC">Name</th>
1287
+ <th style="padding:12px 16px; text-align:left; font-weight:600; font-size:12px; color:#475569; border-bottom:1px solid #DEE7FC">Status</th>
1288
+ <th style="padding:12px 16px; text-align:left; font-weight:600; font-size:12px; color:#475569; border-bottom:1px solid #DEE7FC">Amount</th>
1289
+ </tr>
1290
+ </thead>
1291
+ <tbody>
1292
+ <tr style="border-bottom:1px solid #DEE7FC">
1293
+ <td style="padding:12px 16px; color:#0F172A">Order #1024</td>
1294
+ <td style="padding:12px 16px"><span class="comp-tag" style="background:#10B98120; color:#10B981; border-radius:6px">Completed</span></td>
1295
+ <td style="padding:12px 16px; color:#0F172A">$1,250.00</td>
1296
+ </tr>
1297
+ <tr style="border-bottom:1px solid #DEE7FC">
1298
+ <td style="padding:12px 16px; color:#0F172A">Order #1025</td>
1299
+ <td style="padding:12px 16px"><span class="comp-tag" style="background:#F59E0B20; color:#F59E0B; border-radius:6px">Pending</span></td>
1300
+ <td style="padding:12px 16px; color:#0F172A">$430.50</td>
1301
+ </tr>
1302
+ <tr>
1303
+ <td style="padding:12px 16px; color:#0F172A">Order #1026</td>
1304
+ <td style="padding:12px 16px"><span class="comp-tag" style="background:#EF444420; color:#EF4444; border-radius:6px">Cancelled</span></td>
1305
+ <td style="padding:12px 16px; color:#0F172A">$89.00</td>
1306
+ </tr>
1307
+ </tbody>
1308
+ </table>
1309
+ </div>
1310
+ </div>
1311
+
1312
+ <!-- Tags -->
1313
+ <div class="component-card">
1314
+ <h4>Tags / Badges</h4>
1315
+ <div class="component-row">
1316
+ <span class="comp-tag" style="background:#2463EB20; color:#2463EB; border-radius:8px">Primary</span>
1317
+ <span class="comp-tag" style="background:#10B98120; color:#10B981; border-radius:8px">Success</span>
1318
+ <span class="comp-tag" style="background:#F59E0B20; color:#F59E0B; border-radius:8px">Warning</span>
1319
+ <span class="comp-tag" style="background:#EF444420; color:#EF4444; border-radius:8px">Danger</span>
1320
+ <span class="comp-tag" style="background:#3B82F620; color:#3B82F6; border-radius:8px">Info</span>
1321
+ </div>
1322
+ </div>
1323
+
1324
+ <!-- Nav Items -->
1325
+ <div class="component-card">
1326
+ <h4>Navigation</h4>
1327
+ <div style="background:#1F2937; border-radius:12px; padding:12px">
1328
+ <div style="padding:8px 12px; color:rgba(255,255,255,0.5); font-size:14px; border-radius:8px; cursor:pointer; margin-bottom:4px">📊 Dashboard</div>
1329
+ <div style="padding:8px 12px; color:#fff; background:rgba(255,255,255,0.1); font-size:14px; border-radius:8px; cursor:pointer; margin-bottom:4px">📦 Orders</div>
1330
+ <div style="padding:8px 12px; color:rgba(255,255,255,0.5); font-size:14px; border-radius:8px; cursor:pointer; margin-bottom:4px">⚙️ Settings</div>
1331
+ <div style="padding:8px 12px; color:rgba(255,255,255,0.5); font-size:14px; border-radius:8px; cursor:pointer">📈 Reports</div>
1332
+ </div>
1333
+ </div>
1334
+ </div>
1335
+ </section>
1336
+
1337
+ <!-- Section 8: Token Reference -->
1338
+ <section class="section" id="tokens">
1339
+ <h2 class="section-title">📋 Token Reference</h2>
1340
+
1341
+ <div class="table-wrapper">
1342
+ <table class="token-table">
1343
+ <thead>
1344
+ <tr>
1345
+ <th>Variable</th>
1346
+ <th>Value</th>
1347
+ <th>Category</th>
1348
+ </tr>
1349
+ </thead>
1350
+ <tbody>
1351
+ <tr>
1352
+ <td><code>--semi-border-color</code></td>
1353
+ <td><span class="token-color-preview" style="background:#DEE7FC"></span> #DEE7FC</td>
1354
+ <td>Color</td>
1355
+ </tr>
1356
+ <tr>
1357
+ <td><code>--semi-border-radius-extra-large</code></td>
1358
+ <td><span class="token-color-preview" style="background:16px"></span> 16px</td>
1359
+ <td>Color</td>
1360
+ </tr>
1361
+ <tr>
1362
+ <td><code>--semi-border-radius-full</code></td>
1363
+ <td><span class="token-color-preview" style="background:9999px"></span> 9999px</td>
1364
+ <td>Color</td>
1365
+ </tr>
1366
+ <tr>
1367
+ <td><code>--semi-border-radius-large</code></td>
1368
+ <td><span class="token-color-preview" style="background:12px"></span> 12px</td>
1369
+ <td>Color</td>
1370
+ </tr>
1371
+ <tr>
1372
+ <td><code>--semi-border-radius-medium</code></td>
1373
+ <td><span class="token-color-preview" style="background:8px"></span> 8px</td>
1374
+ <td>Color</td>
1375
+ </tr>
1376
+ <tr>
1377
+ <td><code>--semi-border-radius-small</code></td>
1378
+ <td><span class="token-color-preview" style="background:4px"></span> 4px</td>
1379
+ <td>Color</td>
1380
+ </tr>
1381
+ <tr>
1382
+ <td><code>--semi-border-width</code></td>
1383
+ <td><span class="token-color-preview" style="background:1px"></span> 1px</td>
1384
+ <td>Color</td>
1385
+ </tr>
1386
+ <tr>
1387
+ <td><code>--semi-color-bg-0</code></td>
1388
+ <td><span class="token-color-preview" style="background:#F4F6F8"></span> #F4F6F8</td>
1389
+ <td>Color</td>
1390
+ </tr>
1391
+ <tr>
1392
+ <td><code>--semi-color-bg-1</code></td>
1393
+ <td><span class="token-color-preview" style="background:#FFFFFF"></span> #FFFFFF</td>
1394
+ <td>Color</td>
1395
+ </tr>
1396
+ <tr>
1397
+ <td><code>--semi-color-bg-2</code></td>
1398
+ <td><span class="token-color-preview" style="background:#1F2937"></span> #1F2937</td>
1399
+ <td>Color</td>
1400
+ </tr>
1401
+ <tr>
1402
+ <td><code>--semi-color-bg-3</code></td>
1403
+ <td><span class="token-color-preview" style="background:#FFFFFF"></span> #FFFFFF</td>
1404
+ <td>Color</td>
1405
+ </tr>
1406
+ <tr>
1407
+ <td><code>--semi-color-border</code></td>
1408
+ <td><span class="token-color-preview" style="background:#DEE7FC"></span> #DEE7FC</td>
1409
+ <td>Color</td>
1410
+ </tr>
1411
+ <tr>
1412
+ <td><code>--semi-color-danger</code></td>
1413
+ <td><span class="token-color-preview" style="background:#EF4444"></span> #EF4444</td>
1414
+ <td>Color</td>
1415
+ </tr>
1416
+ <tr>
1417
+ <td><code>--semi-color-danger-active</code></td>
1418
+ <td><span class="token-color-preview" style="background:#BF3636"></span> #BF3636</td>
1419
+ <td>Color</td>
1420
+ </tr>
1421
+ <tr>
1422
+ <td><code>--semi-color-danger-hover</code></td>
1423
+ <td><span class="token-color-preview" style="background:#D73D3D"></span> #D73D3D</td>
1424
+ <td>Color</td>
1425
+ </tr>
1426
+ <tr>
1427
+ <td><code>--semi-color-fill-0</code></td>
1428
+ <td><span class="token-color-preview" style="background:#F3F4F6"></span> #F3F4F6</td>
1429
+ <td>Color</td>
1430
+ </tr>
1431
+ <tr>
1432
+ <td><code>--semi-color-fill-1</code></td>
1433
+ <td><span class="token-color-preview" style="background:#EFF6FF"></span> #EFF6FF</td>
1434
+ <td>Color</td>
1435
+ </tr>
1436
+ <tr>
1437
+ <td><code>--semi-color-fill-2</code></td>
1438
+ <td><span class="token-color-preview" style="background:#FFFFFF"></span> #FFFFFF</td>
1439
+ <td>Color</td>
1440
+ </tr>
1441
+ <tr>
1442
+ <td><code>--semi-color-info</code></td>
1443
+ <td><span class="token-color-preview" style="background:#3B82F6"></span> #3B82F6</td>
1444
+ <td>Color</td>
1445
+ </tr>
1446
+ <tr>
1447
+ <td><code>--semi-color-link</code></td>
1448
+ <td><span class="token-color-preview" style="background:#2563EB"></span> #2563EB</td>
1449
+ <td>Color</td>
1450
+ </tr>
1451
+ <tr>
1452
+ <td><code>--semi-color-neutral-100</code></td>
1453
+ <td><span class="token-color-preview" style="background:#F4F4F5"></span> #F4F4F5</td>
1454
+ <td>Color</td>
1455
+ </tr>
1456
+ <tr>
1457
+ <td><code>--semi-color-neutral-200</code></td>
1458
+ <td><span class="token-color-preview" style="background:#E4E4E7"></span> #E4E4E7</td>
1459
+ <td>Color</td>
1460
+ </tr>
1461
+ <tr>
1462
+ <td><code>--semi-color-neutral-300</code></td>
1463
+ <td><span class="token-color-preview" style="background:#D4D4D8"></span> #D4D4D8</td>
1464
+ <td>Color</td>
1465
+ </tr>
1466
+ <tr>
1467
+ <td><code>--semi-color-neutral-400</code></td>
1468
+ <td><span class="token-color-preview" style="background:#A1A1AA"></span> #A1A1AA</td>
1469
+ <td>Color</td>
1470
+ </tr>
1471
+ <tr>
1472
+ <td><code>--semi-color-neutral-50</code></td>
1473
+ <td><span class="token-color-preview" style="background:#FAFAFA"></span> #FAFAFA</td>
1474
+ <td>Color</td>
1475
+ </tr>
1476
+ <tr>
1477
+ <td><code>--semi-color-neutral-500</code></td>
1478
+ <td><span class="token-color-preview" style="background:#71717A"></span> #71717A</td>
1479
+ <td>Color</td>
1480
+ </tr>
1481
+ <tr>
1482
+ <td><code>--semi-color-neutral-600</code></td>
1483
+ <td><span class="token-color-preview" style="background:#52525B"></span> #52525B</td>
1484
+ <td>Color</td>
1485
+ </tr>
1486
+ <tr>
1487
+ <td><code>--semi-color-neutral-700</code></td>
1488
+ <td><span class="token-color-preview" style="background:#3F3F46"></span> #3F3F46</td>
1489
+ <td>Color</td>
1490
+ </tr>
1491
+ <tr>
1492
+ <td><code>--semi-color-neutral-800</code></td>
1493
+ <td><span class="token-color-preview" style="background:#27272A"></span> #27272A</td>
1494
+ <td>Color</td>
1495
+ </tr>
1496
+ <tr>
1497
+ <td><code>--semi-color-neutral-900</code></td>
1498
+ <td><span class="token-color-preview" style="background:#18181B"></span> #18181B</td>
1499
+ <td>Color</td>
1500
+ </tr>
1501
+ <tr>
1502
+ <td><code>--semi-color-primary</code></td>
1503
+ <td><span class="token-color-preview" style="background:#2463EB"></span> #2463EB</td>
1504
+ <td>Color</td>
1505
+ </tr>
1506
+ <tr>
1507
+ <td><code>--semi-color-primary-active</code></td>
1508
+ <td><span class="token-color-preview" style="background:#1C4FBC"></span> #1C4FBC</td>
1509
+ <td>Color</td>
1510
+ </tr>
1511
+ <tr>
1512
+ <td><code>--semi-color-primary-hover</code></td>
1513
+ <td><span class="token-color-preview" style="background:#2059D3"></span> #2059D3</td>
1514
+ <td>Color</td>
1515
+ </tr>
1516
+ <tr>
1517
+ <td><code>--semi-color-primary-light-default</code></td>
1518
+ <td><span class="token-color-preview" style="background:#DEE7FC"></span> #DEE7FC</td>
1519
+ <td>Color</td>
1520
+ </tr>
1521
+ <tr>
1522
+ <td><code>--semi-color-success</code></td>
1523
+ <td><span class="token-color-preview" style="background:#10B981"></span> #10B981</td>
1524
+ <td>Color</td>
1525
+ </tr>
1526
+ <tr>
1527
+ <td><code>--semi-color-success-active</code></td>
1528
+ <td><span class="token-color-preview" style="background:#0C9467"></span> #0C9467</td>
1529
+ <td>Color</td>
1530
+ </tr>
1531
+ <tr>
1532
+ <td><code>--semi-color-success-hover</code></td>
1533
+ <td><span class="token-color-preview" style="background:#0EA674"></span> #0EA674</td>
1534
+ <td>Color</td>
1535
+ </tr>
1536
+ <tr>
1537
+ <td><code>--semi-color-text-0</code></td>
1538
+ <td><span class="token-color-preview" style="background:#0F172A"></span> #0F172A</td>
1539
+ <td>Color</td>
1540
+ </tr>
1541
+ <tr>
1542
+ <td><code>--semi-color-text-1</code></td>
1543
+ <td><span class="token-color-preview" style="background:#475569"></span> #475569</td>
1544
+ <td>Color</td>
1545
+ </tr>
1546
+ <tr>
1547
+ <td><code>--semi-color-text-2</code></td>
1548
+ <td><span class="token-color-preview" style="background:#94A3B8"></span> #94A3B8</td>
1549
+ <td>Color</td>
1550
+ </tr>
1551
+ <tr>
1552
+ <td><code>--semi-color-warning</code></td>
1553
+ <td><span class="token-color-preview" style="background:#F59E0B"></span> #F59E0B</td>
1554
+ <td>Color</td>
1555
+ </tr>
1556
+ <tr>
1557
+ <td><code>--semi-color-warning-active</code></td>
1558
+ <td><span class="token-color-preview" style="background:#C47E08"></span> #C47E08</td>
1559
+ <td>Color</td>
1560
+ </tr>
1561
+ <tr>
1562
+ <td><code>--semi-color-warning-hover</code></td>
1563
+ <td><span class="token-color-preview" style="background:#DC8E09"></span> #DC8E09</td>
1564
+ <td>Color</td>
1565
+ </tr>
1566
+ <tr>
1567
+ <td><code>--semi-font-family-heading</code></td>
1568
+ <td> -apple-system, BlinkMacSystemFont, sans-serif</td>
1569
+ <td>Typography</td>
1570
+ </tr>
1571
+ <tr>
1572
+ <td><code>--semi-font-family-regular</code></td>
1573
+ <td> -apple-system, BlinkMacSystemFont, sans-serif</td>
1574
+ <td>Typography</td>
1575
+ </tr>
1576
+ <tr>
1577
+ <td><code>--semi-font-size-extra-small</code></td>
1578
+ <td> 11px</td>
1579
+ <td>Typography</td>
1580
+ </tr>
1581
+ <tr>
1582
+ <td><code>--semi-font-size-header-4</code></td>
1583
+ <td> 24px</td>
1584
+ <td>Typography</td>
1585
+ </tr>
1586
+ <tr>
1587
+ <td><code>--semi-font-size-header-5</code></td>
1588
+ <td> 20px</td>
1589
+ <td>Typography</td>
1590
+ </tr>
1591
+ <tr>
1592
+ <td><code>--semi-font-size-large</code></td>
1593
+ <td> 16px</td>
1594
+ <td>Typography</td>
1595
+ </tr>
1596
+ <tr>
1597
+ <td><code>--semi-font-size-regular</code></td>
1598
+ <td> 14px</td>
1599
+ <td>Typography</td>
1600
+ </tr>
1601
+ <tr>
1602
+ <td><code>--semi-font-size-small</code></td>
1603
+ <td> 12px</td>
1604
+ <td>Typography</td>
1605
+ </tr>
1606
+ <tr>
1607
+ <td><code>--semi-font-weight-bold</code></td>
1608
+ <td> 700</td>
1609
+ <td>Typography</td>
1610
+ </tr>
1611
+ <tr>
1612
+ <td><code>--semi-font-weight-medium</code></td>
1613
+ <td> 500</td>
1614
+ <td>Typography</td>
1615
+ </tr>
1616
+ <tr>
1617
+ <td><code>--semi-font-weight-regular</code></td>
1618
+ <td> 400</td>
1619
+ <td>Typography</td>
1620
+ </tr>
1621
+ <tr>
1622
+ <td><code>--semi-font-weight-semibold</code></td>
1623
+ <td> 600</td>
1624
+ <td>Typography</td>
1625
+ </tr>
1626
+ <tr>
1627
+ <td><code>--semi-layout-content-max-width</code></td>
1628
+ <td> 1280px</td>
1629
+ <td>Other</td>
1630
+ </tr>
1631
+ <tr>
1632
+ <td><code>--semi-layout-content-padding</code></td>
1633
+ <td> 24px</td>
1634
+ <td>Other</td>
1635
+ </tr>
1636
+ <tr>
1637
+ <td><code>--semi-layout-grid-gap</code></td>
1638
+ <td> 16px</td>
1639
+ <td>Other</td>
1640
+ </tr>
1641
+ <tr>
1642
+ <td><code>--semi-layout-header-height</code></td>
1643
+ <td> 56px</td>
1644
+ <td>Other</td>
1645
+ </tr>
1646
+ <tr>
1647
+ <td><code>--semi-layout-sidebar-width</code></td>
1648
+ <td> 240px</td>
1649
+ <td>Other</td>
1650
+ </tr>
1651
+ <tr>
1652
+ <td><code>--semi-shadow-elevated</code></td>
1653
+ <td> 0px 1px 3px rgba(0,0,0,0.1)</td>
1654
+ <td>Shadow</td>
1655
+ </tr>
1656
+ <tr>
1657
+ <td><code>--semi-shadow-lg</code></td>
1658
+ <td> 0px 10px 15px rgba(0,0,0,0.1)</td>
1659
+ <td>Shadow</td>
1660
+ </tr>
1661
+ <tr>
1662
+ <td><code>--semi-shadow-sm</code></td>
1663
+ <td> 0px 1px 2px rgba(0,0,0,0.05)</td>
1664
+ <td>Shadow</td>
1665
+ </tr>
1666
+ <tr>
1667
+ <td><code>--semi-spacing-extra-loose</code></td>
1668
+ <td> 24px</td>
1669
+ <td>Other</td>
1670
+ </tr>
1671
+ <tr>
1672
+ <td><code>--semi-spacing-extra-tight</code></td>
1673
+ <td> 4px</td>
1674
+ <td>Other</td>
1675
+ </tr>
1676
+ <tr>
1677
+ <td><code>--semi-spacing-loose</code></td>
1678
+ <td> 20px</td>
1679
+ <td>Other</td>
1680
+ </tr>
1681
+ <tr>
1682
+ <td><code>--semi-spacing-medium</code></td>
1683
+ <td> 12px</td>
1684
+ <td>Other</td>
1685
+ </tr>
1686
+ <tr>
1687
+ <td><code>--semi-spacing-regular</code></td>
1688
+ <td> 16px</td>
1689
+ <td>Other</td>
1690
+ </tr>
1691
+ <tr>
1692
+ <td><code>--semi-spacing-tight</code></td>
1693
+ <td> 8px</td>
1694
+ <td>Other</td>
1695
+ </tr>
1696
+ </tbody>
1697
+ </table>
1698
+ </div>
1699
+ </section>
1700
+
1701
+ <!-- Section 9: Usage -->
1702
+ <section class="section" id="usage">
1703
+ <h2 class="section-title">⚙️ Usage</h2>
1704
+
1705
+ <div class="usage-blocks">
1706
+ <div class="usage-block">
1707
+ <h4>1. CSS Import</h4>
1708
+ <pre><code>/* Import the theme override in your main CSS/entry */
1709
+ @import './semi-theme-override.css';
1710
+
1711
+ /* Or in HTML */
1712
+ &lt;link rel="stylesheet" href="semi-theme-override.css"&gt;</code></pre>
1713
+ </div>
1714
+ <div class="usage-block">
1715
+ <h4>2. React Setup (Semi Design)</h4>
1716
+ <pre><code>// Install Semi UI
1717
+ npm install @douyinfe/semi-ui
1718
+
1719
+ // Import theme override AFTER Semi default styles
1720
+ import '@douyinfe/semi-ui/dist/css/semi.min.css';
1721
+ import './semi-theme-override.css';</code></pre>
1722
+ </div>
1723
+ <div class="usage-block">
1724
+ <h4>3. Figma Tokens</h4>
1725
+ <pre><code>// Import figma-tokens.json into Tokens Studio plugin
1726
+ // File → Import → Select figma-tokens.json
1727
+ // Apply Haravan Dashboard theme set</code></pre>
1728
+ </div>
1729
+ </div>
1730
+ </section>
1731
+ </main>
1732
+
1733
+ <footer class="footer">
1734
+ <p>Generated by <strong>UX Master — Semi-Sync Harvester</strong></p>
1735
+ </footer>
1736
+
1737
+ <div class="toast" id="toast">Copied!</div>
1738
+
1739
+ <script>
1740
+
1741
+ function toggleTheme() {
1742
+ const html = document.documentElement;
1743
+ const current = html.getAttribute('data-theme');
1744
+ const next = current === 'dark' ? 'light' : 'dark';
1745
+ html.setAttribute('data-theme', next);
1746
+ document.getElementById('themeIcon').textContent = next === 'dark' ? '🌙' : '☀️';
1747
+ localStorage.setItem('theme', next);
1748
+ }
1749
+
1750
+ function copyColor(value) {
1751
+ navigator.clipboard.writeText(value).then(() => {
1752
+ const toast = document.getElementById('toast');
1753
+ toast.textContent = 'Copied: ' + value;
1754
+ toast.classList.add('show');
1755
+ setTimeout(() => toast.classList.remove('show'), 2000);
1756
+ });
1757
+ }
1758
+
1759
+ // Restore saved theme
1760
+ (function() {
1761
+ const saved = localStorage.getItem('theme');
1762
+ if (saved) {
1763
+ document.documentElement.setAttribute('data-theme', saved);
1764
+ document.getElementById('themeIcon').textContent = saved === 'dark' ? '🌙' : '☀️';
1765
+ }
1766
+ })();
1767
+
1768
+ </script>
1769
+ </body>
1770
+ </html>