@jaimevalasek/aioson 1.3.0 → 1.4.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/README.md +19 -2
- package/docs/pt/README.md +62 -2
- package/docs/pt/advisor-spec.md +5 -5
- package/docs/pt/agentes-customizados.md +670 -0
- package/docs/pt/agentes.md +111 -13
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +3 -3
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +167 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +45 -0
- package/docs/pt/memoria-contexto.md +255 -0
- package/docs/pt/output-strategy-delivery.md +655 -0
- package/docs/pt/profiler-system.md +17 -17
- package/docs/pt/runtime-observability.md +5 -1
- package/docs/pt/skills.md +175 -0
- package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-rollout.md +1 -1
- package/package.json +3 -3
- package/src/agents.js +21 -5
- package/src/backup-provider.js +303 -0
- package/src/cli.js +178 -2
- package/src/commands/agents.js +22 -4
- package/src/commands/backup.js +533 -0
- package/src/commands/cloud.js +17 -17
- package/src/commands/context-pack.js +45 -0
- package/src/commands/implementation-plan.js +340 -0
- package/src/commands/learning.js +134 -0
- package/src/commands/live.js +1583 -0
- package/src/commands/runtime.js +833 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +23 -0
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- package/src/commands/squad-doctor.js +51 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -0
- package/src/commands/squad-status.js +1 -1
- package/src/commands/squad-validate.js +57 -1
- package/src/commands/test-agents.js +6 -1
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +80 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +2 -0
- package/src/delivery-runner.js +319 -0
- package/src/genome-files.js +1 -1
- package/src/genome-format.js +1 -1
- package/src/i18n/messages/en.js +206 -7
- package/src/i18n/messages/es.js +123 -6
- package/src/i18n/messages/fr.js +122 -5
- package/src/i18n/messages/pt-BR.js +205 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/runtime-store.js +780 -42
- package/src/session-handoff.js +77 -0
- package/template/.aioson/agents/analyst.md +36 -9
- package/template/.aioson/agents/architect.md +20 -5
- package/template/.aioson/agents/dev.md +135 -15
- package/template/.aioson/agents/deyvin.md +166 -0
- package/template/.aioson/agents/discovery-design-doc.md +25 -1
- package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
- package/template/.aioson/agents/orache.md +371 -0
- package/template/.aioson/agents/orchestrator.md +37 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +58 -22
- package/template/.aioson/agents/profiler-enricher.md +1 -1
- package/template/.aioson/agents/profiler-forge.md +9 -9
- package/template/.aioson/agents/profiler-researcher.md +1 -1
- package/template/.aioson/agents/qa.md +17 -5
- package/template/.aioson/agents/setup.md +81 -5
- package/template/.aioson/agents/squad.md +675 -28
- package/template/.aioson/agents/ux-ui.md +277 -34
- package/template/.aioson/config.md +175 -0
- package/template/.aioson/context/spec.md.template +17 -0
- package/template/.aioson/genomes/.gitkeep +0 -0
- package/template/.aioson/installed-skills/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +26 -4
- package/template/.aioson/locales/en/agents/architect.md +10 -0
- package/template/.aioson/locales/en/agents/dev.md +89 -4
- package/template/.aioson/locales/en/agents/deyvin.md +129 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/en/agents/pair.md +5 -0
- package/template/.aioson/locales/en/agents/pm.md +7 -0
- package/template/.aioson/locales/en/agents/product.md +35 -17
- package/template/.aioson/locales/en/agents/qa.md +7 -0
- package/template/.aioson/locales/en/agents/setup.md +51 -5
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +375 -35
- package/template/.aioson/locales/es/agents/analyst.md +16 -4
- package/template/.aioson/locales/es/agents/architect.md +10 -0
- package/template/.aioson/locales/es/agents/dev.md +70 -2
- package/template/.aioson/locales/es/agents/deyvin.md +89 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/es/agents/pair.md +5 -0
- package/template/.aioson/locales/es/agents/pm.md +7 -0
- package/template/.aioson/locales/es/agents/product.md +13 -3
- package/template/.aioson/locales/es/agents/qa.md +7 -0
- package/template/.aioson/locales/es/agents/setup.md +28 -5
- package/template/.aioson/locales/es/agents/squad.md +221 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/fr/agents/analyst.md +16 -4
- package/template/.aioson/locales/fr/agents/architect.md +10 -0
- package/template/.aioson/locales/fr/agents/dev.md +70 -2
- package/template/.aioson/locales/fr/agents/deyvin.md +89 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/fr/agents/pair.md +5 -0
- package/template/.aioson/locales/fr/agents/pm.md +7 -0
- package/template/.aioson/locales/fr/agents/product.md +13 -3
- package/template/.aioson/locales/fr/agents/qa.md +7 -0
- package/template/.aioson/locales/fr/agents/setup.md +28 -5
- package/template/.aioson/locales/fr/agents/squad.md +216 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +26 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +10 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +93 -4
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +129 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +35 -17
- package/template/.aioson/locales/pt-BR/agents/qa.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +51 -5
- package/template/.aioson/locales/pt-BR/agents/squad.md +486 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +361 -22
- package/template/.aioson/my-agents/.gitkeep +0 -0
- package/template/.aioson/rules/.gitkeep +0 -0
- package/template/.aioson/rules/squad/.gitkeep +0 -0
- package/template/.aioson/rules/squad/README.md +50 -0
- package/template/.aioson/schemas/genome-meta.schema.json +1 -1
- package/template/.aioson/schemas/genome.schema.json +1 -1
- package/template/.aioson/schemas/squad-blueprint.schema.json +11 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +257 -1
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +157 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +172 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +490 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +237 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +350 -0
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
- package/template/.aioson/skills/design-system/SKILL.md +92 -0
- package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/squad/SKILL.md +58 -0
- package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
- package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
- package/template/.aioson/skills/squad/references/.gitkeep +0 -0
- package/template/.aioson/tasks/implementation-plan.md +288 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- package/template/.aioson/tasks/squad-execution-plan.md +279 -0
- package/template/.aioson/tasks/squad-export.md +1 -1
- package/template/.aioson/tasks/squad-investigate.md +44 -0
- package/template/.aioson/tasks/squad-learning-review.md +44 -0
- package/template/.aioson/tasks/squad-output-config.md +177 -0
- package/template/.aioson/tasks/squad-validate.md +1 -1
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
- package/template/.claude/commands/aioson/agent/genome.md +5 -0
- package/template/.claude/commands/aioson/agent/product.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
- package/template/.claude/commands/aioson/agent/squad.md +5 -0
- package/template/.gemini/GEMINI.md +2 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/AGENTS.md +34 -6
- package/template/CLAUDE.md +31 -4
- package/template/OPENCODE.md +6 -2
- package/template/squad-searches/.gitkeep +0 -0
- package/template/.aioson/skills/static/interface-design.md +0 -372
- package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
- /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
- /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
- /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
- /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
- /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
- /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
- /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
- /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
- /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-dashboards
|
|
3
|
+
description: Dashboard-specific presets and compositions for the Cognitive Core design system — premium control center, admin analytics, ops cockpit, and CRM layouts. Load foundations, components, and patterns first. Use when building dashboards, admin panels, monitoring tools, or any data-heavy operational interface.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dashboards — Preset Compositions
|
|
7
|
+
|
|
8
|
+
Requires: `foundations/SKILL.md` + `components/SKILL.md` + `patterns/SKILL.md` loaded first.
|
|
9
|
+
|
|
10
|
+
These presets combine the patterns and components into ready-to-build dashboard configurations. Each preset defines what components go where, what data shape to expect, and how to adapt the layout to a specific domain.
|
|
11
|
+
|
|
12
|
+
## Preset 1: Premium Control Center
|
|
13
|
+
|
|
14
|
+
The "Mentes Sintéticas" signature layout. Command center aesthetic with DNA panels and mode indicators.
|
|
15
|
+
|
|
16
|
+
**Best for:** AI systems, monitoring, intelligence platforms, premium SaaS.
|
|
17
|
+
|
|
18
|
+
**Default theme:** Dark.
|
|
19
|
+
|
|
20
|
+
**Layout composition:**
|
|
21
|
+
```
|
|
22
|
+
TOP BAR: Logo + COGNITIVE CORE subtitle + Nav + Theme Toggle + [● SYSTEM OPERATIONAL] badge
|
|
23
|
+
STATS ROW: 4 stat cards with large numbers
|
|
24
|
+
TAB BAR: Geral | DNA | Comunicação | História | Artefatos | Prompts | Domínio
|
|
25
|
+
SIDEBAR + CONTENT:
|
|
26
|
+
Content top row: [DNA Panel (2/3)] + [Mode Panel (1/3)]
|
|
27
|
+
Section "Sistema Operacional": 4-col info card grid
|
|
28
|
+
Section "Arsenal": 4-col info card grid with quotes
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Domain mapping template:**
|
|
32
|
+
|
|
33
|
+
| Generic Concept | Your Domain |
|
|
34
|
+
|---|---|
|
|
35
|
+
| Entity (Alex Hormozi) | Main subject: product, user, project |
|
|
36
|
+
| Apex Score (8.5/100) | Primary metric |
|
|
37
|
+
| Neural Data (9 files) | Data volume / complexity |
|
|
38
|
+
| Top Skill | Primary category or strength |
|
|
39
|
+
| DNA Cirúrgico (sliders) | Attribute breakdown (3-5 axes) |
|
|
40
|
+
| Power Words (tags) | Tags, features, capabilities |
|
|
41
|
+
| Mode Panel | Current status / active mode |
|
|
42
|
+
| Sistema Operacional (cards) | Capabilities, features, rules |
|
|
43
|
+
| Arsenal Retórico (cards w/ quotes) | Tools, strategies, items with descriptions |
|
|
44
|
+
|
|
45
|
+
**How to adapt:**
|
|
46
|
+
1. Replace entity name/avatar/role with your domain's primary subject
|
|
47
|
+
2. Map 3-4 key metrics to stat cards
|
|
48
|
+
3. Pick 3-5 slider axes for the DNA Panel (always with mono labels, progress bars, and tag groups)
|
|
49
|
+
4. Write 4+ system cards (icon + title + description + optional quote)
|
|
50
|
+
5. The Mode Panel always shows current active state/mode
|
|
51
|
+
|
|
52
|
+
## Preset 2: Admin Analytics
|
|
53
|
+
|
|
54
|
+
Focused on data visualization and metrics tracking.
|
|
55
|
+
|
|
56
|
+
**Best for:** SaaS admin, e-commerce analytics, marketing dashboards.
|
|
57
|
+
|
|
58
|
+
**Default theme:** Dark (light works well too).
|
|
59
|
+
|
|
60
|
+
**Layout composition:**
|
|
61
|
+
```
|
|
62
|
+
TOP BAR: Logo + App Name + Nav + Filters + Theme Toggle
|
|
63
|
+
STATS ROW: 4-6 stat cards (revenue, users, conversion, growth)
|
|
64
|
+
TAB BAR: Overview | Revenue | Users | Products | Settings
|
|
65
|
+
NO SIDEBAR (full-width content)
|
|
66
|
+
CONTENT:
|
|
67
|
+
Row 1: [Chart card (2/3)] + [Top items list card (1/3)]
|
|
68
|
+
Row 2: 3-col stat breakdown (stat cards with trend indicators)
|
|
69
|
+
Section "Recent Activity": Data table with sortable headers
|
|
70
|
+
Section "Quick Actions": 4-col info cards
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Key differences from Control Center:**
|
|
74
|
+
- No sidebar — tabs control all navigation
|
|
75
|
+
- Data table replaces card grid for transactional data
|
|
76
|
+
- Chart placeholder cards (note: describe chart intent, use recharts/Chart.js if available)
|
|
77
|
+
- Trend indicators on stat cards: `↑ 12%` in green or `↓ 3%` in red
|
|
78
|
+
|
|
79
|
+
**Stat card with trend — structure:**
|
|
80
|
+
```
|
|
81
|
+
┌──────────────────┐
|
|
82
|
+
│ REVENUE │ ← mono, text-xs, text-muted
|
|
83
|
+
│ R$ 45k │ ← text-3xl, weight-bold, text-heading
|
|
84
|
+
│ ↑ 12.5% │ ← text-sm, semantic-green, weight-semibold
|
|
85
|
+
└──────────────────┘
|
|
86
|
+
```
|
|
87
|
+
Trend color: `var(--semantic-green)` for positive, `var(--semantic-red)` for negative.
|
|
88
|
+
|
|
89
|
+
## Preset 3: Ops Cockpit
|
|
90
|
+
|
|
91
|
+
Real-time monitoring with status indicators and alert feeds.
|
|
92
|
+
|
|
93
|
+
**Best for:** DevOps, server monitoring, IoT, logistics tracking.
|
|
94
|
+
|
|
95
|
+
**Default theme:** Dark (strongly recommended).
|
|
96
|
+
|
|
97
|
+
**Layout composition:**
|
|
98
|
+
```
|
|
99
|
+
TOP BAR: Logo + OPS COCKPIT subtitle + Nav + Alert counter badge + Theme Toggle + [● OPERATIONAL] / [⚠ DEGRADED] badge
|
|
100
|
+
STATS ROW: Status-colored stat cards (green = healthy, red = alerts, amber = warnings)
|
|
101
|
+
NO TAB BAR (single view, dense)
|
|
102
|
+
SIDEBAR (compact, 180px):
|
|
103
|
+
Section: SYSTEMS — list of systems with status dots (●green, ●red, ●amber)
|
|
104
|
+
Section: FILTERS — checkbox filters
|
|
105
|
+
CONTENT (3-column grid):
|
|
106
|
+
Col 1: Alert feed (stacked event cards, newest first)
|
|
107
|
+
Col 2: System status cards (grid of status cards with pulse animation)
|
|
108
|
+
Col 3: Quick stats + Mode Panel (stacked)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Alert feed card:**
|
|
112
|
+
```
|
|
113
|
+
┌───────────────────────────────────────┐
|
|
114
|
+
│ ⚠ 12:34 [CRITICAL badge] │
|
|
115
|
+
│ Server db-prod-01 CPU at 98% │
|
|
116
|
+
│ Triggered by: auto-monitor │
|
|
117
|
+
└───────────────────────────────────────┘
|
|
118
|
+
```
|
|
119
|
+
- Left border: 3px solid `var(--semantic-red)` (or amber/green)
|
|
120
|
+
- Timestamp: mono, `--text-xs`, `--text-muted`
|
|
121
|
+
|
|
122
|
+
**Status card with pulse:**
|
|
123
|
+
```
|
|
124
|
+
┌──────────────────┐
|
|
125
|
+
│ MONO LABEL │
|
|
126
|
+
│ ● ONLINE │ ← green dot with pulseGlow animation
|
|
127
|
+
│ CPU: 45% ███░ │
|
|
128
|
+
│ MEM: 72% █████ │
|
|
129
|
+
│ DISK: 31% ██░░ │
|
|
130
|
+
└──────────────────┘
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Preset 4: CRM / Contact Manager
|
|
134
|
+
|
|
135
|
+
Entity-centric with list-detail split view.
|
|
136
|
+
|
|
137
|
+
**Best for:** CRM, contact management, customer support, HR.
|
|
138
|
+
|
|
139
|
+
**Default theme:** Light (dark optional).
|
|
140
|
+
|
|
141
|
+
**Layout composition:**
|
|
142
|
+
```
|
|
143
|
+
TOP BAR: Logo + CRM subtitle + Nav + Search input + Theme Toggle
|
|
144
|
+
TAB BAR: Contacts | Companies | Deals | Pipeline | Settings
|
|
145
|
+
LIST-DETAIL SPLIT:
|
|
146
|
+
List (340px): Contact cards (avatar 40px + name + role + status badge)
|
|
147
|
+
Detail: Profile Header (compact) + Stat cards + Sub-tabs (Info | History | Notes)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Contact list item:**
|
|
151
|
+
```
|
|
152
|
+
┌──────────────────────────────────────┐
|
|
153
|
+
│ [Avatar 40px] Name ● │
|
|
154
|
+
│ Role, Company │
|
|
155
|
+
│ Last: 2 days ago │
|
|
156
|
+
└──────────────────────────────────────┘
|
|
157
|
+
```
|
|
158
|
+
Active: `border-left: 3px solid var(--accent)`, `background: var(--bg-elevated)`
|
|
159
|
+
|
|
160
|
+
## How an Agent Uses a Preset
|
|
161
|
+
|
|
162
|
+
1. **User says:** "Build me an inventory management dashboard"
|
|
163
|
+
2. **Agent reads:** `design/SKILL.md` → classifies as "Dashboard"
|
|
164
|
+
3. **Agent reads:** `foundations/SKILL.md` → gets CSS variables
|
|
165
|
+
4. **Agent reads:** `components/SKILL.md` → gets building blocks
|
|
166
|
+
5. **Agent reads:** `patterns/SKILL.md` → gets Dashboard Shell layout
|
|
167
|
+
6. **Agent reads:** `dashboards/SKILL.md` → picks **Premium Control Center** preset
|
|
168
|
+
7. **Agent maps domain:**
|
|
169
|
+
- Entity → Product
|
|
170
|
+
- Apex Score → Stock Health Score
|
|
171
|
+
- DNA Panel → Product metrics (stock level, turnover, margin)
|
|
172
|
+
- System Cards → Features (auto-restock, alerts, tracking, sync)
|
|
173
|
+
- Mode Panel → "Gestão Inteligente" / current operational mode
|
|
174
|
+
8. **Agent builds** the interface using all tokens and patterns, in whatever technology the agent is targeting
|
|
175
|
+
|
|
176
|
+
## Mixing Presets
|
|
177
|
+
|
|
178
|
+
Presets can be combined. Common mixes:
|
|
179
|
+
|
|
180
|
+
- **Control Center + Analytics**: DNA panels at top, data tables below
|
|
181
|
+
- **Analytics + CRM**: Stats row + split view with table on left, detail on right
|
|
182
|
+
- **Ops Cockpit + Control Center**: Alert feed sidebar + Mode Panel + DNA metrics
|
|
183
|
+
|
|
184
|
+
Always use the Dashboard Shell from patterns as the outer frame.
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-foundations
|
|
3
|
+
description: Core design tokens for the Cognitive Core visual identity — color palette, typography, spacing, border radius, shadows, and dual dark/light theme CSS variables. This is the base layer that ALL other design modules depend on. Load this FIRST before any other design module.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Foundations — Design Tokens
|
|
7
|
+
|
|
8
|
+
This module defines the visual primitives. Every other module depends on these CSS variables.
|
|
9
|
+
|
|
10
|
+
## Google Fonts
|
|
11
|
+
|
|
12
|
+
Always include first:
|
|
13
|
+
```css
|
|
14
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Complete CSS Variables
|
|
18
|
+
|
|
19
|
+
Include this full block in every project. The `data-theme` attribute switches all values automatically.
|
|
20
|
+
|
|
21
|
+
```css
|
|
22
|
+
/* ═══ DARK THEME ═══ */
|
|
23
|
+
[data-theme="dark"] {
|
|
24
|
+
--bg-void: #060910;
|
|
25
|
+
--bg-base: #0B0F15;
|
|
26
|
+
--bg-surface: #111827;
|
|
27
|
+
--bg-elevated: #1A2332;
|
|
28
|
+
--bg-overlay: #243044;
|
|
29
|
+
|
|
30
|
+
--border-subtle: rgba(255,255,255,0.06);
|
|
31
|
+
--border-medium: rgba(255,255,255,0.10);
|
|
32
|
+
--border-strong: rgba(255,255,255,0.16);
|
|
33
|
+
--border-accent: rgba(34,211,238,0.3);
|
|
34
|
+
--border-accent-strong: rgba(34,211,238,0.6);
|
|
35
|
+
|
|
36
|
+
--text-primary: #E5E7EB;
|
|
37
|
+
--text-secondary: #9CA3AF;
|
|
38
|
+
--text-muted: #6B7280;
|
|
39
|
+
--text-accent: #22D3EE;
|
|
40
|
+
--text-heading: #F9FAFB;
|
|
41
|
+
--text-inverse: #111827;
|
|
42
|
+
|
|
43
|
+
--accent: #22D3EE;
|
|
44
|
+
--accent-dim: rgba(14,116,144,0.3);
|
|
45
|
+
--accent-glow: rgba(34,211,238,0.15);
|
|
46
|
+
--accent-hover: #06B6D4;
|
|
47
|
+
--accent-subtle: rgba(34,211,238,0.08);
|
|
48
|
+
|
|
49
|
+
--semantic-green: #10B981;
|
|
50
|
+
--semantic-green-dim: rgba(6,95,70,0.4);
|
|
51
|
+
--semantic-red: #EF4444;
|
|
52
|
+
--semantic-red-dim: rgba(153,27,27,0.4);
|
|
53
|
+
--semantic-amber: #F59E0B;
|
|
54
|
+
--semantic-amber-dim: rgba(146,64,14,0.4);
|
|
55
|
+
--semantic-blue: #3B82F6;
|
|
56
|
+
--semantic-blue-dim: rgba(37,99,235,0.3);
|
|
57
|
+
--semantic-purple: #8B5CF6;
|
|
58
|
+
--semantic-purple-dim: rgba(109,40,217,0.3);
|
|
59
|
+
|
|
60
|
+
--shadow-sm: 0 1px 3px rgba(0,0,0,0.3), 0 1px 2px rgba(0,0,0,0.2);
|
|
61
|
+
--shadow-md: 0 4px 12px rgba(0,0,0,0.4);
|
|
62
|
+
--shadow-lg: 0 8px 24px rgba(0,0,0,0.5);
|
|
63
|
+
--shadow-glow: 0 0 20px rgba(34,211,238,0.1), 0 0 6px rgba(34,211,238,0.05);
|
|
64
|
+
--shadow-glow-strong: 0 0 30px rgba(34,211,238,0.2), 0 0 10px rgba(34,211,238,0.1);
|
|
65
|
+
--shadow-glow-accent: 0 0 40px rgba(34,211,238,0.15);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* ═══ LIGHT THEME ═══ */
|
|
69
|
+
[data-theme="light"] {
|
|
70
|
+
--bg-void: #F1F5F9;
|
|
71
|
+
--bg-base: #F8FAFC;
|
|
72
|
+
--bg-surface: #FFFFFF;
|
|
73
|
+
--bg-elevated: #F1F5F9;
|
|
74
|
+
--bg-overlay: #E2E8F0;
|
|
75
|
+
|
|
76
|
+
--border-subtle: rgba(0,0,0,0.06);
|
|
77
|
+
--border-medium: rgba(0,0,0,0.10);
|
|
78
|
+
--border-strong: rgba(0,0,0,0.16);
|
|
79
|
+
--border-accent: rgba(8,145,178,0.25);
|
|
80
|
+
--border-accent-strong: rgba(8,145,178,0.5);
|
|
81
|
+
|
|
82
|
+
--text-primary: #334155;
|
|
83
|
+
--text-secondary: #64748B;
|
|
84
|
+
--text-muted: #94A3B8;
|
|
85
|
+
--text-accent: #0891B2;
|
|
86
|
+
--text-heading: #0F172A;
|
|
87
|
+
--text-inverse: #F9FAFB;
|
|
88
|
+
|
|
89
|
+
--accent: #0891B2;
|
|
90
|
+
--accent-dim: rgba(8,145,178,0.10);
|
|
91
|
+
--accent-glow: rgba(8,145,178,0.08);
|
|
92
|
+
--accent-hover: #0E7490;
|
|
93
|
+
--accent-subtle: rgba(8,145,178,0.04);
|
|
94
|
+
|
|
95
|
+
--semantic-green: #059669;
|
|
96
|
+
--semantic-green-dim: rgba(5,150,105,0.10);
|
|
97
|
+
--semantic-red: #DC2626;
|
|
98
|
+
--semantic-red-dim: rgba(220,38,38,0.10);
|
|
99
|
+
--semantic-amber: #D97706;
|
|
100
|
+
--semantic-amber-dim: rgba(217,119,6,0.10);
|
|
101
|
+
--semantic-blue: #2563EB;
|
|
102
|
+
--semantic-blue-dim: rgba(37,99,235,0.10);
|
|
103
|
+
--semantic-purple: #7C3AED;
|
|
104
|
+
--semantic-purple-dim: rgba(124,58,237,0.10);
|
|
105
|
+
|
|
106
|
+
--shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
|
|
107
|
+
--shadow-md: 0 4px 12px rgba(0,0,0,0.08);
|
|
108
|
+
--shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
|
|
109
|
+
--shadow-glow: 0 2px 8px rgba(8,145,178,0.08), 0 1px 3px rgba(0,0,0,0.06);
|
|
110
|
+
--shadow-glow-strong: 0 4px 16px rgba(8,145,178,0.12);
|
|
111
|
+
--shadow-glow-accent: 0 0 30px rgba(8,145,178,0.08);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ═══ SHARED (both themes) ═══ */
|
|
115
|
+
[data-theme="dark"], [data-theme="light"] {
|
|
116
|
+
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
|
|
117
|
+
--font-body: 'Inter', system-ui, sans-serif;
|
|
118
|
+
--font-display: 'Inter', system-ui, sans-serif;
|
|
119
|
+
|
|
120
|
+
--text-xs: 0.675rem; /* 10.8px — micro labels */
|
|
121
|
+
--text-sm: 0.75rem; /* 12px */
|
|
122
|
+
--text-base: 0.875rem; /* 14px — default body */
|
|
123
|
+
--text-lg: 1rem; /* 16px */
|
|
124
|
+
--text-xl: 1.25rem; /* 20px */
|
|
125
|
+
--text-2xl: 1.5rem; /* 24px */
|
|
126
|
+
--text-3xl: 2rem; /* 32px */
|
|
127
|
+
--text-4xl: 2.75rem; /* 44px */
|
|
128
|
+
--text-5xl: 3.5rem; /* 56px — hero headings */
|
|
129
|
+
|
|
130
|
+
--weight-light: 300;
|
|
131
|
+
--weight-normal: 400;
|
|
132
|
+
--weight-medium: 500;
|
|
133
|
+
--weight-semibold: 600;
|
|
134
|
+
--weight-bold: 700;
|
|
135
|
+
--weight-black: 900;
|
|
136
|
+
|
|
137
|
+
--tracking-tight: -0.02em;
|
|
138
|
+
--tracking-normal: 0;
|
|
139
|
+
--tracking-wide: 0.05em;
|
|
140
|
+
--tracking-wider: 0.1em;
|
|
141
|
+
--tracking-widest: 0.15em;
|
|
142
|
+
|
|
143
|
+
--leading-none: 1;
|
|
144
|
+
--leading-tight: 1.1;
|
|
145
|
+
--leading-snug: 1.3;
|
|
146
|
+
--leading-normal: 1.5;
|
|
147
|
+
--leading-relaxed: 1.65;
|
|
148
|
+
|
|
149
|
+
--space-0: 0;
|
|
150
|
+
--space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem;
|
|
151
|
+
--space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem;
|
|
152
|
+
--space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
|
|
153
|
+
--space-16: 4rem; --space-20: 5rem; --space-24: 6rem;
|
|
154
|
+
|
|
155
|
+
--radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem;
|
|
156
|
+
--radius-xl: 1rem; --radius-2xl: 1.5rem; --radius-full: 9999px;
|
|
157
|
+
|
|
158
|
+
--transition-fast: 150ms ease;
|
|
159
|
+
--transition-base: 200ms ease;
|
|
160
|
+
--transition-slow: 300ms ease;
|
|
161
|
+
--transition-theme: background 250ms ease, color 250ms ease, border-color 250ms ease, box-shadow 250ms ease;
|
|
162
|
+
|
|
163
|
+
--z-base: 0; --z-elevated: 10; --z-dropdown: 20;
|
|
164
|
+
--z-sticky: 30; --z-modal: 50; --z-toast: 60;
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Typography Patterns
|
|
169
|
+
|
|
170
|
+
These are the recurring text styles. Apply them directly — don't create CSS classes.
|
|
171
|
+
|
|
172
|
+
### Mono Label (most distinctive element of the identity)
|
|
173
|
+
```
|
|
174
|
+
font-family: var(--font-mono)
|
|
175
|
+
font-size: var(--text-xs)
|
|
176
|
+
font-weight: var(--weight-semibold)
|
|
177
|
+
letter-spacing: var(--tracking-widest)
|
|
178
|
+
text-transform: uppercase
|
|
179
|
+
color: var(--text-secondary)
|
|
180
|
+
```
|
|
181
|
+
Used for: section headers, category labels, stat labels, nav labels, badge text, timestamps, IDs.
|
|
182
|
+
|
|
183
|
+
### Display Heading
|
|
184
|
+
```
|
|
185
|
+
font-family: var(--font-display)
|
|
186
|
+
font-weight: var(--weight-black)
|
|
187
|
+
letter-spacing: var(--tracking-tight)
|
|
188
|
+
color: var(--text-heading)
|
|
189
|
+
line-height: var(--leading-tight)
|
|
190
|
+
```
|
|
191
|
+
Sizes: `--text-5xl` (hero), `--text-3xl` (page title), `--text-2xl` (section), `--text-xl` (card title).
|
|
192
|
+
|
|
193
|
+
### Stat Number
|
|
194
|
+
```
|
|
195
|
+
font-family: var(--font-body)
|
|
196
|
+
font-size: var(--text-4xl)
|
|
197
|
+
font-weight: var(--weight-bold)
|
|
198
|
+
color: var(--text-heading)
|
|
199
|
+
line-height: var(--leading-none)
|
|
200
|
+
```
|
|
201
|
+
Pair with a suffix span: `font-size: var(--text-lg); color: var(--text-muted)`.
|
|
202
|
+
|
|
203
|
+
### Body Text
|
|
204
|
+
```
|
|
205
|
+
font-family: var(--font-body)
|
|
206
|
+
font-size: var(--text-base)
|
|
207
|
+
color: var(--text-primary)
|
|
208
|
+
line-height: var(--leading-relaxed)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Accent Link
|
|
212
|
+
```
|
|
213
|
+
color: var(--text-accent)
|
|
214
|
+
font-weight: var(--weight-medium)
|
|
215
|
+
text-decoration: none
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Visual Direction
|
|
219
|
+
|
|
220
|
+
### For Dashboards / Admin
|
|
221
|
+
- Dense, compact spacing
|
|
222
|
+
- Dark theme default
|
|
223
|
+
- Heavy use of mono labels
|
|
224
|
+
- Card grids for data
|
|
225
|
+
- Stat cards with large numbers
|
|
226
|
+
|
|
227
|
+
### For Frontpages / Landing Pages
|
|
228
|
+
- Generous whitespace (use `--space-16` to `--space-24` between sections)
|
|
229
|
+
- Light theme default (dark as option)
|
|
230
|
+
- Hero section with `--text-5xl` heading
|
|
231
|
+
- Mix of display headings + body text
|
|
232
|
+
- Cards used for features/benefits
|
|
233
|
+
- Full-width sections with alternating backgrounds
|
|
234
|
+
|
|
235
|
+
### For Institutional / Corporate
|
|
236
|
+
- Clean, structured
|
|
237
|
+
- Light theme default
|
|
238
|
+
- Professional spacing
|
|
239
|
+
- Emphasis on readability
|
|
240
|
+
- Subtle accent usage
|
|
241
|
+
- Cards for team, services, values
|
|
242
|
+
|
|
243
|
+
## Non-Negotiable Rules
|
|
244
|
+
|
|
245
|
+
1. **Never pure black or white text** — always use the CSS variables
|
|
246
|
+
2. **Mono labels on every section** — this is the identity signature
|
|
247
|
+
3. **Three depth levels minimum** — void → base → surface (or base → surface → elevated)
|
|
248
|
+
4. **Teal/cyan is the only accent** — never change the primary accent color
|
|
249
|
+
5. **JetBrains Mono + Inter** — never use other fonts
|
|
250
|
+
6. **Theme transition** — always add `transition: var(--transition-theme)` to themed containers
|
|
Binary file
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-motion
|
|
3
|
+
description: Animation and motion patterns for the Cognitive Core design system — entrance animations, hover effects, loading states, scroll reveals, theme transitions, and micro-interactions. Load foundations first. Use when building pages that need animation polish, especially landing pages, frontpages, and interactive dashboards.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Motion — Animation System
|
|
7
|
+
|
|
8
|
+
Requires: `foundations/SKILL.md` loaded first.
|
|
9
|
+
|
|
10
|
+
Motion in Cognitive Core is **purposeful and restrained**. Dashboards use minimal motion (fast transitions, no flashy animations). Landing pages and frontpages use more dramatic entrances and scroll effects.
|
|
11
|
+
|
|
12
|
+
**Note:** CSS keyframes and transition values below are universal. Implementation examples (event handlers, observers) are illustrative — adapt to whatever framework the agent targets.
|
|
13
|
+
|
|
14
|
+
## Principles
|
|
15
|
+
|
|
16
|
+
1. **Functional first** — Every animation communicates state change or hierarchy
|
|
17
|
+
2. **Fast transitions** — UI state changes: 150ms. Theme changes: 250ms. Entrances: 400-600ms.
|
|
18
|
+
3. **Ease curves** — Default: `ease`. Entrances: `cubic-bezier(0.16, 1, 0.3, 1)` (smooth decelerate)
|
|
19
|
+
4. **No bounce, no elastic** — This is a command center, not a toy
|
|
20
|
+
|
|
21
|
+
## CSS Keyframes
|
|
22
|
+
|
|
23
|
+
Include these in your `<style>` block:
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
@keyframes fadeInUp {
|
|
27
|
+
from { opacity: 0; transform: translateY(20px); }
|
|
28
|
+
to { opacity: 1; transform: translateY(0); }
|
|
29
|
+
}
|
|
30
|
+
@keyframes fadeInDown {
|
|
31
|
+
from { opacity: 0; transform: translateY(-12px); }
|
|
32
|
+
to { opacity: 1; transform: translateY(0); }
|
|
33
|
+
}
|
|
34
|
+
@keyframes fadeIn {
|
|
35
|
+
from { opacity: 0; }
|
|
36
|
+
to { opacity: 1; }
|
|
37
|
+
}
|
|
38
|
+
@keyframes slideInLeft {
|
|
39
|
+
from { opacity: 0; transform: translateX(-20px); }
|
|
40
|
+
to { opacity: 1; transform: translateX(0); }
|
|
41
|
+
}
|
|
42
|
+
@keyframes slideInRight {
|
|
43
|
+
from { opacity: 0; transform: translateX(20px); }
|
|
44
|
+
to { opacity: 1; transform: translateX(0); }
|
|
45
|
+
}
|
|
46
|
+
@keyframes scaleIn {
|
|
47
|
+
from { opacity: 0; transform: scale(0.95); }
|
|
48
|
+
to { opacity: 1; transform: scale(1); }
|
|
49
|
+
}
|
|
50
|
+
@keyframes pulseGlow {
|
|
51
|
+
0%, 100% { box-shadow: 0 0 20px var(--accent-glow); }
|
|
52
|
+
50% { box-shadow: var(--shadow-glow-strong); }
|
|
53
|
+
}
|
|
54
|
+
@keyframes shimmer {
|
|
55
|
+
0% { background-position: -200% 0; }
|
|
56
|
+
100% { background-position: 200% 0; }
|
|
57
|
+
}
|
|
58
|
+
@keyframes progressFill {
|
|
59
|
+
from { width: 0%; }
|
|
60
|
+
}
|
|
61
|
+
@keyframes countUp {
|
|
62
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
63
|
+
to { opacity: 1; transform: translateY(0); }
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Entrance Patterns
|
|
68
|
+
|
|
69
|
+
### Page Load Sequence (staggered)
|
|
70
|
+
|
|
71
|
+
Apply to dashboard elements in this order, using `animation-delay`:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Top bar: fadeInDown 0ms 300ms duration
|
|
75
|
+
Stats row: fadeInUp 100ms 400ms duration (each card +80ms delay)
|
|
76
|
+
Tab bar: fadeIn 250ms 300ms
|
|
77
|
+
Sidebar: slideInLeft 200ms 400ms
|
|
78
|
+
Content: fadeInUp 350ms 500ms (each card in grid +60ms stagger)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Stagger formula:** For each item at index `i`, apply `animation-delay: base + (i × step)ms`. Typical values: base = 350ms, step = 60ms.
|
|
82
|
+
|
|
83
|
+
```css
|
|
84
|
+
/* Example: stagger cards in a grid */
|
|
85
|
+
.card:nth-child(1) { animation-delay: 350ms; }
|
|
86
|
+
.card:nth-child(2) { animation-delay: 410ms; }
|
|
87
|
+
.card:nth-child(3) { animation-delay: 470ms; }
|
|
88
|
+
/* ... pattern: 350 + (n × 60) */
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Landing Page Hero Entrance
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Mono label: fadeInUp 0ms 500ms
|
|
95
|
+
Heading: fadeInUp 150ms 600ms
|
|
96
|
+
Subtitle: fadeInUp 300ms 500ms
|
|
97
|
+
CTA buttons: fadeInUp 450ms 500ms
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Modal Entrance
|
|
101
|
+
|
|
102
|
+
```css
|
|
103
|
+
.modal-backdrop { animation: fadeIn 200ms ease both; }
|
|
104
|
+
.modal-content { animation: scaleIn 300ms cubic-bezier(0.16, 1, 0.3, 1) both; }
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Hover Effects
|
|
108
|
+
|
|
109
|
+
### Card Hover (default for all cards)
|
|
110
|
+
```css
|
|
111
|
+
.card {
|
|
112
|
+
transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
|
|
113
|
+
}
|
|
114
|
+
.card:hover {
|
|
115
|
+
border-color: var(--border-medium);
|
|
116
|
+
box-shadow: var(--shadow-glow);
|
|
117
|
+
transform: translateY(-2px);
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Button Hover
|
|
122
|
+
Primary: darken background. Secondary: accent border + accent text.
|
|
123
|
+
```
|
|
124
|
+
transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Link Hover
|
|
128
|
+
```
|
|
129
|
+
color: var(--text-accent) → var(--accent-hover)
|
|
130
|
+
transition: color 150ms ease
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Tab Hover
|
|
134
|
+
Non-active tab: `background: var(--bg-elevated)`, `border-radius: var(--radius-md) var(--radius-md) 0 0`
|
|
135
|
+
|
|
136
|
+
### Sidebar Item Hover
|
|
137
|
+
`background: var(--bg-elevated)`, `color: var(--text-primary)`
|
|
138
|
+
|
|
139
|
+
## Loading States
|
|
140
|
+
|
|
141
|
+
### Skeleton Loading (shimmer)
|
|
142
|
+
```css
|
|
143
|
+
.skeleton {
|
|
144
|
+
background: linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-overlay) 50%, var(--bg-elevated) 75%);
|
|
145
|
+
background-size: 200% 100%;
|
|
146
|
+
animation: shimmer 1.5s ease-in-out infinite;
|
|
147
|
+
border-radius: var(--radius-md);
|
|
148
|
+
}
|
|
149
|
+
/* Apply with specific height/width per placeholder element */
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Pulse Glow (for Mode Panel when "active")
|
|
153
|
+
```css
|
|
154
|
+
animation: pulseGlow 3s ease-in-out infinite;
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Progress Bar Animation
|
|
158
|
+
When progress bars first appear:
|
|
159
|
+
```css
|
|
160
|
+
animation: progressFill 800ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Stat Number Count-up
|
|
164
|
+
```css
|
|
165
|
+
animation: countUp 600ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Theme Transition
|
|
169
|
+
|
|
170
|
+
When toggling dark/light:
|
|
171
|
+
```css
|
|
172
|
+
transition: var(--transition-theme);
|
|
173
|
+
/* = background 250ms ease, color 250ms ease, border-color 250ms ease, box-shadow 250ms ease */
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Apply to ALL themed containers.
|
|
177
|
+
|
|
178
|
+
## Scroll-Triggered Animations (Landing Pages)
|
|
179
|
+
|
|
180
|
+
Use IntersectionObserver (or framework equivalent) to trigger entrance animations when elements scroll into view.
|
|
181
|
+
|
|
182
|
+
**Behavior spec:**
|
|
183
|
+
- Observe each section/card with `threshold: 0.15`
|
|
184
|
+
- On intersect: transition from `opacity: 0; transform: translateY(24px)` to `opacity: 1; transform: translateY(0)`
|
|
185
|
+
- Duration: `600ms`, curve: `cubic-bezier(0.16, 1, 0.3, 1)`
|
|
186
|
+
- Stagger delay per item: `+80ms`
|
|
187
|
+
- Fire once — disconnect observer after triggering
|
|
188
|
+
|
|
189
|
+
## When to Use What
|
|
190
|
+
|
|
191
|
+
| Context | Motion Level | Techniques |
|
|
192
|
+
|---|---|---|
|
|
193
|
+
| Dashboard | Minimal | Card hover, tab switch, theme transition, progress bar fill |
|
|
194
|
+
| Landing page | Moderate | Staggered entrances, scroll reveals, hero sequence, card hovers |
|
|
195
|
+
| Frontpage | Moderate | Hero entrance, scroll reveals, CTA glow pulse |
|
|
196
|
+
| Modal/Detail | Light | scaleIn entrance, fadeIn backdrop |
|
|
197
|
+
| Loading state | Ambient | Skeleton shimmer, pulse glow |
|