@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.
- package/CHANGELOG.md +49 -0
- package/README.md +729 -226
- package/docs/design-previews/aurora-command-ui-website.html +884 -0
- package/docs/design-previews/aurora-command-ui.html +682 -0
- package/docs/design-previews/bold-editorial-ui-website.html +658 -0
- package/docs/design-previews/bold-editorial-ui.html +717 -0
- package/docs/design-previews/clean-saas-ui-website.html +1202 -0
- package/docs/design-previews/clean-saas-ui.html +549 -0
- package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
- package/docs/design-previews/cognitive-core-ui.html +463 -0
- package/docs/design-previews/glassmorphism-ui-website.html +572 -0
- package/docs/design-previews/glassmorphism-ui.html +886 -0
- package/docs/design-previews/index.html +699 -0
- package/docs/design-previews/interface-design-website.html +1187 -0
- package/docs/design-previews/interface-design.html +513 -0
- package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
- package/docs/design-previews/neo-brutalist-ui.html +797 -0
- package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
- package/docs/design-previews/premium-command-center-ui.html +552 -0
- package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
- package/docs/design-previews/warm-craft-ui-website.html +684 -0
- package/docs/design-previews/warm-craft-ui.html +739 -0
- package/docs/en/cli-reference.md +20 -9
- package/docs/integrations/sdlc-genius-boundary.md +76 -0
- package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
- package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
- package/docs/integrations/sdlc-genius-review-samples.md +86 -0
- package/docs/pt/README.md +10 -0
- package/docs/pt/agent-sharding.md +132 -0
- package/docs/pt/agentes.md +9 -2
- package/docs/pt/busca-de-contexto.md +129 -0
- package/docs/pt/cache-de-contexto.md +156 -0
- package/docs/pt/comandos-cli.md +915 -1
- package/docs/pt/design-hybrid-forge.md +356 -0
- package/docs/pt/devlog-pipeline.md +270 -0
- package/docs/pt/fluxo-artefatos.md +178 -0
- package/docs/pt/hooks-session-guard.md +454 -0
- package/docs/pt/inicio-rapido.md +54 -3
- package/docs/pt/inteligencia-adaptativa.md +324 -0
- package/docs/pt/monitor-de-contexto.md +158 -0
- package/docs/pt/recuperacao-de-sessao.md +125 -0
- package/docs/pt/sandbox.md +125 -0
- package/docs/pt/sdd-automation-scripts.md +557 -0
- package/docs/pt/site-forge.md +309 -0
- package/docs/pt/skills.md +98 -6
- package/docs/pt/spec-learnings-pipeline.md +265 -0
- package/package.json +1 -1
- package/src/a2a/client.js +165 -0
- package/src/a2a/server.js +223 -0
- package/src/agent-loader.js +280 -0
- package/src/cli.js +329 -1
- package/src/commands/agent-audit.js +397 -0
- package/src/commands/agent-export-skill.js +229 -0
- package/src/commands/agent-loader.js +85 -0
- package/src/commands/artifact-validate.js +189 -0
- package/src/commands/brief-gen.js +405 -0
- package/src/commands/brief-validate.js +65 -0
- package/src/commands/classify.js +256 -0
- package/src/commands/context-cache.js +90 -0
- package/src/commands/context-compact.js +49 -0
- package/src/commands/context-health.js +175 -0
- package/src/commands/context-monitor.js +163 -0
- package/src/commands/context-search.js +66 -0
- package/src/commands/context-trim.js +177 -0
- package/src/commands/design-hybrid-options.js +385 -0
- package/src/commands/detect-test-runner.js +55 -0
- package/src/commands/devlog-export-brains.js +27 -0
- package/src/commands/devlog-process.js +292 -0
- package/src/commands/devlog-watch.js +131 -0
- package/src/commands/feature-close.js +165 -0
- package/src/commands/gate-check.js +228 -0
- package/src/commands/health.js +214 -0
- package/src/commands/hooks-emit.js +253 -0
- package/src/commands/hooks-install.js +347 -0
- package/src/commands/init.js +54 -13
- package/src/commands/install.js +52 -13
- package/src/commands/learning-auto-promote.js +195 -0
- package/src/commands/learning-evolve.js +364 -0
- package/src/commands/learning-export.js +103 -0
- package/src/commands/learning-rollback.js +164 -0
- package/src/commands/live.js +59 -1
- package/src/commands/pattern-detect.js +33 -0
- package/src/commands/preflight-context.js +30 -0
- package/src/commands/preflight.js +208 -0
- package/src/commands/pulse-update.js +130 -0
- package/src/commands/recovery.js +43 -0
- package/src/commands/runner-daemon.js +274 -0
- package/src/commands/runner-plan.js +70 -0
- package/src/commands/runner-queue-from-plan.js +166 -0
- package/src/commands/runner-queue.js +189 -0
- package/src/commands/runner-run.js +129 -0
- package/src/commands/runtime.js +47 -1
- package/src/commands/sandbox.js +37 -0
- package/src/commands/self-implement-loop.js +256 -0
- package/src/commands/session-guard.js +218 -0
- package/src/commands/setup-context.js +22 -2
- package/src/commands/setup.js +178 -0
- package/src/commands/sizing.js +165 -0
- package/src/commands/skill.js +144 -32
- package/src/commands/spec-checkpoint.js +177 -0
- package/src/commands/spec-status.js +79 -0
- package/src/commands/spec-sync.js +190 -0
- package/src/commands/spec-tasks.js +288 -0
- package/src/commands/squad-autorun.js +1220 -0
- package/src/commands/squad-bus.js +217 -0
- package/src/commands/squad-card.js +149 -0
- package/src/commands/squad-daemon.js +134 -0
- package/src/commands/squad-dependency-graph.js +164 -0
- package/src/commands/squad-review.js +106 -0
- package/src/commands/squad-scaffold.js +55 -0
- package/src/commands/squad-tool-register.js +157 -0
- package/src/commands/state-save.js +122 -0
- package/src/commands/tool-registry-cmd.js +232 -0
- package/src/commands/update.js +9 -0
- package/src/commands/verify-gate.js +572 -0
- package/src/commands/workflow-execute.js +241 -0
- package/src/constants.js +18 -0
- package/src/context-cache.js +159 -0
- package/src/context-search.js +326 -0
- package/src/design-variation-catalog.js +503 -0
- package/src/i18n/messages/en.js +32 -2
- package/src/i18n/messages/es.js +30 -2
- package/src/i18n/messages/fr.js +30 -2
- package/src/i18n/messages/pt-BR.js +32 -2
- package/src/install-animation.js +260 -0
- package/src/install-profile.js +143 -0
- package/src/install-wizard.js +475 -0
- package/src/installer.js +44 -10
- package/src/lib/health-check.js +158 -0
- package/src/lib/hook-protocol.js +76 -0
- package/src/mcp/apps/squad-dashboard/app.js +163 -0
- package/src/mcp/apps/squad-dashboard/index.html +261 -0
- package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
- package/src/mcp/resources/squad-state.js +130 -0
- package/src/parser.js +7 -1
- package/src/preflight-engine.js +443 -0
- package/src/recovery-context-session.js +154 -0
- package/src/runner/cascade.js +97 -0
- package/src/runner/cli-launcher.js +109 -0
- package/src/runner/plan-importer.js +63 -0
- package/src/runner/queue-store.js +159 -0
- package/src/runtime-store.js +158 -4
- package/src/sandbox.js +177 -0
- package/src/squad/agent-teams-adapter.js +264 -0
- package/src/squad/brief-validator.js +350 -0
- package/src/squad/bus-bridge.js +140 -0
- package/src/squad/context-compactor.js +265 -0
- package/src/squad/cross-ai-synthesizer.js +250 -0
- package/src/squad/hooks-generator.js +196 -0
- package/src/squad/inter-squad-events.js +175 -0
- package/src/squad/intra-bus.js +345 -0
- package/src/squad/learning-extractor.js +213 -0
- package/src/squad/pattern-detector.js +365 -0
- package/src/squad/preflight-context.js +296 -0
- package/src/squad/recovery-context.js +242 -71
- package/src/squad/reflection.js +365 -0
- package/src/squad/squad-scaffold.js +177 -0
- package/src/squad/state-manager.js +310 -0
- package/src/squad/task-decomposer.js +652 -0
- package/src/squad/verify-gate.js +303 -0
- package/src/tool-executor.js +94 -0
- package/src/updater.js +10 -3
- package/src/worker-runner.js +186 -1
- package/template/.aioson/agents/analyst.md +119 -3
- package/template/.aioson/agents/architect.md +98 -0
- package/template/.aioson/agents/design-hybrid-forge.md +141 -0
- package/template/.aioson/agents/dev.md +335 -14
- package/template/.aioson/agents/deyvin.md +117 -2
- package/template/.aioson/agents/discovery-design-doc.md +44 -0
- package/template/.aioson/agents/genome.md +14 -0
- package/template/.aioson/agents/neo.md +78 -1
- package/template/.aioson/agents/orache.md +50 -4
- package/template/.aioson/agents/orchestrator.md +197 -1
- package/template/.aioson/agents/pm.md +93 -0
- package/template/.aioson/agents/product.md +77 -4
- package/template/.aioson/agents/profiler-enricher.md +14 -0
- package/template/.aioson/agents/profiler-forge.md +14 -0
- package/template/.aioson/agents/profiler-researcher.md +14 -0
- package/template/.aioson/agents/qa.md +249 -19
- package/template/.aioson/agents/setup.md +144 -12
- package/template/.aioson/agents/sheldon.md +237 -11
- package/template/.aioson/agents/site-forge.md +1753 -0
- package/template/.aioson/agents/squad.md +162 -0
- package/template/.aioson/agents/tester.md +209 -0
- package/template/.aioson/agents/ux-ui.md +34 -1
- package/template/.aioson/brains/README.md +128 -0
- package/template/.aioson/brains/_index.json +16 -0
- package/template/.aioson/brains/scripts/query.js +103 -0
- package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
- package/template/.aioson/config.md +158 -13
- package/template/.aioson/constitution.md +33 -0
- package/template/.aioson/context/forensics/.gitkeep +0 -0
- package/template/.aioson/context/project-pulse.md +34 -0
- package/template/.aioson/context/seeds/seed-example.md +27 -0
- package/template/.aioson/context/user-profile.md +42 -0
- package/template/.aioson/docs/LAYERS.md +79 -0
- package/template/.aioson/docs/README.md +76 -0
- package/template/.aioson/docs/example-external-api-context.md +72 -0
- package/template/.aioson/locales/en/agents/architect.md +17 -0
- package/template/.aioson/locales/en/agents/dev.md +79 -13
- package/template/.aioson/locales/en/agents/orache.md +6 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
- package/template/.aioson/locales/en/agents/product.md +50 -0
- package/template/.aioson/locales/en/agents/setup.md +33 -1
- package/template/.aioson/locales/en/agents/sheldon.md +115 -0
- package/template/.aioson/locales/en/agents/squad.md +14 -0
- package/template/.aioson/locales/en/agents/tester.md +6 -0
- package/template/.aioson/locales/es/agents/analyst.md +2 -0
- package/template/.aioson/locales/es/agents/architect.md +19 -0
- package/template/.aioson/locales/es/agents/dev.md +64 -4
- package/template/.aioson/locales/es/agents/deyvin.md +2 -0
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/es/agents/genome.md +2 -0
- package/template/.aioson/locales/es/agents/neo.md +2 -0
- package/template/.aioson/locales/es/agents/orache.md +2 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/pair.md +2 -0
- package/template/.aioson/locales/es/agents/pm.md +2 -0
- package/template/.aioson/locales/es/agents/product.md +52 -0
- package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/es/agents/qa.md +2 -0
- package/template/.aioson/locales/es/agents/setup.md +35 -1
- package/template/.aioson/locales/es/agents/sheldon.md +117 -0
- package/template/.aioson/locales/es/agents/squad.md +16 -0
- package/template/.aioson/locales/es/agents/tester.md +9 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/fr/agents/analyst.md +2 -0
- package/template/.aioson/locales/fr/agents/architect.md +19 -0
- package/template/.aioson/locales/fr/agents/dev.md +64 -4
- package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/fr/agents/genome.md +2 -0
- package/template/.aioson/locales/fr/agents/neo.md +2 -0
- package/template/.aioson/locales/fr/agents/orache.md +2 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/pair.md +2 -0
- package/template/.aioson/locales/fr/agents/pm.md +2 -0
- package/template/.aioson/locales/fr/agents/product.md +52 -0
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/fr/agents/qa.md +2 -0
- package/template/.aioson/locales/fr/agents/setup.md +35 -1
- package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
- package/template/.aioson/locales/fr/agents/squad.md +16 -0
- package/template/.aioson/locales/fr/agents/tester.md +9 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
- package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
- package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
- package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
- package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +134 -19
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
- package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
- package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
- package/template/.aioson/rules/README.md +69 -0
- package/template/.aioson/rules/data-format-convention.md +136 -0
- package/template/.aioson/rules/example-monetary-values.md +30 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +46 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +101 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +147 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +306 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +149 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +208 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
- package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
- package/template/.aioson/skills/static/context-budget-guide.md +46 -0
- package/template/.aioson/skills/static/harness-sensors.md +74 -0
- package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
- package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
- package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
- package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
- package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
- package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
- package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
- package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
- package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
- package/template/.aioson/skills/static/threejs-patterns.md +929 -0
- package/template/.aioson/skills/static/web-research-cache.md +112 -0
- package/template/.aioson/tasks/implementation-plan.md +21 -1
- package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/orache.md +5 -0
- package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
- package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
- package/template/AGENTS.md +75 -1
- package/template/CLAUDE.md +31 -0
- package/template/OPENCODE.md +4 -0
- 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
|
+
```
|