@jaimevalasek/aioson 1.5.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +729 -226
  3. package/docs/design-previews/aurora-command-ui-website.html +884 -0
  4. package/docs/design-previews/aurora-command-ui.html +682 -0
  5. package/docs/design-previews/bold-editorial-ui-website.html +658 -0
  6. package/docs/design-previews/bold-editorial-ui.html +717 -0
  7. package/docs/design-previews/clean-saas-ui-website.html +1202 -0
  8. package/docs/design-previews/clean-saas-ui.html +549 -0
  9. package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
  10. package/docs/design-previews/cognitive-core-ui.html +463 -0
  11. package/docs/design-previews/glassmorphism-ui-website.html +572 -0
  12. package/docs/design-previews/glassmorphism-ui.html +886 -0
  13. package/docs/design-previews/index.html +699 -0
  14. package/docs/design-previews/interface-design-website.html +1187 -0
  15. package/docs/design-previews/interface-design.html +513 -0
  16. package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
  17. package/docs/design-previews/neo-brutalist-ui.html +797 -0
  18. package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
  19. package/docs/design-previews/premium-command-center-ui.html +552 -0
  20. package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
  21. package/docs/design-previews/warm-craft-ui-website.html +684 -0
  22. package/docs/design-previews/warm-craft-ui.html +739 -0
  23. package/docs/en/cli-reference.md +20 -9
  24. package/docs/integrations/sdlc-genius-boundary.md +76 -0
  25. package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
  26. package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
  27. package/docs/integrations/sdlc-genius-review-samples.md +86 -0
  28. package/docs/pt/README.md +10 -0
  29. package/docs/pt/agent-sharding.md +132 -0
  30. package/docs/pt/agentes.md +9 -2
  31. package/docs/pt/busca-de-contexto.md +129 -0
  32. package/docs/pt/cache-de-contexto.md +156 -0
  33. package/docs/pt/comandos-cli.md +915 -1
  34. package/docs/pt/design-hybrid-forge.md +356 -0
  35. package/docs/pt/devlog-pipeline.md +270 -0
  36. package/docs/pt/fluxo-artefatos.md +178 -0
  37. package/docs/pt/hooks-session-guard.md +454 -0
  38. package/docs/pt/inicio-rapido.md +54 -3
  39. package/docs/pt/inteligencia-adaptativa.md +324 -0
  40. package/docs/pt/monitor-de-contexto.md +158 -0
  41. package/docs/pt/recuperacao-de-sessao.md +125 -0
  42. package/docs/pt/sandbox.md +125 -0
  43. package/docs/pt/sdd-automation-scripts.md +557 -0
  44. package/docs/pt/site-forge.md +309 -0
  45. package/docs/pt/skills.md +98 -6
  46. package/docs/pt/spec-learnings-pipeline.md +265 -0
  47. package/package.json +1 -1
  48. package/src/a2a/client.js +165 -0
  49. package/src/a2a/server.js +223 -0
  50. package/src/agent-loader.js +280 -0
  51. package/src/cli.js +329 -1
  52. package/src/commands/agent-audit.js +397 -0
  53. package/src/commands/agent-export-skill.js +229 -0
  54. package/src/commands/agent-loader.js +85 -0
  55. package/src/commands/artifact-validate.js +189 -0
  56. package/src/commands/brief-gen.js +405 -0
  57. package/src/commands/brief-validate.js +65 -0
  58. package/src/commands/classify.js +256 -0
  59. package/src/commands/context-cache.js +90 -0
  60. package/src/commands/context-compact.js +49 -0
  61. package/src/commands/context-health.js +175 -0
  62. package/src/commands/context-monitor.js +163 -0
  63. package/src/commands/context-search.js +66 -0
  64. package/src/commands/context-trim.js +177 -0
  65. package/src/commands/design-hybrid-options.js +385 -0
  66. package/src/commands/detect-test-runner.js +55 -0
  67. package/src/commands/devlog-export-brains.js +27 -0
  68. package/src/commands/devlog-process.js +292 -0
  69. package/src/commands/devlog-watch.js +131 -0
  70. package/src/commands/feature-close.js +165 -0
  71. package/src/commands/gate-check.js +228 -0
  72. package/src/commands/health.js +214 -0
  73. package/src/commands/hooks-emit.js +253 -0
  74. package/src/commands/hooks-install.js +347 -0
  75. package/src/commands/init.js +54 -13
  76. package/src/commands/install.js +52 -13
  77. package/src/commands/learning-auto-promote.js +195 -0
  78. package/src/commands/learning-evolve.js +364 -0
  79. package/src/commands/learning-export.js +103 -0
  80. package/src/commands/learning-rollback.js +164 -0
  81. package/src/commands/live.js +59 -1
  82. package/src/commands/pattern-detect.js +33 -0
  83. package/src/commands/preflight-context.js +30 -0
  84. package/src/commands/preflight.js +208 -0
  85. package/src/commands/pulse-update.js +130 -0
  86. package/src/commands/recovery.js +43 -0
  87. package/src/commands/runner-daemon.js +274 -0
  88. package/src/commands/runner-plan.js +70 -0
  89. package/src/commands/runner-queue-from-plan.js +166 -0
  90. package/src/commands/runner-queue.js +189 -0
  91. package/src/commands/runner-run.js +129 -0
  92. package/src/commands/runtime.js +47 -1
  93. package/src/commands/sandbox.js +37 -0
  94. package/src/commands/self-implement-loop.js +256 -0
  95. package/src/commands/session-guard.js +218 -0
  96. package/src/commands/setup-context.js +22 -2
  97. package/src/commands/setup.js +178 -0
  98. package/src/commands/sizing.js +165 -0
  99. package/src/commands/skill.js +144 -32
  100. package/src/commands/spec-checkpoint.js +177 -0
  101. package/src/commands/spec-status.js +79 -0
  102. package/src/commands/spec-sync.js +190 -0
  103. package/src/commands/spec-tasks.js +288 -0
  104. package/src/commands/squad-autorun.js +1220 -0
  105. package/src/commands/squad-bus.js +217 -0
  106. package/src/commands/squad-card.js +149 -0
  107. package/src/commands/squad-daemon.js +134 -0
  108. package/src/commands/squad-dependency-graph.js +164 -0
  109. package/src/commands/squad-review.js +106 -0
  110. package/src/commands/squad-scaffold.js +55 -0
  111. package/src/commands/squad-tool-register.js +157 -0
  112. package/src/commands/state-save.js +122 -0
  113. package/src/commands/tool-registry-cmd.js +232 -0
  114. package/src/commands/update.js +9 -0
  115. package/src/commands/verify-gate.js +572 -0
  116. package/src/commands/workflow-execute.js +241 -0
  117. package/src/constants.js +18 -0
  118. package/src/context-cache.js +159 -0
  119. package/src/context-search.js +326 -0
  120. package/src/design-variation-catalog.js +503 -0
  121. package/src/i18n/messages/en.js +32 -2
  122. package/src/i18n/messages/es.js +30 -2
  123. package/src/i18n/messages/fr.js +30 -2
  124. package/src/i18n/messages/pt-BR.js +32 -2
  125. package/src/install-animation.js +260 -0
  126. package/src/install-profile.js +143 -0
  127. package/src/install-wizard.js +475 -0
  128. package/src/installer.js +44 -10
  129. package/src/lib/health-check.js +158 -0
  130. package/src/lib/hook-protocol.js +76 -0
  131. package/src/mcp/apps/squad-dashboard/app.js +163 -0
  132. package/src/mcp/apps/squad-dashboard/index.html +261 -0
  133. package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
  134. package/src/mcp/resources/squad-state.js +130 -0
  135. package/src/parser.js +7 -1
  136. package/src/preflight-engine.js +443 -0
  137. package/src/recovery-context-session.js +154 -0
  138. package/src/runner/cascade.js +97 -0
  139. package/src/runner/cli-launcher.js +109 -0
  140. package/src/runner/plan-importer.js +63 -0
  141. package/src/runner/queue-store.js +159 -0
  142. package/src/runtime-store.js +158 -4
  143. package/src/sandbox.js +177 -0
  144. package/src/squad/agent-teams-adapter.js +264 -0
  145. package/src/squad/brief-validator.js +350 -0
  146. package/src/squad/bus-bridge.js +140 -0
  147. package/src/squad/context-compactor.js +265 -0
  148. package/src/squad/cross-ai-synthesizer.js +250 -0
  149. package/src/squad/hooks-generator.js +196 -0
  150. package/src/squad/inter-squad-events.js +175 -0
  151. package/src/squad/intra-bus.js +345 -0
  152. package/src/squad/learning-extractor.js +213 -0
  153. package/src/squad/pattern-detector.js +365 -0
  154. package/src/squad/preflight-context.js +296 -0
  155. package/src/squad/recovery-context.js +242 -71
  156. package/src/squad/reflection.js +365 -0
  157. package/src/squad/squad-scaffold.js +177 -0
  158. package/src/squad/state-manager.js +310 -0
  159. package/src/squad/task-decomposer.js +652 -0
  160. package/src/squad/verify-gate.js +303 -0
  161. package/src/tool-executor.js +94 -0
  162. package/src/updater.js +10 -3
  163. package/src/worker-runner.js +186 -1
  164. package/template/.aioson/agents/analyst.md +119 -3
  165. package/template/.aioson/agents/architect.md +98 -0
  166. package/template/.aioson/agents/design-hybrid-forge.md +141 -0
  167. package/template/.aioson/agents/dev.md +335 -14
  168. package/template/.aioson/agents/deyvin.md +117 -2
  169. package/template/.aioson/agents/discovery-design-doc.md +44 -0
  170. package/template/.aioson/agents/genome.md +14 -0
  171. package/template/.aioson/agents/neo.md +78 -1
  172. package/template/.aioson/agents/orache.md +50 -4
  173. package/template/.aioson/agents/orchestrator.md +197 -1
  174. package/template/.aioson/agents/pm.md +93 -0
  175. package/template/.aioson/agents/product.md +77 -4
  176. package/template/.aioson/agents/profiler-enricher.md +14 -0
  177. package/template/.aioson/agents/profiler-forge.md +14 -0
  178. package/template/.aioson/agents/profiler-researcher.md +14 -0
  179. package/template/.aioson/agents/qa.md +249 -19
  180. package/template/.aioson/agents/setup.md +144 -12
  181. package/template/.aioson/agents/sheldon.md +237 -11
  182. package/template/.aioson/agents/site-forge.md +1753 -0
  183. package/template/.aioson/agents/squad.md +162 -0
  184. package/template/.aioson/agents/tester.md +209 -0
  185. package/template/.aioson/agents/ux-ui.md +34 -1
  186. package/template/.aioson/brains/README.md +128 -0
  187. package/template/.aioson/brains/_index.json +16 -0
  188. package/template/.aioson/brains/scripts/query.js +103 -0
  189. package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
  190. package/template/.aioson/config.md +158 -13
  191. package/template/.aioson/constitution.md +33 -0
  192. package/template/.aioson/context/forensics/.gitkeep +0 -0
  193. package/template/.aioson/context/project-pulse.md +34 -0
  194. package/template/.aioson/context/seeds/seed-example.md +27 -0
  195. package/template/.aioson/context/user-profile.md +42 -0
  196. package/template/.aioson/docs/LAYERS.md +79 -0
  197. package/template/.aioson/docs/README.md +76 -0
  198. package/template/.aioson/docs/example-external-api-context.md +72 -0
  199. package/template/.aioson/locales/en/agents/architect.md +17 -0
  200. package/template/.aioson/locales/en/agents/dev.md +79 -13
  201. package/template/.aioson/locales/en/agents/orache.md +6 -0
  202. package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
  203. package/template/.aioson/locales/en/agents/product.md +50 -0
  204. package/template/.aioson/locales/en/agents/setup.md +33 -1
  205. package/template/.aioson/locales/en/agents/sheldon.md +115 -0
  206. package/template/.aioson/locales/en/agents/squad.md +14 -0
  207. package/template/.aioson/locales/en/agents/tester.md +6 -0
  208. package/template/.aioson/locales/es/agents/analyst.md +2 -0
  209. package/template/.aioson/locales/es/agents/architect.md +19 -0
  210. package/template/.aioson/locales/es/agents/dev.md +64 -4
  211. package/template/.aioson/locales/es/agents/deyvin.md +2 -0
  212. package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
  213. package/template/.aioson/locales/es/agents/genome.md +2 -0
  214. package/template/.aioson/locales/es/agents/neo.md +2 -0
  215. package/template/.aioson/locales/es/agents/orache.md +2 -0
  216. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  217. package/template/.aioson/locales/es/agents/pair.md +2 -0
  218. package/template/.aioson/locales/es/agents/pm.md +2 -0
  219. package/template/.aioson/locales/es/agents/product.md +52 -0
  220. package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
  221. package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
  222. package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
  223. package/template/.aioson/locales/es/agents/qa.md +2 -0
  224. package/template/.aioson/locales/es/agents/setup.md +35 -1
  225. package/template/.aioson/locales/es/agents/sheldon.md +117 -0
  226. package/template/.aioson/locales/es/agents/squad.md +16 -0
  227. package/template/.aioson/locales/es/agents/tester.md +9 -0
  228. package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
  229. package/template/.aioson/locales/fr/agents/analyst.md +2 -0
  230. package/template/.aioson/locales/fr/agents/architect.md +19 -0
  231. package/template/.aioson/locales/fr/agents/dev.md +64 -4
  232. package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
  233. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
  234. package/template/.aioson/locales/fr/agents/genome.md +2 -0
  235. package/template/.aioson/locales/fr/agents/neo.md +2 -0
  236. package/template/.aioson/locales/fr/agents/orache.md +2 -0
  237. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  238. package/template/.aioson/locales/fr/agents/pair.md +2 -0
  239. package/template/.aioson/locales/fr/agents/pm.md +2 -0
  240. package/template/.aioson/locales/fr/agents/product.md +52 -0
  241. package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
  242. package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
  243. package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
  244. package/template/.aioson/locales/fr/agents/qa.md +2 -0
  245. package/template/.aioson/locales/fr/agents/setup.md +35 -1
  246. package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
  247. package/template/.aioson/locales/fr/agents/squad.md +16 -0
  248. package/template/.aioson/locales/fr/agents/tester.md +9 -0
  249. package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
  250. package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
  251. package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
  252. package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
  253. package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
  254. package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
  255. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
  256. package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
  257. package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
  258. package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
  259. package/template/.aioson/locales/pt-BR/agents/setup.md +134 -19
  260. package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
  261. package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
  262. package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
  263. package/template/.aioson/rules/README.md +69 -0
  264. package/template/.aioson/rules/data-format-convention.md +136 -0
  265. package/template/.aioson/rules/example-monetary-values.md +30 -0
  266. package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
  267. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
  268. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
  269. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
  270. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
  271. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
  272. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
  273. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
  274. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
  275. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
  276. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
  277. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
  278. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
  279. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
  280. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
  281. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
  282. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
  283. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
  284. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
  285. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
  286. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
  287. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
  288. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
  289. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
  290. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
  291. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
  292. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
  293. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
  294. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
  295. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
  296. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
  297. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
  298. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +46 -0
  299. package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
  300. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
  301. package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
  302. package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
  303. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
  304. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
  305. package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
  306. package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
  307. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +101 -0
  308. package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
  309. package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
  310. package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
  311. package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
  312. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +147 -0
  313. package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
  314. package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
  315. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +306 -0
  316. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +149 -0
  317. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +208 -0
  318. package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
  319. package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
  320. package/template/.aioson/skills/static/context-budget-guide.md +46 -0
  321. package/template/.aioson/skills/static/harness-sensors.md +74 -0
  322. package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
  323. package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
  324. package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
  325. package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
  326. package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
  327. package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
  328. package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
  329. package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
  330. package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
  331. package/template/.aioson/skills/static/threejs-patterns.md +929 -0
  332. package/template/.aioson/skills/static/web-research-cache.md +112 -0
  333. package/template/.aioson/tasks/implementation-plan.md +21 -1
  334. package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
  335. package/template/.claude/commands/aioson/agent/orache.md +5 -0
  336. package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
  337. package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
  338. package/template/AGENTS.md +75 -1
  339. package/template/CLAUDE.md +31 -0
  340. package/template/OPENCODE.md +4 -0
  341. package/template/researchs/.gitkeep +0 -0
