@jaimevalasek/aioson 1.4.0 → 1.6.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 +31 -1
- package/LICENSE +661 -21
- package/README.md +9 -1
- 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/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/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/README.md +7 -0
- package/docs/pt/agent-sharding.md +132 -0
- package/docs/pt/agentes.md +131 -11
- package/docs/pt/busca-de-contexto.md +129 -0
- package/docs/pt/cache-de-contexto.md +156 -0
- package/docs/pt/cenarios.md +46 -2
- package/docs/pt/comandos-cli.md +88 -1
- package/docs/pt/design-hybrid-forge.md +107 -0
- package/docs/pt/inicio-rapido.md +72 -5
- package/docs/pt/inteligencia-adaptativa.md +324 -0
- package/docs/pt/monitor-de-contexto.md +104 -0
- package/docs/pt/recuperacao-de-sessao.md +125 -0
- package/docs/pt/sandbox.md +125 -0
- package/docs/pt/skills.md +98 -6
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +9 -9
- package/package.json +2 -2
- package/src/agent-loader.js +280 -0
- package/src/backup-local.js +74 -0
- package/src/cli.js +192 -0
- package/src/commands/agent-loader.js +85 -0
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/context-cache.js +90 -0
- package/src/commands/context-monitor.js +92 -0
- package/src/commands/context-search.js +66 -0
- package/src/commands/design-hybrid-options.js +385 -0
- package/src/commands/health.js +214 -0
- package/src/commands/init.js +54 -13
- package/src/commands/install.js +52 -13
- package/src/commands/learning-evolve.js +355 -0
- package/src/commands/live.js +34 -0
- package/src/commands/recovery.js +43 -0
- package/src/commands/runtime.js +242 -0
- package/src/commands/sandbox.js +37 -0
- package/src/commands/setup-context.js +29 -4
- package/src/commands/setup.js +178 -0
- package/src/commands/skill.js +79 -32
- package/src/commands/squad-daemon.js +209 -0
- package/src/commands/squad-dashboard.js +39 -0
- package/src/commands/squad-deploy.js +64 -0
- package/src/commands/squad-doctor.js +52 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-processes.js +56 -0
- package/src/commands/squad-recovery.js +42 -0
- package/src/commands/squad-roi.js +291 -0
- package/src/commands/squad-score.js +250 -0
- package/src/commands/squad-status.js +37 -1
- package/src/commands/squad-validate.js +62 -1
- package/src/commands/squad-webhook.js +160 -0
- package/src/commands/squad-worker.js +191 -0
- package/src/commands/squad-worktrees.js +75 -0
- package/src/commands/tool-registry-cmd.js +232 -0
- package/src/commands/update.js +7 -0
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/constants.js +17 -0
- package/src/context-cache.js +159 -0
- package/src/context-search.js +326 -0
- package/src/context-writer.js +45 -1
- package/src/design-variation-catalog.js +503 -0
- package/src/i18n/messages/en.js +159 -3
- package/src/i18n/messages/es.js +147 -2
- package/src/i18n/messages/fr.js +147 -2
- package/src/i18n/messages/pt-BR.js +158 -3
- package/src/install-animation.js +260 -0
- package/src/install-profile.js +143 -0
- package/src/install-wizard.js +474 -0
- package/src/installer.js +38 -10
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/parser.js +7 -1
- package/src/recovery-context-session.js +154 -0
- package/src/runtime-store.js +355 -2
- package/src/sandbox.js +177 -0
- package/src/squad/external-session.js +180 -0
- package/src/squad/inter-squad.js +74 -0
- package/src/squad/recovery-context.js +201 -0
- package/src/squad/worktree-manager.js +114 -0
- package/src/squad-daemon.js +490 -0
- package/src/squad-dashboard/api.js +223 -0
- package/src/squad-dashboard/attachment-handler.js +93 -0
- package/src/squad-dashboard/context-monitor.js +157 -0
- package/src/squad-dashboard/execution-logs.js +115 -0
- package/src/squad-dashboard/hunk-review.js +209 -0
- package/src/squad-dashboard/metrics.js +133 -0
- package/src/squad-dashboard/process-monitor.js +125 -0
- package/src/squad-dashboard/renderer.js +858 -0
- package/src/squad-dashboard/server.js +232 -0
- package/src/squad-dashboard/styles.js +525 -0
- package/src/squad-dashboard/token-tracker.js +99 -0
- package/src/tool-executor.js +94 -0
- package/src/updater.js +11 -3
- package/src/web.js +284 -0
- package/src/worker-runner.js +339 -0
- package/template/.aioson/agents/analyst.md +62 -3
- package/template/.aioson/agents/architect.md +42 -0
- package/template/.aioson/agents/design-hybrid-forge.md +127 -0
- package/template/.aioson/agents/dev.md +223 -11
- package/template/.aioson/agents/deyvin.md +65 -0
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +17 -0
- package/template/.aioson/agents/orchestrator.md +26 -0
- package/template/.aioson/agents/pm.md +58 -0
- package/template/.aioson/agents/product.md +88 -12
- package/template/.aioson/agents/qa.md +80 -0
- package/template/.aioson/agents/setup.md +128 -22
- package/template/.aioson/agents/sheldon.md +704 -0
- package/template/.aioson/agents/squad.md +191 -0
- package/template/.aioson/agents/tester.md +410 -0
- package/template/.aioson/agents/ux-ui.md +12 -0
- package/template/.aioson/config.md +21 -0
- package/template/.aioson/context/forensics/.gitkeep +0 -0
- package/template/.aioson/context/seeds/seed-example.md +27 -0
- package/template/.aioson/context/user-profile.md +42 -0
- package/template/.aioson/locales/en/agents/analyst.md +8 -0
- package/template/.aioson/locales/en/agents/architect.md +8 -0
- package/template/.aioson/locales/en/agents/dev.md +66 -7
- package/template/.aioson/locales/en/agents/deyvin.md +8 -0
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/en/agents/qa.md +49 -0
- package/template/.aioson/locales/en/agents/setup.md +35 -2
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/es/agents/analyst.md +8 -0
- package/template/.aioson/locales/es/agents/architect.md +8 -0
- package/template/.aioson/locales/es/agents/dev.md +66 -7
- package/template/.aioson/locales/es/agents/deyvin.md +8 -0
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/qa.md +26 -0
- package/template/.aioson/locales/es/agents/setup.md +35 -2
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +63 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/fr/agents/analyst.md +8 -0
- package/template/.aioson/locales/fr/agents/architect.md +8 -0
- package/template/.aioson/locales/fr/agents/dev.md +66 -7
- package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/qa.md +26 -0
- package/template/.aioson/locales/fr/agents/setup.md +35 -2
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +63 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
- package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +35 -2
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
- 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/bold-editorial-ui/SKILL.md +205 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
- 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/warm-craft-ui/SKILL.md +209 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +45 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -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/hardening-lane.md +49 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +66 -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 +144 -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 +291 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +117 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +188 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
- package/template/.aioson/skills/squad/formats/catalog.json +15 -0
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
- package/template/.aioson/skills/static/debugging-protocol.md +42 -0
- package/template/.aioson/skills/static/git-worktrees.md +36 -0
- package/template/.aioson/tasks/implementation-plan.md +19 -0
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-profile.md +48 -0
- package/template/.aioson/tasks/squad-review.md +61 -0
- package/template/.aioson/tasks/squad-task-decompose.md +66 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +1 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +26 -1
- package/template/CLAUDE.md +6 -2
- package/template/OPENCODE.md +2 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# Dashboards — Glassmorphism UI
|
|
2
|
+
|
|
3
|
+
Dashboard compositions and presets. All dashboards use the App Shell from `patterns.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## General Rules for All Dashboards
|
|
8
|
+
|
|
9
|
+
1. **Background always gradient** — never solid. The gradient is what makes glass visible.
|
|
10
|
+
2. **Stat numbers**: sans-serif bold, optionally with gradient text (`var(--accent-gradient)` with `-webkit-background-clip: text`).
|
|
11
|
+
3. **Charts**: accent violet as primary, semi-transparent gradient fills, rgba grid lines.
|
|
12
|
+
4. **Cards**: glass with visible blur — the user must perceive the glass. Not solid cards with a blur filter.
|
|
13
|
+
5. **Card hover**: `glass-bg` → `glass-bg-hover` + `shadow-sm` → `shadow-md`, 200ms.
|
|
14
|
+
6. **One hero element** per dashboard: one card or number that is significantly larger/more prominent — the "anchor" the user reads first.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Chart Color Palette
|
|
19
|
+
|
|
20
|
+
```css
|
|
21
|
+
--chart-1: var(--accent); /* #7C3AED violet */
|
|
22
|
+
--chart-2: var(--accent-secondary); /* #3B82F6 blue */
|
|
23
|
+
--chart-3: #10B981; /* emerald */
|
|
24
|
+
--chart-4: #F59E0B; /* amber */
|
|
25
|
+
--chart-5: #EC4899; /* pink */
|
|
26
|
+
--chart-6: #6366F1; /* indigo */
|
|
27
|
+
|
|
28
|
+
/* Gradient area fills (for area/line charts) */
|
|
29
|
+
--chart-fill-1: linear-gradient(180deg, rgba(124, 58, 237, 0.25) 0%, rgba(124, 58, 237, 0) 100%);
|
|
30
|
+
--chart-fill-2: linear-gradient(180deg, rgba(59, 130, 246, 0.25) 0%, rgba(59, 130, 246, 0) 100%);
|
|
31
|
+
--chart-fill-3: linear-gradient(180deg, rgba(16, 185, 129, 0.25) 0%, rgba(16, 185, 129, 0) 100%);
|
|
32
|
+
--chart-fill-4: linear-gradient(180deg, rgba(245, 158, 11, 0.25) 0%, rgba(245, 158, 11, 0) 100%);
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Chart rules
|
|
36
|
+
- **Area charts**: always gradient fill (top color → transparent), never solid fill. Makes chart feel part of the glass environment.
|
|
37
|
+
- **Bar charts**: gradient fill (vertical, accent → accent-strong), top radius 4px.
|
|
38
|
+
- **Donut charts**: accent palette, center area transparent (glass shows through).
|
|
39
|
+
- **Line charts**: accent color line (2px), gradient fill below the line.
|
|
40
|
+
- **Grid lines**: `rgba(255, 255, 255, 0.10)` on dark, `rgba(0, 0, 0, 0.06)` on light.
|
|
41
|
+
- **Tooltips**: glass card (blur, transparent bg, luminous border) — never solid white box.
|
|
42
|
+
- **Axis labels**: `var(--text-muted)`, `text-xs`.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 1. Fintech Dashboard
|
|
47
|
+
|
|
48
|
+
**Expression mode**: Crystal Dashboard
|
|
49
|
+
**Feel**: premium, trustworthy, sophisticated
|
|
50
|
+
|
|
51
|
+
Layout:
|
|
52
|
+
```
|
|
53
|
+
Header: "My Portfolio" + date range + refresh icon
|
|
54
|
+
Row 1: 4 stat glass cards (full-width)
|
|
55
|
+
├─ Total Value: large gradient text number + portfolio growth %
|
|
56
|
+
├─ Today's P&L: number + green/red trend
|
|
57
|
+
├─ Annual Return: % + sparkline (mini area chart)
|
|
58
|
+
└─ Cash Balance: number + "available to invest"
|
|
59
|
+
|
|
60
|
+
Row 2 (2 columns):
|
|
61
|
+
Left (60%): Performance chart — area chart with gradient fill
|
|
62
|
+
Time range tabs: 1D / 1W / 1M / 3M / 1Y / All
|
|
63
|
+
X-axis: dates, Y-axis: portfolio value
|
|
64
|
+
Gradient fill: accent-fill-1 (violet → transparent)
|
|
65
|
+
Right (40%): Asset Allocation — donut chart glass card
|
|
66
|
+
Donut center: "Total" label + value
|
|
67
|
+
Legend: assets with colored indicators + %
|
|
68
|
+
|
|
69
|
+
Row 3: Holdings glass table card
|
|
70
|
+
Columns: Asset / Allocation / Price / 24h Change / Value / P&L
|
|
71
|
+
Rows: 48px, ticker bold + full name text-muted, change colored green/red
|
|
72
|
+
Search input above table (glass input)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Signature: portfolio value number in gradient text (violet → blue), repeated in the donut center and in the hero stat card.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 2. Crypto Dashboard
|
|
80
|
+
|
|
81
|
+
**Expression mode**: Crystal Dashboard
|
|
82
|
+
**Feel**: modern, fast-moving, high-information-density
|
|
83
|
+
|
|
84
|
+
Layout:
|
|
85
|
+
```
|
|
86
|
+
Header: "Crypto Portfolio" + total value (hero: text-4xl gradient) + 24h change badge
|
|
87
|
+
|
|
88
|
+
Row 1: 4 compact glass stat cards
|
|
89
|
+
├─ BTC Price + 24h change sparkline
|
|
90
|
+
├─ ETH Price + change
|
|
91
|
+
├─ Portfolio BTC value
|
|
92
|
+
└─ Unrealized P&L (green or red gradient text)
|
|
93
|
+
|
|
94
|
+
Row 2 (main chart): Price chart glass card (full width)
|
|
95
|
+
Pair selector: BTC/USD ETH/USD SOL/USD (glass chips)
|
|
96
|
+
Time: 1H 4H 1D 1W (glass chip tabs)
|
|
97
|
+
Chart: area with gradient fill, price overlay label on hover
|
|
98
|
+
Volume bars: at bottom of chart area, rgba fill
|
|
99
|
+
|
|
100
|
+
Row 3 (2 columns):
|
|
101
|
+
Left (60%): Watchlist — glass cards in a list
|
|
102
|
+
Each: coin icon + name + price + 24h sparkline + change %
|
|
103
|
+
Sorted by: 24h performance (glass sort chips)
|
|
104
|
+
Right (40%): Order Book glass card
|
|
105
|
+
Bids: green, rgba green bg on rows
|
|
106
|
+
Asks: red, rgba red bg on rows
|
|
107
|
+
Spread: centered label between sections
|
|
108
|
+
|
|
109
|
+
Row 4: Recent Transactions — glass table
|
|
110
|
+
Columns: Asset / Type (buy/sell badge) / Amount / Price / Date / Status
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Signature: live-feeling price numbers with slight pulsing opacity animation on change, bid/ask rows with semantic glass tints.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 3. Analytics Dashboard
|
|
118
|
+
|
|
119
|
+
**Expression mode**: Crystal Dashboard
|
|
120
|
+
**Feel**: efficient, data-rich, clear
|
|
121
|
+
|
|
122
|
+
Layout:
|
|
123
|
+
```
|
|
124
|
+
Header: "Analytics" + date range picker (glass input with calendar icon) + comparison toggle
|
|
125
|
+
|
|
126
|
+
Metric strip (glass bar, full width): 4-5 metrics inline
|
|
127
|
+
Sessions | Pageviews | Bounce Rate | Avg Duration | Conversions
|
|
128
|
+
Dividers: 1px glass-border between metrics
|
|
129
|
+
Each: label text-xs text-muted + value text-2xl weight-bold + trend arrow
|
|
130
|
+
|
|
131
|
+
Primary trend chart (full width glass card):
|
|
132
|
+
Line chart: sessions over time, comparison line dashed
|
|
133
|
+
Gradient fill below primary line
|
|
134
|
+
Legend: glass chips for each series
|
|
135
|
+
|
|
136
|
+
Row (2 columns):
|
|
137
|
+
Left (55%): Traffic Sources — horizontal bar chart glass card
|
|
138
|
+
Sources: Organic / Direct / Referral / Social / Email
|
|
139
|
+
Bar: gradient fill, label + % at end
|
|
140
|
+
Right (45%): Top Pages — glass table
|
|
141
|
+
Columns: Page / Views / Bounce / Duration
|
|
142
|
+
Rows compact 40px
|
|
143
|
+
|
|
144
|
+
Row: Geographic distribution — world map with glass overlay points
|
|
145
|
+
OR: Country table glass card with flag + country + sessions + %
|
|
146
|
+
|
|
147
|
+
Row: Device breakdown — 3 mini glass cards (Desktop / Mobile / Tablet)
|
|
148
|
+
Each: device icon + % + bar progress
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Signature: metric strip as a standalone glass bar (not individual cards) — unusual, memorable, efficient.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 4. Media Dashboard
|
|
156
|
+
|
|
157
|
+
**Expression mode**: Media Player
|
|
158
|
+
**Feel**: immersive, atmospheric, alive
|
|
159
|
+
|
|
160
|
+
Special rule: **the background adapts to the dominant color of the current track/album**. Extract primary color → generate gradient → smooth transition on track change.
|
|
161
|
+
|
|
162
|
+
Layout:
|
|
163
|
+
```
|
|
164
|
+
Background: extracted album art color → aurora gradient (dynamic)
|
|
165
|
+
Transition: 800ms when track changes
|
|
166
|
+
|
|
167
|
+
Hero (top section): Now Playing glass card (centered, large)
|
|
168
|
+
Album art: rounded (radius-2xl), 160px, with reflection effect below
|
|
169
|
+
Track title: text-2xl weight-bold text-heading
|
|
170
|
+
Artist: text-base text-secondary
|
|
171
|
+
Progress bar (glass strip): current time / total time
|
|
172
|
+
Controls: ← prev | play/pause (large glass button, accent gradient) | next →
|
|
173
|
+
Volume: glass knob or slider
|
|
174
|
+
|
|
175
|
+
Row 2 (3 columns):
|
|
176
|
+
Left (25%): glass stat cards (small)
|
|
177
|
+
├─ Listening streak (days)
|
|
178
|
+
├─ Minutes today
|
|
179
|
+
└─ Tracks played
|
|
180
|
+
Center (50%): Main listening chart — area chart (weekly listening hours)
|
|
181
|
+
Gradient fill matching current album color (not fixed violet)
|
|
182
|
+
Right (25%): Recently Played — glass list
|
|
183
|
+
Each: thumbnail + track + artist + duration
|
|
184
|
+
|
|
185
|
+
Row 3 (2 columns):
|
|
186
|
+
Left: Top Artists — glass cards grid (3x2)
|
|
187
|
+
Each: avatar (rounded) + name + genre badge
|
|
188
|
+
Right: Queue / Playlist — glass list
|
|
189
|
+
Each: # + thumbnail + title + artist + duration + remove icon (hover)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Signature: the entire dashboard color scheme shifts to match the current track — headline feature, not decoration.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 5. Wellness Dashboard
|
|
197
|
+
|
|
198
|
+
**Expression mode**: Zen Workspace (or Crystal if the product is data-rich)
|
|
199
|
+
**Feel**: calm, focused, encouraging, clear
|
|
200
|
+
|
|
201
|
+
Layout:
|
|
202
|
+
```
|
|
203
|
+
Header: "Good morning, [Name]" + date + last sync timestamp
|
|
204
|
+
|
|
205
|
+
Hero (prominent glass card, radius-2xl):
|
|
206
|
+
Daily Wellness Score: circular progress (SVG or canvas)
|
|
207
|
+
Center: score number text-4xl weight-bold + label text-sm text-secondary
|
|
208
|
+
Ring: gradient stroke (green → accent), animated on load
|
|
209
|
+
Context: "Better than yesterday" or "Getting there" — positive framing only
|
|
210
|
+
|
|
211
|
+
Row 1: 4 mini glass stat cards
|
|
212
|
+
Sleep: hours + sleep quality badge + moon icon
|
|
213
|
+
Steps: number + goal progress bar + footprint icon
|
|
214
|
+
Heart Rate: bpm + status badge (resting/elevated) + heart icon
|
|
215
|
+
Hydration: glasses + goal % + drop icon
|
|
216
|
+
|
|
217
|
+
Row 2 (2 columns):
|
|
218
|
+
Left (60%): Activity Chart — 7-day area chart
|
|
219
|
+
Two series: steps + activity minutes (different gradient fills)
|
|
220
|
+
X-axis: days of week
|
|
221
|
+
Highlight: today's bar/point with accent glow
|
|
222
|
+
Right (40%): Sleep Analysis — bar chart
|
|
223
|
+
Bars: sleep duration per night, 7 nights
|
|
224
|
+
Color: semantic green for ≥7h, amber for 6-7h, red for <6h
|
|
225
|
+
Reference line: 8h goal, dashed
|
|
226
|
+
|
|
227
|
+
Row 3 (2 columns):
|
|
228
|
+
Left: Weekly Comparison — glass table
|
|
229
|
+
Metric / This week / Last week / Change
|
|
230
|
+
Change: semantic green/red with arrow
|
|
231
|
+
Right: Mood Tracker — glass card with emoji indicators
|
|
232
|
+
7 days × mood rating (1-5)
|
|
233
|
+
Emoji circles with glass bg, selected state accent tinted
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Signature: circular progress score as the hero — large, centered, with animated ring. Reinforced by all metric cards using subtle circular mini-progress indicators.
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# Design Tokens — Glassmorphism UI
|
|
2
|
+
|
|
3
|
+
This is the source of truth for all CSS custom properties. Apply these on `:root` (or `[data-theme]`) and never hardcode values in components.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Typography
|
|
8
|
+
|
|
9
|
+
### Font families
|
|
10
|
+
```css
|
|
11
|
+
--font-display: 'Inter', -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;
|
|
12
|
+
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
|
|
13
|
+
--font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Note: SF Pro as first system fallback gives the Apple/iOS feel when Inter is not loaded. The differentiator in glassmorphism is not the typeface — it is the glass effects. Use headings weight 600-700, tracking -0.02em. Body weight 400.
|
|
17
|
+
|
|
18
|
+
### Font sizes
|
|
19
|
+
```css
|
|
20
|
+
--text-xs: 0.75rem; /* 12px */
|
|
21
|
+
--text-sm: 0.875rem; /* 14px */
|
|
22
|
+
--text-base: 1rem; /* 16px */
|
|
23
|
+
--text-lg: 1.125rem; /* 18px */
|
|
24
|
+
--text-xl: 1.25rem; /* 20px */
|
|
25
|
+
--text-2xl: 1.5rem; /* 24px */
|
|
26
|
+
--text-3xl: 2rem; /* 32px */
|
|
27
|
+
--text-4xl: 2.5rem; /* 40px — stat numbers, hero subheadings */
|
|
28
|
+
--text-5xl: 3.5rem; /* 56px — hero headlines */
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Colors — Light Theme (default)
|
|
34
|
+
|
|
35
|
+
Apply on `:root` or `[data-theme="light"]`.
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
/* Backgrounds */
|
|
39
|
+
--bg-void: #E8E6F0;
|
|
40
|
+
--bg-base: #F0EEF6;
|
|
41
|
+
--bg-gradient: linear-gradient(135deg, #F0EEF6 0%, #E0DFF0 30%, #D8E0F0 70%, #EDE8F0 100%);
|
|
42
|
+
|
|
43
|
+
/* Glass surfaces — TRANSPARENT by design */
|
|
44
|
+
--bg-surface: rgba(255, 255, 255, 0.60); /* standard glass card */
|
|
45
|
+
--bg-elevated: rgba(255, 255, 255, 0.80); /* hover state, nested card */
|
|
46
|
+
--bg-overlay: rgba(255, 255, 255, 0.40); /* transparent overlay */
|
|
47
|
+
|
|
48
|
+
/* Text */
|
|
49
|
+
--text-heading: #1A1A2E;
|
|
50
|
+
--text-primary: #2D2D44;
|
|
51
|
+
--text-secondary: #6B6B8A;
|
|
52
|
+
--text-muted: #9B9BB5;
|
|
53
|
+
|
|
54
|
+
/* Accent */
|
|
55
|
+
--accent: #7C3AED; /* violet-600 */
|
|
56
|
+
--accent-strong: #6D28D9; /* violet-700 */
|
|
57
|
+
--accent-dim: rgba(124, 58, 237, 0.12);
|
|
58
|
+
--accent-hover: #6D28D9;
|
|
59
|
+
--accent-contrast: #FFFFFF;
|
|
60
|
+
|
|
61
|
+
/* Accent secondary + gradient */
|
|
62
|
+
--accent-secondary: #3B82F6; /* blue-500 */
|
|
63
|
+
--accent-gradient: linear-gradient(135deg, #7C3AED, #3B82F6);
|
|
64
|
+
|
|
65
|
+
/* Semantic */
|
|
66
|
+
--semantic-green: #10B981;
|
|
67
|
+
--semantic-green-dim: rgba(16, 185, 129, 0.12);
|
|
68
|
+
--semantic-amber: #F59E0B;
|
|
69
|
+
--semantic-amber-dim: rgba(245, 158, 11, 0.12);
|
|
70
|
+
--semantic-red: #EF4444;
|
|
71
|
+
--semantic-red-dim: rgba(239, 68, 68, 0.12);
|
|
72
|
+
--semantic-blue: #3B82F6;
|
|
73
|
+
--semantic-blue-dim: rgba(59, 130, 246, 0.12);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Colors — Dark Theme
|
|
79
|
+
|
|
80
|
+
Apply on `[data-theme="dark"]`.
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
/* Backgrounds */
|
|
84
|
+
--bg-void: #0F0F1A;
|
|
85
|
+
--bg-base: #141425;
|
|
86
|
+
--bg-gradient: linear-gradient(135deg, #141425 0%, #1A1535 30%, #151A30 70%, #1A1425 100%);
|
|
87
|
+
|
|
88
|
+
/* Glass surfaces — TRANSPARENT by design */
|
|
89
|
+
--bg-surface: rgba(255, 255, 255, 0.08);
|
|
90
|
+
--bg-elevated: rgba(255, 255, 255, 0.12);
|
|
91
|
+
--bg-overlay: rgba(255, 255, 255, 0.05);
|
|
92
|
+
|
|
93
|
+
/* Text */
|
|
94
|
+
--text-heading: #F0F0FA;
|
|
95
|
+
--text-primary: #C8C8E0;
|
|
96
|
+
--text-secondary: #8888A8;
|
|
97
|
+
--text-muted: #5A5A78;
|
|
98
|
+
|
|
99
|
+
/* Accent */
|
|
100
|
+
--accent: #8B5CF6; /* violet-500 — brighter for dark */
|
|
101
|
+
--accent-strong: #7C3AED;
|
|
102
|
+
--accent-dim: rgba(139, 92, 246, 0.18);
|
|
103
|
+
--accent-hover: #7C3AED;
|
|
104
|
+
--accent-contrast: #FFFFFF;
|
|
105
|
+
|
|
106
|
+
/* Accent secondary + gradient */
|
|
107
|
+
--accent-secondary: #60A5FA; /* blue-400 */
|
|
108
|
+
--accent-gradient: linear-gradient(135deg, #8B5CF6, #60A5FA);
|
|
109
|
+
|
|
110
|
+
/* Semantic (same values work on dark) */
|
|
111
|
+
--semantic-green: #10B981;
|
|
112
|
+
--semantic-green-dim: rgba(16, 185, 129, 0.15);
|
|
113
|
+
--semantic-amber: #F59E0B;
|
|
114
|
+
--semantic-amber-dim: rgba(245, 158, 11, 0.15);
|
|
115
|
+
--semantic-red: #EF4444;
|
|
116
|
+
--semantic-red-dim: rgba(239, 68, 68, 0.15);
|
|
117
|
+
--semantic-blue: #60A5FA;
|
|
118
|
+
--semantic-blue-dim: rgba(96, 165, 250, 0.15);
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Glass Tokens (unique to this skill)
|
|
124
|
+
|
|
125
|
+
These tokens define the glass effect system. They are the core differentiator.
|
|
126
|
+
|
|
127
|
+
```css
|
|
128
|
+
/* Blur intensities */
|
|
129
|
+
--glass-blur-sm: blur(8px); /* subtle — zen mode, mobile (performance) */
|
|
130
|
+
--glass-blur-md: blur(16px); /* standard — most cards and containers */
|
|
131
|
+
--glass-blur-lg: blur(24px); /* strong — sidebars, modals, nav bars */
|
|
132
|
+
--glass-blur-xl: blur(40px); /* extreme — media player, decorative blobs */
|
|
133
|
+
|
|
134
|
+
/* Glass surfaces — light theme */
|
|
135
|
+
--glass-bg: rgba(255, 255, 255, 0.60);
|
|
136
|
+
--glass-bg-hover: rgba(255, 255, 255, 0.75);
|
|
137
|
+
--glass-bg-active: rgba(255, 255, 255, 0.85);
|
|
138
|
+
--glass-border: rgba(255, 255, 255, 0.40); /* luminous border */
|
|
139
|
+
--glass-border-focus: rgba(124, 58, 237, 0.50); /* accent ring */
|
|
140
|
+
--glass-highlight: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 50%);
|
|
141
|
+
|
|
142
|
+
/* Glass surfaces — dark theme */
|
|
143
|
+
--glass-bg-dark: rgba(255, 255, 255, 0.08);
|
|
144
|
+
--glass-bg-dark-hover: rgba(255, 255, 255, 0.12);
|
|
145
|
+
--glass-bg-dark-active: rgba(255, 255, 255, 0.16);
|
|
146
|
+
--glass-border-dark: rgba(255, 255, 255, 0.12);
|
|
147
|
+
--glass-highlight-dark: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 50%);
|
|
148
|
+
|
|
149
|
+
/* Fallback (when backdrop-filter is unsupported) */
|
|
150
|
+
--glass-fallback-bg: rgba(255, 255, 255, 0.95); /* light */
|
|
151
|
+
--glass-fallback-dark: rgba(20, 20, 37, 0.95); /* dark */
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Usage note: always wrap `backdrop-filter` in `@supports`:
|
|
155
|
+
```css
|
|
156
|
+
.glass-card {
|
|
157
|
+
background: var(--glass-fallback-bg);
|
|
158
|
+
}
|
|
159
|
+
@supports (backdrop-filter: blur(1px)) {
|
|
160
|
+
.glass-card {
|
|
161
|
+
background: var(--glass-bg);
|
|
162
|
+
backdrop-filter: var(--glass-blur-md);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Shadows (colored, not black)
|
|
170
|
+
|
|
171
|
+
Shadows use the accent color (violet) at very low opacity, creating a subtle glow instead of a dark shadow. Combined with `--glass-highlight` for the top reflection.
|
|
172
|
+
|
|
173
|
+
```css
|
|
174
|
+
--shadow-xs: 0 1px 3px rgba(124, 58, 237, 0.04);
|
|
175
|
+
--shadow-sm: 0 4px 12px rgba(124, 58, 237, 0.06);
|
|
176
|
+
--shadow-md: 0 8px 24px rgba(124, 58, 237, 0.08);
|
|
177
|
+
--shadow-lg: 0 16px 48px rgba(124, 58, 237, 0.10);
|
|
178
|
+
--shadow-glow: 0 0 40px rgba(124, 58, 237, 0.15); /* accent glow for featured elements */
|
|
179
|
+
--shadow-inner: inset 0 1px 0 rgba(255, 255, 255, 0.15); /* top inner highlight */
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Dark theme shadow adjustment (same structure, slightly more visible):
|
|
183
|
+
```css
|
|
184
|
+
--shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.20);
|
|
185
|
+
--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.30);
|
|
186
|
+
--shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.40);
|
|
187
|
+
--shadow-glow: 0 0 40px rgba(139, 92, 246, 0.25);
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Border Radius (generous)
|
|
193
|
+
|
|
194
|
+
```css
|
|
195
|
+
--radius-sm: 0.375rem; /* 6px — badges, chips */
|
|
196
|
+
--radius-md: 0.5rem; /* 8px — inputs, small buttons */
|
|
197
|
+
--radius-lg: 0.75rem; /* 12px — small cards, dropdowns */
|
|
198
|
+
--radius-xl: 1rem; /* 16px — standard cards */
|
|
199
|
+
--radius-2xl: 1.25rem; /* 20px — large cards, modals */
|
|
200
|
+
--radius-3xl: 1.5rem; /* 24px — hero cards, feature cards */
|
|
201
|
+
--radius-full: 9999px; /* pills, avatars, toggles */
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Control Heights
|
|
207
|
+
|
|
208
|
+
```css
|
|
209
|
+
--control-xs: 1.75rem; /* 28px — compact chips */
|
|
210
|
+
--control-sm: 2rem; /* 32px — compact controls */
|
|
211
|
+
--control-md: 2.25rem; /* 36px — standard inputs */
|
|
212
|
+
--control-lg: 2.75rem; /* 44px — glass buttons (generous touch target) */
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Spacing
|
|
218
|
+
|
|
219
|
+
4px rhythm base (same as other skills):
|
|
220
|
+
|
|
221
|
+
```css
|
|
222
|
+
--space-1: 0.25rem; /* 4px */
|
|
223
|
+
--space-2: 0.5rem; /* 8px */
|
|
224
|
+
--space-3: 0.75rem; /* 12px */
|
|
225
|
+
--space-4: 1rem; /* 16px */
|
|
226
|
+
--space-5: 1.25rem; /* 20px */
|
|
227
|
+
--space-6: 1.5rem; /* 24px */
|
|
228
|
+
--space-8: 2rem; /* 32px */
|
|
229
|
+
--space-10: 2.5rem; /* 40px */
|
|
230
|
+
--space-12: 3rem; /* 48px */
|
|
231
|
+
--space-16: 4rem; /* 64px */
|
|
232
|
+
--space-20: 5rem; /* 80px */
|
|
233
|
+
--space-24: 6rem; /* 96px */
|
|
234
|
+
--space-32: 8rem; /* 128px — hero sections */
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Layout
|
|
240
|
+
|
|
241
|
+
```css
|
|
242
|
+
--sidebar-width: 256px;
|
|
243
|
+
--content-sm: 480px;
|
|
244
|
+
--content-md: 640px;
|
|
245
|
+
--content-lg: 800px;
|
|
246
|
+
--content-xl: 1024px;
|
|
247
|
+
--content-max: 1280px;
|
|
248
|
+
|
|
249
|
+
--nav-height: 64px; /* glass top bar */
|
|
250
|
+
--nav-height-web: 68px; /* glass website nav */
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Breakpoints
|
|
256
|
+
|
|
257
|
+
```css
|
|
258
|
+
--breakpoint-sm: 640px;
|
|
259
|
+
--breakpoint-md: 768px;
|
|
260
|
+
--breakpoint-lg: 1024px;
|
|
261
|
+
--breakpoint-xl: 1280px;
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Transitions
|
|
267
|
+
|
|
268
|
+
```css
|
|
269
|
+
--transition-fast: 120ms ease;
|
|
270
|
+
--transition-base: 200ms ease;
|
|
271
|
+
--transition-slow: 350ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
272
|
+
--transition-glass: backdrop-filter 300ms ease, background 300ms ease, border-color 300ms ease, box-shadow 300ms ease;
|
|
273
|
+
--transition-hero: 600ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
274
|
+
```
|