@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,159 @@
1
+ # Art Direction — Glassmorphism UI
2
+
3
+ Read this file for any page-level work where differentiation matters: apps, dashboards, landing pages, and major flows.
4
+
5
+ This file exists to stop Glassmorphism UI from collapsing into the same "blur everything and call it done" result every time.
6
+
7
+ The glass system stays coherent, but the expression must change with the product, the user, and the dominant task.
8
+
9
+ ---
10
+
11
+ ## Core Rule
12
+
13
+ **Same glass system, different expressions.**
14
+
15
+ Keep the Glassmorphism DNA:
16
+ - gradient background substrate (always)
17
+ - backdrop-filter blur as structural depth
18
+ - luminous borders (rgba white)
19
+ - violet-blue accent with colored shadows
20
+ - desaturated, luminous palette
21
+
22
+ But do **not** keep the exact same card grid, blur intensity, gradient colors, or sidebar composition from product to product.
23
+
24
+ ---
25
+
26
+ ## Mandatory Pre-Build Outputs
27
+
28
+ Before designing a full page, produce all of these:
29
+
30
+ 1. **Human**
31
+ The real person using this page right now.
32
+
33
+ 2. **Main action**
34
+ The one decision, action, or question that matters most on this screen.
35
+
36
+ 3. **Felt quality**
37
+ Concrete words such as `immersive`, `premium`, `fluid`, `calm`, `sophisticated`, `focused`, `alive`, `trustworthy`.
38
+ Never use empty labels like `modern`, `glassmorphic`, or `beautiful`.
39
+
40
+ 4. **Domain vocabulary**
41
+ At least 5 concepts from the product's world.
42
+ Example for fintech: `portfolio`, `allocation`, `yield`, `position`, `rebalance`.
43
+
44
+ 5. **Material world**
45
+ At least 5 tones or materials that belong to that product world.
46
+ Example for crypto: deep space navy, aurora violet glow, crystalline white, signal green, amber alert.
47
+
48
+ 6. **Defaults to avoid**
49
+ Name 3 obvious glass UI choices that would make the result generic.
50
+ Example: purple gradient background on everything, neon glow borders, glass card with no content hierarchy.
51
+
52
+ 7. **Signature move**
53
+ One memorable glass detail that appears in at least 5 places on the page.
54
+ Example: "stat numbers with accent-gradient text, repeated in hero, chart labels, and metric badges."
55
+
56
+ If you cannot produce these seven, you are not ready to compose the page.
57
+
58
+ ---
59
+
60
+ ## Expression Modes
61
+
62
+ Choose **one primary mode** per screen. You may borrow a small amount from a secondary mode only after the main expression is clear.
63
+
64
+ ### 1. Crystal Dashboard
65
+ - **For**: fintech, crypto, investment portfolios, modern analytics
66
+ - **Feel**: premium, trustworthy, sophisticated, modern
67
+ - **Composition**: gradient background → glass stat cards floating → charts with gradient fills → translucent sidebar
68
+ - **Visual cues**: strong backdrop-blur (20px+), luminous borders, large numbers in cards with transparent background, gradient fills in chart areas
69
+ - **Signature ideas**: glass stat cards with inner glow on hover; chart area fill matches background gradient hue; glass sidebar showing gradient behind it
70
+ - **Blur level**: `blur-md` (16px) for cards, `blur-lg` (24px) for sidebar
71
+
72
+ ### 2. Floating Mobile
73
+ - **For**: mobile apps, PWAs, iOS-style interfaces, media players
74
+ - **Feel**: modern, fluid, polished, delightful
75
+ - **Composition**: cards floating over gradient background, glass bottom sheet, floating action buttons, translucent tab bar
76
+ - **Visual cues**: very rounded corners (radius-2xl+), glass bottom sheets revealing blurred content behind, inset shadows on cards, icon backgrounds with blur
77
+ - **Signature ideas**: bottom sheet revealing glass blur of content underneath; swipeable glass cards; glass tab bar matching iOS Control Center vibe
78
+ - **Blur level**: `blur-sm` (8px) for performance on mobile, `blur-md` (16px) for key surfaces
79
+
80
+ ### 3. Aurora Landing
81
+ - **For**: product launches, fintech marketing, modern SaaS marketing, crypto projects
82
+ - **Feel**: futuristic, elegant, immersive, aspirational
83
+ - **Composition**: hero with aurora gradient background (mesh of 2-3 pastel colors), floating glass feature cards, social proof in glass strip
84
+ - **Visual cues**: aurora mesh gradient background (color-shifting blobs), glass hero card, floating product screenshots in glass frame, decorative gradient orbs
85
+ - **Signature ideas**: animated aurora background with slow color shift; glass pricing cards with luminous highlight on featured; glass navigation becoming more opaque on scroll
86
+ - **Blur level**: `blur-lg` (24px) for hero card, `blur-md` (16px) for feature cards, `blur-xl` (40px) for background blobs
87
+
88
+ ### 4. Media Player
89
+ - **For**: music apps, video platforms, podcast players, streaming dashboards
90
+ - **Feel**: immersive, atmospheric, contextual, alive
91
+ - **Composition**: background is album art with extreme blur, controls over glass surfaces, playlist in glass sidebar, now-playing as central glass card
92
+ - **Visual cues**: background adapts to dominant color of current media (color extraction), extreme blur (40px+), glass controls and buttons, progress bar over glass strip
93
+ - **Signature ideas**: background color changes based on current media (smooth transition); glass now-playing card with album art reflection effect; volume and progress controls with glass knobs
94
+ - **Blur level**: `blur-xl` (40px) for media background, `blur-lg` (24px) for player card, `blur-md` (16px) for playlist
95
+
96
+ ### 5. Zen Workspace
97
+ - **For**: note-taking, writing tools, meditation apps, wellness dashboards
98
+ - **Feel**: calm, focused, clean, serene
99
+ - **Composition**: very subtle gradient background (almost solid), minimal glass cards, generous whitespace, clean typography
100
+ - **Visual cues**: light blur (8-12px), almost invisible borders, ultra-subtle gradients, thin/line iconography
101
+ - **Signature ideas**: focus mode where glass cards dim everything except the active card; soft ambient background with breathing opacity shift (very slow); glass toolbar that disappears during writing
102
+ - **Blur level**: `blur-sm` (8px) throughout — restraint is the signature
103
+
104
+ ---
105
+
106
+ ## Signature Library
107
+
108
+ These details are immediately available for any glass composition. Pick at least 2 per screen.
109
+
110
+ | Detail | Usage |
111
+ |--------|-------|
112
+ | Gradient text on stat numbers | Hero metrics, KPI cards, price displays |
113
+ | Top reflection `::before` | Every glass card, modal, sidebar |
114
+ | Glass sidebar showing gradient behind | App shell, always |
115
+ | Luminous border (rgba white) | All glass containers |
116
+ | Colored shadow with violet tint | Cards, modals, elevated elements |
117
+ | Accent gradient on primary CTA | Buttons, progress fills, chart fills |
118
+ | Glass badge with semantic color tint | Status, labels, chip filters |
119
+ | Inner glow on hover | Featured cards, stat cards |
120
+ | Glass bottom sheet | Mobile overlays, drawers |
121
+ | Aurora gradient background | Marketing heroes, login pages |
122
+ | Gradient orbs (decorative blobs) | Landing pages, auth pages |
123
+ | Glass nav becoming more opaque on scroll | All website navigation |
124
+
125
+ ---
126
+
127
+ ## Anti-Generic Tests
128
+
129
+ Run all five before presenting the result.
130
+
131
+ ### Glass Test (unique to this skill)
132
+ Remove `backdrop-filter: blur(...)` from all cards. If the interface still looks visually coherent and attractive, the glass is decorative, not structural. The transparency must be essential to the hierarchy — background must show through, gradient must be visible behind cards. Fix: reduce glass-bg opacity and ensure gradient substrate is visible.
133
+
134
+ ### Neon Test
135
+ Is any color at saturation > 80%? If yes, you're building cyberpunk, not glassmorphism. Glass is desaturated and luminous. Fix: reduce saturation, shift to pastel variants, use violet-blue as accent only.
136
+
137
+ ### Depth Test
138
+ Squint your eyes. Can you distinguish 3+ layers of depth? If everything feels flat, the glass isn't working. Fix: increase blur intensity on deeper layers, reduce opacity on background surfaces, add more distinct gradient between layers.
139
+
140
+ ### Squint Test
141
+ Does the visual hierarchy hold without reading the text? Glass cards should create visible structure. If everything blurs into the same luminous soup, reduce glass nesting and increase contrast between layers.
142
+
143
+ ### Performance Test
144
+ Does the blur cause excessive repaint? Every `backdrop-filter` creates a composite layer. More than 8-10 simultaneous blur elements on one screen can cause performance issues on mobile. Fix: use `blur-sm` on mobile, reduce glass nesting to 2 levels, use `will-change: transform` sparingly.
145
+
146
+ ---
147
+
148
+ ## What Makes Each Mode Distinct
149
+
150
+ These are the diverging choices — the things that make mode 1 impossible to confuse with mode 5.
151
+
152
+ | | Crystal Dashboard | Floating Mobile | Aurora Landing | Media Player | Zen Workspace |
153
+ |---|---|---|---|---|---|
154
+ | Blur intensity | 16-24px | 8-16px | 16-40px | 24-40px | 8-12px |
155
+ | Card radius | radius-xl (16px) | radius-2xl+ (20px+) | radius-2xl (20px) | radius-2xl (20px) | radius-xl (16px) |
156
+ | Background | Lavender aurora | Clean gradient | Color-shifting aurora | Album art (blurred) | Near-solid subtle gradient |
157
+ | Signature element | Gradient stat numbers | Glass bottom sheet | Animated aurora orbs | Color-responsive background | Disappearing toolbar |
158
+ | Motion | Card glow on hover | Swipe gestures | Parallax orbs | Color transition on track change | Breathing opacity |
159
+ | Density | Medium | Low (mobile) | Low (marketing) | Low (immersive) | Very low |
@@ -0,0 +1,498 @@
1
+ # Components — Glassmorphism UI
2
+
3
+ All components use glass tokens. The Glass Card is the fundamental building block — everything else extends or contains it.
4
+
5
+ ---
6
+
7
+ ## Glass Rules (read first)
8
+
9
+ Before building any component:
10
+
11
+ 1. **Minimum 2 layers**: never place a glass card directly over white or solid black. Always over a gradient or another glass layer.
12
+ 2. **Text over glass**: guarantee WCAG AA contrast. If blur is insufficient, increase `glass-bg` opacity toward `glass-bg-active`.
13
+ 3. **Fallback without blur**: if `backdrop-filter` is unsupported, use `glass-fallback-bg` at 0.95 opacity (see `design-tokens.md`).
14
+ 4. **Performance**: limit glass nesting to 3 levels max. Each `backdrop-filter` is a composite layer.
15
+ 5. **Top reflection**: every glass card has `::before` with `glass-highlight` for the top edge reflection. This is what makes glass feel real.
16
+
17
+ ---
18
+
19
+ ## 1. Glass Card (fundamental component)
20
+
21
+ Every other container-type component inherits from this.
22
+
23
+ ```
24
+ Structure:
25
+ position: relative
26
+ overflow: hidden
27
+ background: var(--glass-bg)
28
+ backdrop-filter: var(--glass-blur-md)
29
+ border: 1px solid var(--glass-border)
30
+ border-radius: var(--radius-xl)
31
+ box-shadow: var(--shadow-sm), var(--shadow-inner)
32
+ padding: var(--space-6)
33
+
34
+ Pseudo-element ::before (top reflection):
35
+ content: ''
36
+ position: absolute
37
+ top: 0; left: 0; right: 0
38
+ height: 50%
39
+ background: var(--glass-highlight)
40
+ pointer-events: none
41
+ border-radius: inherit
42
+
43
+ Hover:
44
+ background: var(--glass-bg-hover)
45
+ box-shadow: var(--shadow-md), var(--shadow-inner)
46
+ transition: var(--transition-glass)
47
+ ```
48
+
49
+ Variants:
50
+ - `glass-card--sm`: `border-radius: var(--radius-lg)`, `padding: var(--space-4)`
51
+ - `glass-card--lg`: `border-radius: var(--radius-2xl)`, `padding: var(--space-8)`
52
+ - `glass-card--hero`: `border-radius: var(--radius-3xl)`, `padding: var(--space-10)`, `backdrop-filter: var(--glass-blur-lg)`
53
+ - `glass-card--elevated`: `background: var(--glass-bg-elevated)` (more opaque, for nested)
54
+ - `glass-card--featured`: adds `box-shadow: var(--shadow-glow)` + `border: 1px solid rgba(124,58,237,0.30)`
55
+
56
+ ---
57
+
58
+ ## 2. Stat Card
59
+
60
+ Glass Card + stat display. Used in dashboards and analytics.
61
+
62
+ ```
63
+ Structure: Glass Card (radius-xl, padding-6)
64
+ └─ Label: text-sm, text-secondary, weight-500, mb-2
65
+ └─ Value: text-3xl or text-4xl, weight-bold, text-heading
66
+ Optional: gradient text (var(--accent-gradient), -webkit-background-clip: text)
67
+ └─ Trend badge: below value, inline-flex
68
+ ↑ green / ↓ red + percentage text-sm
69
+ └─ Optional: sparkline (40px height) at bottom
70
+
71
+ Hover: glass card hover + inner glow (shadow-glow at 50% opacity)
72
+ ```
73
+
74
+ ---
75
+
76
+ ## 3. Feature Card
77
+
78
+ Glass Card for marketing and feature lists.
79
+
80
+ ```
81
+ Structure: Glass Card (radius-2xl, padding-8)
82
+ └─ Icon area: 48x48px, background: var(--accent-dim), border-radius: var(--radius-lg)
83
+ icon: 24px, accent color
84
+ └─ Title: text-lg, weight-semibold, text-heading, mt-4
85
+ └─ Description: text-sm, text-secondary, mt-2, line-height 1.6
86
+ └─ Optional: link/CTA at bottom (text-sm, accent color, arrow icon)
87
+ ```
88
+
89
+ ---
90
+
91
+ ## 4. Navigation Bar (app)
92
+
93
+ Glass top bar, sticky, inside the content area (not full-width over sidebar).
94
+
95
+ ```
96
+ Structure:
97
+ position: sticky
98
+ top: 0
99
+ height: var(--nav-height) /* 64px */
100
+ background: var(--glass-bg)
101
+ backdrop-filter: var(--glass-blur-lg)
102
+ border-bottom: 1px solid var(--glass-border)
103
+ z-index: 10
104
+
105
+ Layout: flex, align-center, px-6, gap-4
106
+ Left: page title (text-lg, weight-semibold)
107
+ Right: actions (search icon, notifications, avatar)
108
+
109
+ On scroll: background → var(--glass-bg-hover) via transition-glass
110
+ ```
111
+
112
+ ---
113
+
114
+ ## 5. Sidebar
115
+
116
+ Glass sidebar, fixed or sticky, 256px wide.
117
+
118
+ ```
119
+ Structure:
120
+ width: var(--sidebar-width) /* 256px */
121
+ height: 100vh
122
+ position: fixed
123
+ top: 0; left: 0
124
+ background: var(--glass-bg)
125
+ backdrop-filter: var(--glass-blur-lg)
126
+ border-right: 1px solid var(--glass-border)
127
+ padding: var(--space-6) 0
128
+ overflow-y: auto
129
+
130
+ Sections:
131
+ Logo area: px-6, mb-8, height 40px
132
+ Nav groups: label text-xs uppercase tracking-wider text-muted px-6 mb-2
133
+ Nav items: px-4, py-2.5, radius-lg, gap-3, icon + label
134
+
135
+ Nav item states:
136
+ Default: text-secondary, icon text-muted
137
+ Hover: background var(--glass-bg-hover)
138
+ Active: background var(--accent-dim), border-left 2px solid var(--accent), text-heading, icon accent
139
+ ```
140
+
141
+ ---
142
+
143
+ ## 6. Bottom Sheet (mobile)
144
+
145
+ Glass overlay sheet sliding up from bottom. iOS-style.
146
+
147
+ ```
148
+ Structure:
149
+ position: fixed
150
+ bottom: 0; left: 0; right: 0
151
+ background: var(--glass-bg-active) /* more opaque */
152
+ backdrop-filter: var(--glass-blur-xl)
153
+ border-radius: var(--radius-3xl) var(--radius-3xl) 0 0
154
+ border-top: 1px solid var(--glass-border)
155
+ padding: var(--space-3) var(--space-6) var(--space-8)
156
+
157
+ Drag handle:
158
+ width: 40px; height: 4px
159
+ background: var(--text-muted)
160
+ border-radius: var(--radius-full)
161
+ margin: 0 auto var(--space-6)
162
+
163
+ Content behind: background becomes blur (achieved by the backdrop-filter revealing gradient below)
164
+ ```
165
+
166
+ ---
167
+
168
+ ## 7. Button — Primary
169
+
170
+ Accent gradient, solid feel within glass environment.
171
+
172
+ ```
173
+ height: var(--control-lg) /* 44px */
174
+ padding: 0 var(--space-5)
175
+ background: var(--accent-gradient)
176
+ color: var(--accent-contrast)
177
+ border: none
178
+ border-radius: var(--radius-md)
179
+ box-shadow: var(--shadow-sm)
180
+ font-weight: 500
181
+ font-size: var(--text-sm)
182
+
183
+ Hover: box-shadow var(--shadow-md) + filter brightness(1.05), 120ms
184
+ Active: filter brightness(0.95)
185
+ Disabled: opacity 0.4
186
+ ```
187
+
188
+ ---
189
+
190
+ ## 8. Button — Glass
191
+
192
+ Secondary action button. Looks like a glass surface with text.
193
+
194
+ ```
195
+ height: var(--control-lg)
196
+ padding: 0 var(--space-5)
197
+ background: var(--glass-bg)
198
+ backdrop-filter: var(--glass-blur-sm)
199
+ border: 1px solid var(--glass-border)
200
+ border-radius: var(--radius-md)
201
+ color: var(--text-primary)
202
+ font-weight: 500
203
+
204
+ Hover: background var(--glass-bg-hover), 120ms
205
+ Active: background var(--glass-bg-active)
206
+ ```
207
+
208
+ ---
209
+
210
+ ## 9. Button — Ghost
211
+
212
+ Minimal button, transparent, glass hover.
213
+
214
+ ```
215
+ height: var(--control-md)
216
+ padding: 0 var(--space-4)
217
+ background: transparent
218
+ border: none
219
+ border-radius: var(--radius-md)
220
+ color: var(--text-primary)
221
+
222
+ Hover: background var(--glass-bg)
223
+ ```
224
+
225
+ ---
226
+
227
+ ## 10. Input
228
+
229
+ Text input with glass surface and luminous focus ring.
230
+
231
+ ```
232
+ height: var(--control-md)
233
+ padding: 0 var(--space-3)
234
+ background: var(--glass-bg)
235
+ backdrop-filter: var(--glass-blur-sm)
236
+ border: 1px solid var(--glass-border)
237
+ border-radius: var(--radius-md)
238
+ color: var(--text-primary)
239
+ font-size: var(--text-sm)
240
+
241
+ Placeholder: color var(--text-muted)
242
+ Focus: border-color var(--glass-border-focus) + box-shadow 0 0 0 3px var(--accent-dim)
243
+ Transition: var(--transition-glass)
244
+
245
+ Icon left/right: 16px, text-muted, position absolute with padding offset
246
+ ```
247
+
248
+ ---
249
+
250
+ ## 11. Select / Dropdown
251
+
252
+ Trigger uses Input style. Menu is a glass card.
253
+
254
+ ```
255
+ Trigger: Input appearance + chevron-down icon right
256
+ Menu:
257
+ Glass Card (radius-lg, padding-2, shadow-lg, blur-lg)
258
+ position: absolute, top: calc(100% + 4px), min-width: 100%
259
+ max-height: 240px, overflow-y: auto
260
+
261
+ Item: px-3, py-2, radius-md, text-sm text-primary
262
+ Item hover: background var(--glass-bg-hover)
263
+ Item selected: background var(--accent-dim), text-accent, font-weight 500
264
+ ```
265
+
266
+ ---
267
+
268
+ ## 12. Toggle Switch
269
+
270
+ ```
271
+ width: 44px; height: 24px
272
+ background: var(--glass-border) /* off state */
273
+ border-radius: var(--radius-full)
274
+ position: relative
275
+ transition: background var(--transition-base)
276
+
277
+ Thumb:
278
+ width: 18px; height: 18px
279
+ background: white
280
+ border-radius: var(--radius-full)
281
+ box-shadow: var(--shadow-sm)
282
+ position: absolute, top: 3px, left: 3px
283
+ transition: transform var(--transition-base)
284
+
285
+ Checked:
286
+ background: var(--accent-gradient)
287
+ thumb: transform translateX(20px)
288
+ ```
289
+
290
+ ---
291
+
292
+ ## 13. Badge
293
+
294
+ ```
295
+ height: 22px
296
+ padding: 0 var(--space-2.5) /* 10px */
297
+ border-radius: var(--radius-full)
298
+ background: var(--glass-bg)
299
+ border: 1px solid var(--glass-border)
300
+ font-size: var(--text-xs)
301
+ font-weight: 500
302
+
303
+ Semantic variants (add tint to glass-bg):
304
+ success: background rgba(16, 185, 129, 0.12), color var(--semantic-green)
305
+ warning: background rgba(245, 158, 11, 0.12), color var(--semantic-amber)
306
+ error: background rgba(239, 68, 68, 0.12), color var(--semantic-red)
307
+ info: background rgba(59, 130, 246, 0.12), color var(--semantic-blue)
308
+ accent: background var(--accent-dim), color var(--accent)
309
+ ```
310
+
311
+ ---
312
+
313
+ ## 14. Modal
314
+
315
+ Glass card with blurred backdrop.
316
+
317
+ ```
318
+ Backdrop:
319
+ position: fixed, inset: 0
320
+ background: rgba(var(--bg-void-rgb), 0.50)
321
+ backdrop-filter: var(--glass-blur-sm)
322
+ z-index: 50
323
+
324
+ Modal container:
325
+ Glass Card (radius-2xl, shadow-lg, blur-lg)
326
+ max-width: 520px; width: calc(100% - 32px)
327
+ position: fixed, top: 50%, left: 50%
328
+ transform: translate(-50%, -50%)
329
+ padding: var(--space-8)
330
+ z-index: 51
331
+
332
+ Header: title text-lg weight-semibold + close button (ghost, icon-only)
333
+ Body: mt-4, text-sm text-secondary
334
+ Footer: mt-6, flex gap-3 justify-end
335
+ ```
336
+
337
+ ---
338
+
339
+ ## 15. Toast
340
+
341
+ Auto-dismissing glass notification.
342
+
343
+ ```
344
+ Glass Card (radius-xl, shadow-md)
345
+ padding: var(--space-4) var(--space-5)
346
+ display: flex, align-center, gap-3
347
+ border-left: 3px solid semantic-color
348
+ min-width: 280px; max-width: 400px
349
+ position: fixed, bottom: var(--space-6), right: var(--space-6)
350
+ z-index: 60
351
+ animation: float-up 350ms ease-out + auto-dismiss 5s
352
+ ```
353
+
354
+ ---
355
+
356
+ ## 16. Tooltip
357
+
358
+ Small glass bubble on hover.
359
+
360
+ ```
361
+ Glass Card (radius-md, blur-sm)
362
+ background: var(--glass-bg-active) /* more opaque for readability */
363
+ padding: var(--space-2) var(--space-3)
364
+ font-size: var(--text-xs)
365
+ box-shadow: var(--shadow-sm)
366
+ pointer-events: none
367
+ z-index: 70
368
+ animation: scale-materialize 150ms
369
+ ```
370
+
371
+ ---
372
+
373
+ ## 17. Tab Bar
374
+
375
+ Horizontal navigation tabs.
376
+
377
+ ```
378
+ Container:
379
+ display: flex
380
+ background: var(--glass-bg)
381
+ backdrop-filter: var(--glass-blur-md)
382
+ border-bottom: 1px solid var(--glass-border)
383
+ padding: 0 var(--space-6)
384
+
385
+ Tab item:
386
+ padding: var(--space-3) var(--space-4)
387
+ font-size: var(--text-sm)
388
+ font-weight: 500
389
+ color: var(--text-secondary)
390
+ border-bottom: 2px solid transparent
391
+ position: relative
392
+
393
+ Active tab:
394
+ color: var(--text-heading)
395
+ border-bottom: 2px solid var(--accent)
396
+
397
+ Hover: color var(--text-primary), transition var(--transition-fast)
398
+ ```
399
+
400
+ ---
401
+
402
+ ## 18. Progress Bar
403
+
404
+ ```
405
+ Container:
406
+ height: 6px
407
+ background: var(--glass-border)
408
+ border-radius: var(--radius-full)
409
+ overflow: hidden
410
+
411
+ Fill:
412
+ height: 100%
413
+ background: var(--accent-gradient)
414
+ border-radius: var(--radius-full)
415
+ transition: width var(--transition-slow)
416
+ ```
417
+
418
+ ---
419
+
420
+ ## 19. Avatar
421
+
422
+ ```
423
+ Sizes: 24px / 32px / 40px / 56px
424
+ border-radius: var(--radius-full)
425
+ border: 2px solid var(--glass-border)
426
+ box-shadow: var(--shadow-sm)
427
+ overflow: hidden
428
+
429
+ Fallback (no image): background var(--accent-dim), initials text-sm weight-600 accent color
430
+ Avatar group: overlapping avatars with margin-left -8px, each with border 2px white/glass
431
+ ```
432
+
433
+ ---
434
+
435
+ ## 20. Empty State
436
+
437
+ ```
438
+ Container: centered, py-16, flex-col align-center gap-4
439
+
440
+ Illustration: abstract gradient shape (not line art)
441
+ 80px x 80px, background var(--accent-gradient) with opacity 0.2
442
+ border-radius var(--radius-3xl)
443
+ + icon on top (24px, accent)
444
+
445
+ Title: text-base weight-semibold text-heading
446
+ Description: text-sm text-secondary, max-width 280px text-center
447
+ CTA: Glass Button or Primary Button
448
+ ```
449
+
450
+ ---
451
+
452
+ ## 21. Skeleton Loader
453
+
454
+ Glass surface with shimmer animation.
455
+
456
+ ```
457
+ Shape: matches the component it replaces (text lines, card, avatar)
458
+ background: var(--glass-bg)
459
+ border-radius: matches component radius
460
+ overflow: hidden
461
+ position: relative
462
+
463
+ Shimmer (::after):
464
+ content: ''
465
+ position: absolute, inset: 0
466
+ background: linear-gradient(90deg,
467
+ transparent 0%,
468
+ rgba(255,255,255,0.10) 50%,
469
+ transparent 100%)
470
+ animation: shimmer 1.5s infinite
471
+ transform: translateX(-100%)
472
+
473
+ @keyframes shimmer {
474
+ to { transform: translateX(100%); }
475
+ }
476
+
477
+ Reduced motion: no shimmer animation — use static glass-bg only
478
+ ```
479
+
480
+ ---
481
+
482
+ ## 22. Chip / Tag
483
+
484
+ ```
485
+ height: var(--control-xs) /* 28px */
486
+ padding: 0 var(--space-3)
487
+ background: var(--glass-bg)
488
+ backdrop-filter: var(--glass-blur-sm)
489
+ border: 1px solid var(--glass-border)
490
+ border-radius: var(--radius-full)
491
+ font-size: var(--text-sm)
492
+ color: var(--text-primary)
493
+ display: inline-flex, align-center, gap-2
494
+
495
+ Close icon: 14px, text-muted, hover text-primary, cursor pointer
496
+ Hover: background var(--glass-bg-hover)
497
+ Selected: background var(--accent-dim), border-color rgba(accent 0.30), color var(--accent)
498
+ ```