@@ -0,0 +1,585 @@
1
+ # Design Tokens — Aurora Command UI
2
+
3
+ This is the source of truth for all CSS custom properties. Apply shared tokens on `:root`, theme-specific tokens on `[data-theme]`. Never hardcode values in components.
4
+
5
+ ---
6
+
7
+ ## Typography strategy
8
+
9
+ Default to **system fonts** first. Add Google Fonts when the agent determines the stack and context justifies them.
10
+
11
+ **System font stack (default — works everywhere, no CDN needed):**
12
+ ```css
13
+ --font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
14
+ --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
15
+ --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
16
+ ```
17
+
18
+ **Google Fonts (optional — use when building a polished product explicitly):**
19
+ ```css
20
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');
21
+
22
+ --font-display: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
23
+ --font-body: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
24
+ --font-mono: 'JetBrains Mono', ui-monospace, monospace;
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Complete CSS Variables
30
+
31
+ Include this full block in every Aurora Command project.
32
+
33
+ ```css
34
+ /* ═══════════════════════════════════════════
35
+ SHARED TOKENS — :root (non-theme-specific)
36
+ ═══════════════════════════════════════════ */
37
+ :root {
38
+ /* Typography */
39
+ --font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
40
+ --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
41
+ --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
42
+
43
+ /* Font Sizes */
44
+ --text-xs: 0.72rem; /* 11.5px — mono labels, micro badges */
45
+ --text-sm: 0.82rem; /* 13px */
46
+ --text-base: 0.95rem; /* 15px — default body */
47
+ --text-lg: 1rem; /* 16px */
48
+ --text-xl: 1.25rem; /* 20px */
49
+ --text-2xl: 1.6rem; /* 25.6px */
50
+ --text-3xl: 2.2rem; /* 35px */
51
+ --text-4xl: 3rem; /* 48px — stat numbers */
52
+ --text-5xl: 4rem; /* 64px — hero headings */
53
+
54
+ /* Font Weights */
55
+ --weight-light: 300;
56
+ --weight-normal: 400;
57
+ --weight-medium: 500;
58
+ --weight-semibold: 600;
59
+ --weight-bold: 700;
60
+ --weight-black: 800;
61
+
62
+ /* Letter Spacing */
63
+ --tracking-tight: -0.025em;
64
+ --tracking-normal: 0;
65
+ --tracking-wide: 0.04em;
66
+ --tracking-wider: 0.08em;
67
+ --tracking-widest: 0.12em;
68
+
69
+ /* Line Height */
70
+ --leading-none: 1;
71
+ --leading-tight: 1.08;
72
+ --leading-snug: 1.24;
73
+ --leading-normal: 1.5;
74
+ --leading-relaxed: 1.68;
75
+
76
+ /* Spacing */
77
+ --space-0: 0;
78
+ --space-1: 0.25rem; /* 4px */
79
+ --space-2: 0.5rem; /* 8px */
80
+ --space-3: 0.75rem; /* 12px */
81
+ --space-4: 1rem; /* 16px */
82
+ --space-5: 1.25rem; /* 20px */
83
+ --space-6: 1.5rem; /* 24px */
84
+ --space-8: 2rem; /* 32px */
85
+ --space-10: 2.5rem; /* 40px */
86
+ --space-12: 3rem; /* 48px */
87
+ --space-16: 4rem; /* 64px */
88
+ --space-20: 5rem; /* 80px */
89
+ --space-24: 6rem; /* 96px */
90
+ --space-32: 8rem; /* 128px — hero sections */
91
+
92
+ /* Border Radius */
93
+ --radius-sm: 0.375rem; /* 6px — badges, chips */
94
+ --radius-md: 0.625rem; /* 10px — inputs, buttons */
95
+ --radius-lg: 0.875rem; /* 14px — small cards */
96
+ --radius-xl: 1.125rem; /* 18px — standard glass cards */
97
+ --radius-2xl: 1.5rem; /* 24px — large glass cards */
98
+ --radius-3xl: 2rem; /* 32px — hero glass cards */
99
+ --radius-full: 9999px; /* pills, avatars, toggles */
100
+
101
+ /* Interactive element heights */
102
+ --control-xs: 1.75rem; /* 28px — compact chips */
103
+ --control-sm: 2rem; /* 32px — compact controls */
104
+ --control-md: 2.5rem; /* 40px — standard inputs */
105
+ --control-lg: 2.75rem; /* 44px — primary buttons */
106
+
107
+ /* Layout */
108
+ --sidebar-width: 210px;
109
+ --content-sm: 480px;
110
+ --content-md: 640px;
111
+ --content-lg: 800px;
112
+ --content-xl: 1024px;
113
+ --content-max: 1280px;
114
+ --nav-height: 60px;
115
+ --nav-height-web: 68px;
116
+
117
+ /* Transitions */
118
+ --transition-fast: 140ms ease;
119
+ --transition-base: 200ms ease;
120
+ --transition-slow: 300ms cubic-bezier(0.16, 1, 0.3, 1);
121
+ --transition-glass: backdrop-filter 300ms ease, background 300ms ease, border-color 300ms ease, box-shadow 300ms ease;
122
+ --transition-hero: 600ms cubic-bezier(0.16, 1, 0.3, 1);
123
+ --transition-theme: background 240ms ease, color 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
124
+
125
+ /* Focus */
126
+ --focus-ring-width: 2px;
127
+ --focus-ring-offset: 2px;
128
+
129
+ /* Z-index */
130
+ --z-base: 0;
131
+ --z-elevated: 10;
132
+ --z-dropdown: 20;
133
+ --z-sticky: 30;
134
+ --z-modal: 50;
135
+ --z-toast: 60;
136
+ }
137
+
138
+ /* ═══════════════════════════════════════════
139
+ DARK THEME (default)
140
+ ═══════════════════════════════════════════ */
141
+ [data-theme="dark"] {
142
+ /* ── Aurora Substrate ── */
143
+ --bg-void: #040609;
144
+ --bg-base: #060910;
145
+ --bg-gradient: linear-gradient(135deg, #060910 0%, #0A0818 30%, #060C1A 70%, #08060F 100%);
146
+
147
+ /* ── Dark Glass Surfaces ── */
148
+ /* These are DARK TINTED — aurora shows through, not bright/white */
149
+ --glass-shell: rgba(8, 12, 22, 0.75); /* top bar, sidebar */
150
+ --glass-surface: rgba(10, 14, 26, 0.65); /* standard cards */
151
+ --glass-elevated: rgba(14, 20, 36, 0.75); /* hover, nested cards */
152
+ --glass-overlay: rgba(6, 10, 18, 0.85); /* modals, drawers */
153
+
154
+ /* ── Glass System Tokens ── */
155
+ --glass-border: rgba(255, 255, 255, 0.10);
156
+ --glass-border-strong: rgba(255, 255, 255, 0.18);
157
+ --glass-border-accent: rgba(0, 200, 232, 0.30);
158
+ --glass-highlight: linear-gradient(180deg, rgba(255,255,255,0.07) 0%, transparent 50%);
159
+
160
+ /* Fallback (when backdrop-filter is unsupported) */
161
+ --glass-fallback: rgba(8, 12, 22, 0.95);
162
+
163
+ /* ── Blur Levels ── */
164
+ --glass-blur-sm: blur(8px); /* working surfaces, dense data panels */
165
+ --glass-blur-md: blur(16px); /* standard glass cards */
166
+ --glass-blur-lg: blur(24px); /* sidebar, top bar, elevated modals */
167
+ --glass-blur-xl: blur(40px); /* decorative orbs, extreme blur elements */
168
+
169
+ /* ── Accents ── */
170
+ --accent-primary: #00C8E8; /* teal-electric — operational, active states */
171
+ --accent-violet: #7C3AED; /* violet — highlights, CTAs */
172
+ --accent-gradient: linear-gradient(135deg, #00C8E8, #7C3AED);
173
+ --accent-primary-dim: rgba(0, 200, 232, 0.15);
174
+ --accent-violet-dim: rgba(124, 58, 237, 0.15);
175
+ --accent-glow: rgba(0, 200, 232, 0.12);
176
+ --accent-violet-glow: rgba(124, 58, 237, 0.18);
177
+ --accent-contrast: #04090F; /* text on accent background */
178
+
179
+ /* ── Text ── */
180
+ --text-heading: #F0F4FA;
181
+ --text-primary: #C8D4E8;
182
+ --text-secondary: #8898B0;
183
+ --text-muted: #556070;
184
+ --text-accent: #00C8E8;
185
+ --text-inverse: #04090F;
186
+
187
+ /* ── Semantic Colors ── */
188
+ --semantic-green: #00D68F;
189
+ --semantic-green-dim: rgba(0, 214, 143, 0.15);
190
+ --semantic-amber: #F4A91D;
191
+ --semantic-amber-dim: rgba(244, 169, 29, 0.15);
192
+ --semantic-red: #FF5A67;
193
+ --semantic-red-dim: rgba(255, 90, 103, 0.15);
194
+ --semantic-purple: #A78BFA;
195
+ --semantic-purple-dim: rgba(167, 139, 250, 0.15);
196
+ --semantic-blue: #38BDF8;
197
+ --semantic-blue-dim: rgba(56, 189, 248, 0.15);
198
+
199
+ /* ── Shadows — teal-electric tinted ── */
200
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.30);
201
+ --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.40);
202
+ --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.50);
203
+ --shadow-glow: 0 0 30px rgba(0, 200, 232, 0.12), 0 8px 24px rgba(0, 0, 0, 0.40);
204
+ --shadow-glow-strong: 0 0 50px rgba(0, 200, 232, 0.22), 0 0 20px rgba(0, 200, 232, 0.12);
205
+ --shadow-violet-glow: 0 0 30px rgba(124, 58, 237, 0.20), 0 8px 24px rgba(0, 0, 0, 0.40);
206
+ --shadow-inner: inset 0 1px 0 rgba(255, 255, 255, 0.07);
207
+
208
+ /* ── Borders (non-glass elements) ── */
209
+ --border-subtle: rgba(255, 255, 255, 0.06);
210
+ --border-medium: rgba(255, 255, 255, 0.10);
211
+ --border-strong: rgba(255, 255, 255, 0.16);
212
+ --border-accent: rgba(0, 200, 232, 0.26);
213
+ --border-accent-strong: rgba(0, 200, 232, 0.50);
214
+
215
+ /* Scrollbar */
216
+ --scrollbar-track: #060910;
217
+ --scrollbar-thumb: rgba(14, 20, 36, 0.90);
218
+ }
219
+
220
+ /* ═══════════════════════════════════════════
221
+ LIGHT THEME (soft aurora — lavender-gray)
222
+ ═══════════════════════════════════════════ */
223
+ [data-theme="light"] {
224
+ /* ── Light Aurora Substrate ── */
225
+ --bg-void: #E5E4EF;
226
+ --bg-base: #EDEEF6;
227
+ --bg-gradient: linear-gradient(135deg, #EDEEF6 0%, #E0DFEF 30%, #D8DEF0 70%, #EAE6F2 100%);
228
+
229
+ /* ── White Glass Surfaces ── */
230
+ --glass-shell: rgba(255, 255, 255, 0.70);
231
+ --glass-surface: rgba(255, 255, 255, 0.60);
232
+ --glass-elevated: rgba(255, 255, 255, 0.80);
233
+ --glass-overlay: rgba(255, 255, 255, 0.40);
234
+
235
+ --glass-border: rgba(255, 255, 255, 0.50);
236
+ --glass-border-strong: rgba(255, 255, 255, 0.70);
237
+ --glass-border-accent: rgba(0, 150, 180, 0.30);
238
+ --glass-highlight: linear-gradient(180deg, rgba(255,255,255,0.30) 0%, transparent 50%);
239
+
240
+ --glass-fallback: rgba(255, 255, 255, 0.95);
241
+
242
+ /* Blur levels same as dark */
243
+ --glass-blur-sm: blur(8px);
244
+ --glass-blur-md: blur(16px);
245
+ --glass-blur-lg: blur(24px);
246
+ --glass-blur-xl: blur(40px);
247
+
248
+ /* ── Accents (shifted for light legibility) ── */
249
+ --accent-primary: #0096B0;
250
+ --accent-violet: #6D28D9;
251
+ --accent-gradient: linear-gradient(135deg, #0096B0, #6D28D9);
252
+ --accent-primary-dim: rgba(0, 150, 176, 0.12);
253
+ --accent-violet-dim: rgba(109, 40, 217, 0.10);
254
+ --accent-glow: rgba(0, 150, 176, 0.10);
255
+ --accent-violet-glow: rgba(109, 40, 217, 0.12);
256
+ --accent-contrast: #FFFFFF;
257
+
258
+ /* ── Text ── */
259
+ --text-heading: #0F1520;
260
+ --text-primary: #2A3548;
261
+ --text-secondary: #5A6880;
262
+ --text-muted: #8898A8;
263
+ --text-accent: #0096B0;
264
+ --text-inverse: #FFFFFF;
265
+
266
+ /* ── Semantic Colors ── */
267
+ --semantic-green: #059669;
268
+ --semantic-green-dim: rgba(5, 150, 105, 0.10);
269
+ --semantic-amber: #D97706;
270
+ --semantic-amber-dim: rgba(217, 119, 6, 0.10);
271
+ --semantic-red: #DC2626;
272
+ --semantic-red-dim: rgba(220, 38, 38, 0.10);
273
+ --semantic-purple: #7C3AED;
274
+ --semantic-purple-dim: rgba(124, 58, 237, 0.10);
275
+ --semantic-blue: #2563EB;
276
+ --semantic-blue-dim: rgba(37, 99, 235, 0.10);
277
+
278
+ /* ── Shadows — tinted with light teal ── */
279
+ --shadow-sm: 0 1px 3px rgba(0, 150, 176, 0.06);
280
+ --shadow-md: 0 8px 24px rgba(0, 150, 176, 0.10);
281
+ --shadow-lg: 0 16px 48px rgba(0, 150, 176, 0.14);
282
+ --shadow-glow: 0 0 30px rgba(0, 150, 176, 0.12), 0 8px 24px rgba(15, 21, 32, 0.08);
283
+ --shadow-glow-strong: 0 0 50px rgba(0, 150, 176, 0.20), 0 0 20px rgba(0, 150, 176, 0.10);
284
+ --shadow-violet-glow: 0 0 30px rgba(109, 40, 217, 0.14), 0 8px 24px rgba(15, 21, 32, 0.08);
285
+ --shadow-inner: inset 0 1px 0 rgba(255, 255, 255, 0.50);
286
+
287
+ /* ── Borders ── */
288
+ --border-subtle: rgba(15, 21, 32, 0.07);
289
+ --border-medium: rgba(15, 21, 32, 0.12);
290
+ --border-strong: rgba(15, 21, 32, 0.18);
291
+ --border-accent: rgba(0, 150, 176, 0.22);
292
+ --border-accent-strong: rgba(0, 150, 176, 0.40);
293
+
294
+ /* Scrollbar */
295
+ --scrollbar-track: #EDEEF6;
296
+ --scrollbar-thumb: rgba(200, 210, 230, 0.80);
297
+ }
298
+
299
+ /* ═══════════════════════════════════════════
300
+ BASE STYLES
301
+ ═══════════════════════════════════════════ */
302
+ html, body {
303
+ min-height: 100vh;
304
+ margin: 0;
305
+ -webkit-font-smoothing: antialiased;
306
+ -moz-osx-font-smoothing: grayscale;
307
+ }
308
+
309
+ /* Aurora substrate — must be on the root element */
310
+ body[data-theme], #app[data-theme], .aurora-shell[data-theme] {
311
+ background: var(--bg-gradient);
312
+ background-attachment: fixed;
313
+ font-family: var(--font-body);
314
+ color: var(--text-primary);
315
+ transition: var(--transition-theme);
316
+ }
317
+
318
+ *, *::before, *::after { box-sizing: border-box; }
319
+
320
+ /* Custom scrollbar */
321
+ ::-webkit-scrollbar { width: 6px; height: 6px; }
322
+ ::-webkit-scrollbar-track { background: var(--scrollbar-track); }
323
+ ::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--radius-full); }
324
+ ::-webkit-scrollbar-thumb:hover { background: var(--border-medium); }
325
+ ```
326
+
327
+ ---
328
+
329
+ ## Glass Tokens — Usage Guide
330
+
331
+ ### The three glass levels
332
+
333
+ ```css
334
+ /* Level 1 — Shell (sidebar, top bar) */
335
+ .glass-shell {
336
+ background: var(--glass-shell); /* dark: rgba(8,12,22,0.75) */
337
+ backdrop-filter: var(--glass-blur-lg);
338
+ border-color: var(--glass-border);
339
+ }
340
+
341
+ /* Level 2 — Surface cards (standard content containers) */
342
+ .glass-surface {
343
+ background: var(--glass-surface); /* dark: rgba(10,14,26,0.65) */
344
+ backdrop-filter: var(--glass-blur-md);
345
+ border-color: var(--glass-border);
346
+ }
347
+
348
+ /* Level 3 — Elevated (hover state, nested cards, modals) */
349
+ .glass-elevated {
350
+ background: var(--glass-elevated); /* dark: rgba(14,20,36,0.75) */
351
+ backdrop-filter: var(--glass-blur-md);
352
+ border-color: var(--glass-border-strong);
353
+ }
354
+ ```
355
+
356
+ ### Mandatory @supports fallback
357
+
358
+ Every glass surface must have a fallback for browsers that do not support `backdrop-filter`:
359
+
360
+ ```css
361
+ .glass-card {
362
+ background: var(--glass-fallback); /* solid fallback */
363
+ }
364
+
365
+ @supports (backdrop-filter: blur(1px)) {
366
+ .glass-card {
367
+ background: var(--glass-surface);
368
+ backdrop-filter: var(--glass-blur-md);
369
+ }
370
+ }
371
+ ```
372
+
373
+ ### Top reflection pseudo-element
374
+
375
+ Every glass card must have the `::before` reflection. This is what makes the glass feel real.
376
+
377
+ ```css
378
+ .glass-card {
379
+ position: relative;
380
+ overflow: hidden;
381
+ }
382
+ .glass-card::before {
383
+ content: '';
384
+ position: absolute;
385
+ top: 0; left: 0; right: 0;
386
+ height: 50%;
387
+ background: var(--glass-highlight);
388
+ pointer-events: none;
389
+ border-radius: inherit;
390
+ }
391
+ ```
392
+
393
+ ---
394
+
395
+ ## Typography Patterns
396
+
397
+ ### Mono Rail — the command spine
398
+
399
+ The most distinctive element of this skill. Use it exclusively for section headers, stat labels, metadata rails, IDs, and timestamps.
400
+
401
+ ```css
402
+ .mono-rail {
403
+ font-family: var(--font-mono);
404
+ font-size: var(--text-xs);
405
+ font-weight: var(--weight-semibold);
406
+ letter-spacing: var(--tracking-widest);
407
+ text-transform: uppercase;
408
+ color: var(--text-muted);
409
+ }
410
+ ```
411
+
412
+ **Do not overuse** — if every text element is uppercase mono, the command rails lose their authority.
413
+
414
+ ### Display Heading
415
+
416
+ ```css
417
+ .display-heading {
418
+ font-family: var(--font-display);
419
+ font-weight: var(--weight-bold);
420
+ letter-spacing: var(--tracking-tight);
421
+ line-height: var(--leading-tight);
422
+ color: var(--text-heading);
423
+ }
424
+ /* Sizes: --text-5xl (hero) · --text-3xl (page title) · --text-2xl (section) · --text-xl (card title) */
425
+ ```
426
+
427
+ ### Stat Number (standard)
428
+
429
+ ```css
430
+ .stat-number {
431
+ font-family: var(--font-display);
432
+ font-size: var(--text-4xl);
433
+ font-weight: var(--weight-bold);
434
+ line-height: var(--leading-none);
435
+ color: var(--text-heading);
436
+ font-variant-numeric: tabular-nums;
437
+ font-feature-settings: "tnum" 1;
438
+ }
439
+ ```
440
+
441
+ ### Gradient Stat Number (hero metric only)
442
+
443
+ Use for the single most important metric on the page — not all stats.
444
+
445
+ ```css
446
+ .stat-number--gradient {
447
+ background: var(--accent-gradient);
448
+ -webkit-background-clip: text;
449
+ -webkit-text-fill-color: transparent;
450
+ background-clip: text;
451
+ font-size: var(--text-4xl);
452
+ font-weight: var(--weight-bold);
453
+ line-height: var(--leading-none);
454
+ font-variant-numeric: tabular-nums;
455
+ }
456
+ ```
457
+
458
+ ### Body Text
459
+
460
+ ```css
461
+ .body-text {
462
+ font-family: var(--font-body);
463
+ font-size: var(--text-base);
464
+ font-weight: var(--weight-normal);
465
+ line-height: var(--leading-relaxed);
466
+ color: var(--text-primary);
467
+ }
468
+ ```
469
+
470
+ ---
471
+
472
+ ## Token Scope Guardrails
473
+
474
+ **Rule 1:** Typography, spacing, radius, and transition tokens belong in `:root` — NOT in `[data-theme]`.
475
+
476
+ **Rule 2:** Theme-specific colors and glass surfaces belong in `[data-theme]`.
477
+
478
+ **Rule 3:** If `body` consumes `var(--font-body)`, that variable must exist in `:root` or a scope `body` inherits.
479
+
480
+ **Rule 4:** If the theme lives on a container (`.shell[data-theme]`), either keep typography in `:root`, or apply `font-family` directly on that shell element.
481
+
482
+ **Unsafe (font breaks silently):**
483
+ ```css
484
+ /* WRONG — body cannot inherit from .shell */
485
+ .shell[data-theme="dark"] { --font-body: 'Inter', sans-serif; }
486
+ body { font-family: var(--font-body); }
487
+ ```
488
+
489
+ **Safe:**
490
+ ```css
491
+ :root { --font-body: 'Inter', system-ui, sans-serif; }
492
+ body { font-family: var(--font-body); }
493
+ .shell[data-theme="dark"] { --bg-base: #060910; }
494
+ ```
495
+
496
+ ---
497
+
498
+ ## Compact Density Scale
499
+
500
+ For dashboards, admin panels, settings, and any dense operational UI.
501
+
502
+ ### Card container scale
503
+
504
+ | Level | Use | Padding | Border Radius |
505
+ |---|---|---|---|
506
+ | L1 — page glass card | top-level section | `var(--space-5)` | `var(--radius-xl)` (18px) |
507
+ | L2 — nested glass card | card inside a card | `var(--space-4)` | `var(--radius-lg)` (14px) |
508
+ | L3 — inset block | disclosure body, info block | `10px` | `var(--radius-md)` (10px) |
509
+
510
+ Between L1 cards: `gap: var(--space-3)` (not `--space-6`).
511
+
512
+ ### Form controls — operational context
513
+
514
+ ```
515
+ Input : px-3 py-2 text-xs border-radius: var(--radius-md) (~32px height)
516
+ Select : px-3 py-2 text-xs border-radius: var(--radius-md)
517
+ Label : font-mono text-[0.65rem] mb: var(--space-1)
518
+ Button : px-3 py-2 text-xs border-radius: var(--radius-md)
519
+ ```
520
+
521
+ ### Badges — compact
522
+
523
+ ```
524
+ Status : px-2 py-0.5 text-[0.6rem] rounded-full
525
+ Tag : px-2 py-0.5 text-[0.58rem] rounded-full
526
+ ```
527
+
528
+ ### List rows
529
+
530
+ ```
531
+ Row padding : py-2 (8px) — not py-3 or py-4
532
+ Row gap : gap-2.5 (10px)
533
+ ```
534
+
535
+ ---
536
+
537
+ ## Chart Palette
538
+
539
+ Consistent chart colors across all dashboards:
540
+
541
+ ```css
542
+ --chart-1: var(--accent-primary); /* #00C8E8 teal — primary series */
543
+ --chart-2: var(--accent-violet); /* #7C3AED violet — secondary series */
544
+ --chart-3: var(--semantic-green); /* #00D68F emerald — positive metric */
545
+ --chart-4: var(--semantic-amber); /* #F4A91D amber — warning/neutral */
546
+ --chart-5: var(--semantic-purple); /* #A78BFA purple — tertiary series */
547
+ --chart-6: var(--semantic-blue); /* #38BDF8 blue — informational */
548
+
549
+ /* Area/gradient chart fills */
550
+ --chart-fill-1: linear-gradient(180deg, rgba(0, 200, 232, 0.25) 0%, rgba(0, 200, 232, 0) 100%);
551
+ --chart-fill-2: linear-gradient(180deg, rgba(124, 58, 237, 0.20) 0%, rgba(124, 58, 237, 0) 100%);
552
+ --chart-fill-3: linear-gradient(180deg, rgba(0, 214, 143, 0.20) 0%, rgba(0, 214, 143, 0) 100%);
553
+ --chart-fill-4: linear-gradient(180deg, rgba(244, 169, 29, 0.20) 0%, rgba(244, 169, 29, 0) 100%);
554
+ ```
555
+
556
+ Chart rules:
557
+ - Area charts: always gradient fill (top color → transparent), never solid fill. The fade reveals the glass panel below.
558
+ - Grid lines: `rgba(255,255,255,0.06)` on dark, `rgba(0,0,0,0.06)` on light.
559
+ - Tooltips: glass card (glass-surface + blur-sm + luminous border) — never a solid white box.
560
+ - Axis labels: `var(--text-muted)`, `var(--text-xs)`.
561
+
562
+ ---
563
+
564
+ ## Interaction Guardrails
565
+
566
+ 1. Primary actions on accent backgrounds must use `var(--accent-contrast)`.
567
+ 2. Hover states must preserve or improve text contrast — never reduce it.
568
+ 3. Focus styles must be visible on both themes: `outline: var(--focus-ring-width) solid var(--accent-primary)` with `outline-offset: var(--focus-ring-offset)`.
569
+ 4. Glass hover: `var(--glass-surface)` → `var(--glass-elevated)`, `200ms`.
570
+ 5. One accent gradient family and two neutral text tiers — do not add decorative colors.
571
+
572
+ ---
573
+
574
+ ## Non-Negotiable Rules
575
+
576
+ 1. Aurora gradient substrate is mandatory. Never place glass panels over a solid background.
577
+ 2. Dark glass opacity must reveal the aurora — keep alpha at or below 0.75.
578
+ 3. Use the token system — never freestyle hex values.
579
+ 4. Teal-electric and violet are the only accents — never introduce a third accent color.
580
+ 5. Mono labels are structural rails — use them for section headers, stat labels, and metadata only.
581
+ 6. Always include `@supports (backdrop-filter: blur(1px))` fallback for every glass surface.
582
+ 7. One gradient stat number per viewport (the hero metric). Do not gradient-text all stats.
583
+ 8. Compact density for operational UI — never carry marketing spacing into dense dashboards.
584
+ 9. Shadows must be tinted with `rgba(0,200,232,...)` — never solid black shadows.
585
+ 10. Every glass card must pass WCAG AA for body text over its dark glass surface.