@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,215 @@
|
|
|
1
|
+
# Visual System — Premium Command Center UI
|
|
2
|
+
|
|
3
|
+
> Extracted from the real AIOS Dashboard implementation. Preserves the aurora-glass premium command-center language.
|
|
4
|
+
|
|
5
|
+
This is not a generic dark dashboard guide. It captures the concrete moves that produce the premium operational feel:
|
|
6
|
+
|
|
7
|
+
- Tri-rail shell: left navigation, center workspace, right activity rail
|
|
8
|
+
- Aurora-glass surfaces with strong contrast and restrained semantic color
|
|
9
|
+
- Compact density tuned for operational reading, not marketing whitespace
|
|
10
|
+
- Search-first interaction via top search bar + command palette
|
|
11
|
+
- Contextual right rail with status / history / metrics tabs
|
|
12
|
+
- Page archetypes built around runtime priority, not equal-weight card walls
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Foundation — dark graphite
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Background base : #0b1015 (deep graphite)
|
|
20
|
+
Background surface : #10161d (panel, card surfaces)
|
|
21
|
+
Background elevated: #151c24 (modals, dropdowns, hover states)
|
|
22
|
+
Background sunken : #080c11 (inputs, inset areas)
|
|
23
|
+
|
|
24
|
+
Foreground primary : #f3f7fb
|
|
25
|
+
Foreground secondary: #b7c2cf
|
|
26
|
+
Foreground muted : #7f8b99
|
|
27
|
+
Foreground faint : #4a5568 (decorative only)
|
|
28
|
+
|
|
29
|
+
Border default : rgba(255,255,255,0.08)
|
|
30
|
+
Border strong : rgba(255,255,255,0.15)
|
|
31
|
+
Border accent : rgba(99,179,237,0.30)
|
|
32
|
+
|
|
33
|
+
Brand accent : desaturated blue-teal family (never neon)
|
|
34
|
+
Accent light : #63b3ed
|
|
35
|
+
Accent muted : #4a90a4
|
|
36
|
+
|
|
37
|
+
Semantic green : #38a169
|
|
38
|
+
Semantic amber : #d97706
|
|
39
|
+
Semantic red : #e53e3e
|
|
40
|
+
Semantic blue : #4299e1
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Aurora accent — use sparingly, never everywhere:
|
|
44
|
+
```css
|
|
45
|
+
/* Aurora field on page background, not on every card */
|
|
46
|
+
.aurora-field {
|
|
47
|
+
background: radial-gradient(ellipse 1200px 800px at 20% 20%,
|
|
48
|
+
rgba(99,179,237,0.04), transparent 60%);
|
|
49
|
+
pointer-events: none;
|
|
50
|
+
position: fixed; inset: 0; z-index: 0;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Typography
|
|
57
|
+
|
|
58
|
+
- **Heading font**: Clean system grotesk or neutral premium sans (Geist, Manrope, IBM Plex Sans, or system-ui)
|
|
59
|
+
- **Body font**: Same family as heading at regular weight
|
|
60
|
+
- **Mono**: Reserved for operational metadata, IDs, code, timestamps — never prose
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Page title : 20–22px, weight 600, tracking -0.01em
|
|
64
|
+
Section heading: 14–16px, weight 600, tracking -0.01em
|
|
65
|
+
Body : 13–14px, weight 400, line-height 1.5
|
|
66
|
+
Helper / meta : 11–12px, weight 400, muted color
|
|
67
|
+
Mono / data : 11–12px, JetBrains Mono or SF Mono
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Spacing
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Base: 4px
|
|
76
|
+
Scale: 4 / 8 / 12 / 16 / 24 / 32 / 48
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Never use arbitrary values. Every measurement is a multiple of 4.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Admin panel density — settings, config, entity management
|
|
84
|
+
|
|
85
|
+
The premium command center uses **tight operational spacing** for admin and config screens. These values are concrete — apply them directly.
|
|
86
|
+
|
|
87
|
+
### Card scale
|
|
88
|
+
|
|
89
|
+
| Level | Use | Padding | Radius |
|
|
90
|
+
|---|---|---|---|
|
|
91
|
+
| L1 | top-level section card | `16px` | `22px` |
|
|
92
|
+
| L2 | nested card inside L1 | `12px` | `18px` |
|
|
93
|
+
| L3 | inset block, disclosure body, info row | `10px` | `14px` |
|
|
94
|
+
|
|
95
|
+
Section gap between L1 cards: `12px`.
|
|
96
|
+
|
|
97
|
+
### Card headers
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Eyebrow : font-mono 10–11px uppercase letter-spacing: 0.28em color: muted
|
|
101
|
+
Title : 15px font-weight: 600 — max size inside a card
|
|
102
|
+
Meta : font-mono 10px truncate single line — path, ID, workspace name
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**No paragraph descriptions inside admin cards.** One eyebrow + one title + optional single-line meta is sufficient. Everything else belongs in a collapsed disclosure or a tooltip.
|
|
106
|
+
|
|
107
|
+
### Controls in admin context
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
Input / Select : height 32px (py-2 px-3) font-size 12px border-radius 10–12px
|
|
111
|
+
Label : font-size 10–11px margin-bottom 2px
|
|
112
|
+
Button action : py-2 px-3 font-size 12px border-radius 10–12px
|
|
113
|
+
Button micro : py-1 px-2.5 font-size 10–11px border-radius 10px
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Row items (provider lists, agent lists)
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
Row padding : py-2 (8px) divide-y separator
|
|
120
|
+
Name width : 96px (fixed) text-xs font-medium
|
|
121
|
+
Model : flex-1 truncate font-mono font-size 10–11px
|
|
122
|
+
Badges : px-2 py-0.5 font-size 9–10px
|
|
123
|
+
Edit btn : px-2.5 py-1 font-size 10–11px
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Entity grids (projects, agents, squads)
|
|
127
|
+
|
|
128
|
+
Same-type entities go in a grid — never full-width stacked:
|
|
129
|
+
```
|
|
130
|
+
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr))
|
|
131
|
+
gap: 12px
|
|
132
|
+
Card: rounded-18 p-3
|
|
133
|
+
Card header: name (text-sm semibold) + ID (mono 9px truncate)
|
|
134
|
+
Card badges: px-2 py-0.5 text-[9-10px]
|
|
135
|
+
Card actions: compact row, py-1.5, font-size 10–11px
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Add/Edit forms → Modal pattern
|
|
139
|
+
|
|
140
|
+
Entity add/edit always opens a modal — not inline expansion:
|
|
141
|
+
```
|
|
142
|
+
Modal: max-w-448px centered rounded-22px p-20px
|
|
143
|
+
Overlay: bg-black/50 backdrop-blur
|
|
144
|
+
Header: eyebrow + title (text-base) + close button (top right)
|
|
145
|
+
Form: single-column grid gap: 10px
|
|
146
|
+
Submit: full-width py-2 text-xs
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Disclosure — secondary tools
|
|
150
|
+
|
|
151
|
+
Sync, cloud connect, advanced settings behind `<details>`:
|
|
152
|
+
```
|
|
153
|
+
Summary: flex row px-3 py-2.5
|
|
154
|
+
Left: label (text-xs) + status badge (alinhado / N diffs)
|
|
155
|
+
Right: action button (micro size)
|
|
156
|
+
Body: border-t px-3 pb-3 pt-2 compact rows
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Anti-patterns — never do this in admin panels
|
|
160
|
+
|
|
161
|
+
- `padding: 24px` on inner section cards
|
|
162
|
+
- `font-size: 20–24px` headings inside cards
|
|
163
|
+
- Verbose description paragraphs in admin cards
|
|
164
|
+
- Full-width stacked entity cards (projects, providers)
|
|
165
|
+
- Inline accordion for add/edit forms
|
|
166
|
+
- `height: 40px+` inputs/buttons in dense tool contexts
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Depth — borders-first
|
|
171
|
+
|
|
172
|
+
Three surface levels maximum:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Level 0 — base (#0b1015) : page background
|
|
176
|
+
Level 1 — surface (#10161d) : cards, panels, nav rail
|
|
177
|
+
Level 2 — elevated (#151c24) : modals, dropdowns, hover overlays
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Rules:
|
|
181
|
+
- Borders separate before shadows
|
|
182
|
+
- One shadow family only: `0 4px 16px rgba(0,0,0,0.32)` — reserved for modals and floating elements
|
|
183
|
+
- No heavy glow effects on cards
|
|
184
|
+
- Aurora fields go on page background, not on individual components
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Radius
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Sharp : 6px (compact elements, badges, tags)
|
|
192
|
+
Medium : 10px (cards, inputs, buttons)
|
|
193
|
+
Large : 14px (panels, modals, sheets)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Control heights
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
Compact : 28px (toolbar items, inline actions)
|
|
202
|
+
Default : 34px (standard controls)
|
|
203
|
+
Tall : 40px (primary action buttons)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Signature rules
|
|
209
|
+
|
|
210
|
+
- Accent stays cool and controlled — no rainbow, no neon
|
|
211
|
+
- Status colors must remain strictly semantic (never decorative)
|
|
212
|
+
- Compact density: operational readout, not marketing whitespace
|
|
213
|
+
- High contrast without overload: borders quietly separate, they do not shout
|
|
214
|
+
- One focal block per screen region
|
|
215
|
+
- Three surface levels max — no more
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design
|
|
3
|
+
description: Cognitive Core Design System — a modular visual identity system for building dark/light themed dashboards, frontpages, admin panels, institutional sites, landing pages, and any web interface. Use this skill whenever asked to build, style, or design ANY web UI — dashboards, SaaS panels, landing pages, institutional websites, portfolio pages, command centers, admin tools, or frontpages. Triggers on phrases like "use the design skill", "cognitive core style", "apply the design system", "dark dashboard", "build a landing page", "create a frontpage", "mentes sinteticas layout", "build an admin panel", "create a website with our visual identity", or any request for a styled web interface. This skill routes to sub-modules — always read this file first, then load only the modules you need.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cognitive Core Design System
|
|
7
|
+
|
|
8
|
+
A modular visual identity system. Agents read THIS file first, then load only the sub-modules needed for the task.
|
|
9
|
+
|
|
10
|
+
## Architecture
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
skills/design/
|
|
14
|
+
├── SKILL.md ← YOU ARE HERE (router)
|
|
15
|
+
├── foundations/
|
|
16
|
+
│ └── SKILL.md ← Colors, typography, spacing, themes, CSS variables
|
|
17
|
+
├── components/
|
|
18
|
+
│ └── SKILL.md ← Cards, tables, sidebars, forms, modals, stats, badges
|
|
19
|
+
├── patterns/
|
|
20
|
+
│ └── SKILL.md ← Page-level layouts: dashboard, settings, auth, list-detail, frontpage
|
|
21
|
+
├── motion/
|
|
22
|
+
│ └── SKILL.md ← Animations: entrances, hovers, loading, transitions
|
|
23
|
+
└── dashboards/
|
|
24
|
+
└── SKILL.md ← Dashboard presets: control center, analytics, ops cockpit
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## How Agents Use This System
|
|
28
|
+
|
|
29
|
+
### Step 1: Read this file (you're doing it)
|
|
30
|
+
|
|
31
|
+
### Step 2: Classify the task
|
|
32
|
+
|
|
33
|
+
Determine what type of UI is being built:
|
|
34
|
+
|
|
35
|
+
| Task Type | Load These Modules |
|
|
36
|
+
|---|---|
|
|
37
|
+
| **Dashboard / Admin panel** | foundations → components → patterns → dashboards |
|
|
38
|
+
| **Landing page / Frontpage** | foundations → components → patterns → motion |
|
|
39
|
+
| **Institutional / Corporate site** | foundations → components → patterns → motion |
|
|
40
|
+
| **Settings / Config page** | foundations → components → patterns |
|
|
41
|
+
| **Auth page (login/register)** | foundations → components → patterns |
|
|
42
|
+
| **Single component** | foundations → components |
|
|
43
|
+
| **Quick styling fix** | foundations |
|
|
44
|
+
| **Animation work** | foundations → motion |
|
|
45
|
+
|
|
46
|
+
### Step 3: Read the required modules IN ORDER
|
|
47
|
+
|
|
48
|
+
Always start with `foundations/SKILL.md` — it has the CSS variables everything else depends on. Then read the others as needed.
|
|
49
|
+
|
|
50
|
+
### Step 4: Build
|
|
51
|
+
|
|
52
|
+
Compose the interface using tokens from foundations, building blocks from components, layouts from patterns, and animations from motion. For dashboards, the dashboards module has ready-to-use presets.
|
|
53
|
+
|
|
54
|
+
## Visual Identity Summary
|
|
55
|
+
|
|
56
|
+
The Cognitive Core aesthetic has three pillars:
|
|
57
|
+
|
|
58
|
+
1. **Command Center Authority** — Dense data, monospaced labels, large stat readouts, structured grids
|
|
59
|
+
2. **Premium Refinement** — Layered surfaces (3+ depth levels), subtle borders, teal/cyan accent as the "pulse"
|
|
60
|
+
3. **Structured Hierarchy** — Tabs, sidebars, card grids, section headers with icons, labeled zones
|
|
61
|
+
|
|
62
|
+
This applies to ALL output types — dashboards get the full treatment, but frontpages and institutional pages use the same typography, color system, and component vocabulary in a more open layout.
|
|
63
|
+
|
|
64
|
+
## Theme System
|
|
65
|
+
|
|
66
|
+
Every output supports dark/light toggle via `data-theme` attribute:
|
|
67
|
+
|
|
68
|
+
```html
|
|
69
|
+
<div data-theme="dark"> <!-- or "light" -->
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Toggle the attribute value to switch themes. The mechanism (state, JS toggle, server-side) depends on your stack.
|
|
73
|
+
|
|
74
|
+
Default to **dark** for dashboards/admin. Default to **light** for frontpages/institutional. Always include a theme toggle.
|
|
75
|
+
|
|
76
|
+
## Technology Boundary
|
|
77
|
+
|
|
78
|
+
This skill controls **visual identity only** — colors, typography, spacing, layout structure, component anatomy, and motion behavior. It does NOT dictate:
|
|
79
|
+
|
|
80
|
+
- Output format (HTML, JSX, Vue, Blade, Svelte, etc.)
|
|
81
|
+
- Framework or library choice
|
|
82
|
+
- Build tooling or bundling
|
|
83
|
+
- File structure or splitting strategy
|
|
84
|
+
|
|
85
|
+
The agent building the interface decides all technology concerns. This skill provides the **what it should look like**, the agent decides the **how to build it**.
|
|
86
|
+
|
|
87
|
+
Code examples in sub-modules use inline style objects for clarity. Treat them as **design specifications**, not copy-paste code. Adapt the property names and syntax to whatever technology the agent is targeting.
|
|
88
|
+
|
|
89
|
+
## Required Assets (all technologies)
|
|
90
|
+
|
|
91
|
+
- **Fonts**: Google Fonts — JetBrains Mono + Inter (import via CSS `@import` or `<link>` tag)
|
|
92
|
+
- **Icons**: Any icon library. Emoji placeholders in examples are just for illustration.
|
|
Binary file
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-components
|
|
3
|
+
description: Reusable UI components for the Cognitive Core design system — cards, tables, sidebars, forms, modals, stats blocks, badges, progress bars, buttons, inputs, and navigation elements. Load foundations/SKILL.md first. Use when building any part of a web interface that needs structured UI elements.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Components — UI Building Blocks
|
|
7
|
+
|
|
8
|
+
Requires: `foundations/SKILL.md` loaded first (CSS variables must be present).
|
|
9
|
+
|
|
10
|
+
All components use CSS variables and adapt to dark/light theme automatically.
|
|
11
|
+
|
|
12
|
+
**Note on examples:** Code snippets below use inline style objects as a **notation for design specs** — they describe visual properties, not mandate a technology. The agent decides whether to output CSS classes, Tailwind utilities, inline styles, styled-components, or anything else. Read the property-value pairs as a design specification. The shorthand `TT` in examples represents the theme transition: `transition: background 250ms ease, color 250ms ease, border-color 250ms ease, box-shadow 250ms ease`.
|
|
13
|
+
|
|
14
|
+
## 1. Stat Card
|
|
15
|
+
|
|
16
|
+
Large numeric readout with mono label. Used in stat rows at top of pages.
|
|
17
|
+
|
|
18
|
+
```jsx
|
|
19
|
+
<div style={{
|
|
20
|
+
background: 'var(--bg-surface)', border: '1px solid var(--border-subtle)',
|
|
21
|
+
borderRadius: 'var(--radius-lg)', padding: 'var(--space-4) var(--space-5)',
|
|
22
|
+
minWidth: 140, flex: 1, ...TT,
|
|
23
|
+
}}>
|
|
24
|
+
<div style={{ fontFamily: 'var(--font-mono)', fontSize: 'var(--text-xs)', color: 'var(--text-muted)',
|
|
25
|
+
letterSpacing: 'var(--tracking-widest)', textTransform: 'uppercase', fontWeight: 600, marginBottom: 'var(--space-1)' }}>
|
|
26
|
+
LABEL
|
|
27
|
+
</div>
|
|
28
|
+
<div style={{ display: 'flex', alignItems: 'baseline', gap: 4 }}>
|
|
29
|
+
<span style={{ fontFamily: 'var(--font-body)', fontSize: 'var(--text-4xl)', fontWeight: 700,
|
|
30
|
+
color: 'var(--text-heading)', lineHeight: 1 }}>42</span>
|
|
31
|
+
<span style={{ fontSize: 'var(--text-lg)', color: 'var(--text-muted)' }}>/100</span>
|
|
32
|
+
</div>
|
|
33
|
+
<div style={{ fontSize: 'var(--text-sm)', color: 'var(--text-muted)', marginTop: 'var(--space-1)' }}>
|
|
34
|
+
subtitle text
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Accent variant: replace `color: 'var(--text-heading)'` with `color: 'var(--semantic-green)'` (or red/amber).
|
|
40
|
+
|
|
41
|
+
## 2. Card (base)
|
|
42
|
+
|
|
43
|
+
The fundamental container. Everything lives in cards.
|
|
44
|
+
|
|
45
|
+
```jsx
|
|
46
|
+
const cardStyle = {
|
|
47
|
+
background: 'var(--bg-surface)',
|
|
48
|
+
border: '1px solid var(--border-subtle)',
|
|
49
|
+
borderRadius: 'var(--radius-lg)',
|
|
50
|
+
padding: 'var(--space-5)',
|
|
51
|
+
transition: 'var(--transition-theme), transform 150ms ease',
|
|
52
|
+
};
|
|
53
|
+
// Hover: borderColor → var(--border-medium), boxShadow → var(--shadow-glow), transform → translateY(-1px)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 3. Info Card (icon + title + description + quote)
|
|
57
|
+
|
|
58
|
+
Used in grids for features, capabilities, items.
|
|
59
|
+
|
|
60
|
+
Structure:
|
|
61
|
+
```
|
|
62
|
+
┌─────────────────────────────────┐
|
|
63
|
+
│ 📈 [icon] Badge text │ ← header row
|
|
64
|
+
│ Card Title │ ← accent color
|
|
65
|
+
│ Description text here that │ ← secondary color
|
|
66
|
+
│ explains the item. │
|
|
67
|
+
│ ┃ "Optional quote text" │ ← muted, left border
|
|
68
|
+
└─────────────────────────────────┘
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- Header: flex, space-between. Icon left, badge right (mono, `--text-xs`, muted).
|
|
72
|
+
- Title: `--text-lg`, `--weight-semibold`, `color: var(--text-accent)`
|
|
73
|
+
- Desc: `--text-base`, `--text-secondary`, `line-height: 1.5`
|
|
74
|
+
- Quote: italic, `--text-muted`, `border-left: 2px solid var(--accent-dim)`, `padding-left: var(--space-3)`
|
|
75
|
+
|
|
76
|
+
## 4. Profile Header
|
|
77
|
+
|
|
78
|
+
Entity header with avatar, name, role, badges, and stat cards.
|
|
79
|
+
|
|
80
|
+
Structure:
|
|
81
|
+
```
|
|
82
|
+
┌──────────────────────────────────────────────────────────┐
|
|
83
|
+
│ [Avatar 96px] BIG NAME [Badge] [Badge] │
|
|
84
|
+
│ ID: XXX Role (italic, accent) │
|
|
85
|
+
│ ✦ TAGLINE (mono, xs, muted) │
|
|
86
|
+
│ │
|
|
87
|
+
│ ┌─StatCard─┐ ┌─StatCard─┐ ┌─StatCard─┐ │
|
|
88
|
+
└──────────────────────────────────────────────────────────┘
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
- Avatar: `96px`, `border-radius: var(--radius-lg)`, `border: 2px solid var(--border-subtle)`
|
|
92
|
+
- ID: mono, `--text-xs`, absolute positioned below avatar
|
|
93
|
+
- Name: `--text-3xl`, `--weight-black`, `--tracking-tight`, `--text-heading`
|
|
94
|
+
- Role: `color: var(--text-accent)`, `font-style: italic`, `--text-lg`
|
|
95
|
+
- Badges: use Badge component (see below)
|
|
96
|
+
|
|
97
|
+
## 5. Badge / Chip
|
|
98
|
+
|
|
99
|
+
Three variants:
|
|
100
|
+
|
|
101
|
+
**Accent badge** (primary, active states):
|
|
102
|
+
```jsx
|
|
103
|
+
{ background: 'var(--accent-dim)', color: 'var(--accent)', border: '1px solid var(--border-accent)',
|
|
104
|
+
fontFamily: 'var(--font-mono)', fontSize: 'var(--text-xs)', fontWeight: 600,
|
|
105
|
+
letterSpacing: 'var(--tracking-wider)', textTransform: 'uppercase',
|
|
106
|
+
padding: '2px 10px', borderRadius: 'var(--radius-sm)' }
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Outline badge** (neutral tags):
|
|
110
|
+
```jsx
|
|
111
|
+
{ background: 'transparent', color: 'var(--text-secondary)', border: '1px solid var(--border-medium)',
|
|
112
|
+
/* same font styles as accent */ }
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Semantic badge** (status — swap vars):
|
|
116
|
+
- Success: `background: var(--semantic-green-dim)`, `color: var(--semantic-green)`
|
|
117
|
+
- Danger: `var(--semantic-red-dim)`, `var(--semantic-red)`
|
|
118
|
+
- Warning: `var(--semantic-amber-dim)`, `var(--semantic-amber)`
|
|
119
|
+
- Info: `var(--semantic-blue-dim)`, `var(--semantic-blue)`
|
|
120
|
+
|
|
121
|
+
All include a status dot: `width: 5px, height: 5px, borderRadius: 50%, background: [color]`
|
|
122
|
+
|
|
123
|
+
## 6. Tab Navigation
|
|
124
|
+
|
|
125
|
+
```jsx
|
|
126
|
+
<div style={{ display: 'flex', gap: 2, borderBottom: '1px solid var(--border-subtle)', padding: '0 var(--space-6)', overflowX: 'auto' }}>
|
|
127
|
+
<button style={{
|
|
128
|
+
fontFamily: 'var(--font-body)', fontSize: 'var(--text-base)',
|
|
129
|
+
color: isActive ? 'var(--text-accent)' : 'var(--text-secondary)',
|
|
130
|
+
background: 'none', border: 'none', padding: 'var(--space-3) var(--space-4)',
|
|
131
|
+
borderBottom: `2px solid ${isActive ? 'var(--accent)' : 'transparent'}`,
|
|
132
|
+
cursor: 'pointer', display: 'flex', alignItems: 'center', gap: 'var(--space-2)',
|
|
133
|
+
}}>
|
|
134
|
+
<span style={{ fontSize: 'var(--text-sm)' }}>icon</span> Label
|
|
135
|
+
</button>
|
|
136
|
+
</div>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## 7. Sidebar Tree
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
┌──────────────────┐
|
|
143
|
+
│ SECTION LABEL │ ← mono, xs, muted, uppercase, tracking-widest
|
|
144
|
+
│ ⊞ Item Active │ ← bg-surface, border-subtle, text-heading
|
|
145
|
+
│ 📊 Item │ ← text-secondary, transparent bg
|
|
146
|
+
│ 💬 Item │
|
|
147
|
+
│ │
|
|
148
|
+
│ SECTION LABEL │
|
|
149
|
+
│ ○ Category │ ← text-muted or text-accent when active
|
|
150
|
+
│ ● Category (on) │
|
|
151
|
+
└──────────────────┘
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Width: `200-220px`. Items: `padding: var(--space-2) var(--space-3)`, `border-radius: var(--radius-md)`.
|
|
155
|
+
|
|
156
|
+
## 8. Progress Bar
|
|
157
|
+
|
|
158
|
+
```jsx
|
|
159
|
+
<div style={{ height: 5, background: 'var(--bg-elevated)', borderRadius: 'var(--radius-full)', overflow: 'hidden' }}>
|
|
160
|
+
<div style={{ height: '100%', borderRadius: 'var(--radius-full)', background: color, width: `${pct}%`, transition: 'width 300ms ease' }} />
|
|
161
|
+
</div>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Colors: `var(--accent)` (default), `var(--semantic-green)`, `var(--semantic-red)`, `var(--semantic-amber)`, `var(--semantic-purple)`.
|
|
165
|
+
|
|
166
|
+
## 9. Section Header
|
|
167
|
+
|
|
168
|
+
```jsx
|
|
169
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-3)', padding: 'var(--space-6) 0 var(--space-4)' }}>
|
|
170
|
+
<span style={{ color: 'var(--accent)', fontSize: 'var(--text-lg)' }}>⚡</span>
|
|
171
|
+
<h2 style={{ fontFamily: 'var(--font-display)', fontSize: 'var(--text-xl)', fontWeight: 700, color: 'var(--text-heading)', margin: 0 }}>Title</h2>
|
|
172
|
+
</div>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 10. Mode Panel (accent feature box)
|
|
176
|
+
|
|
177
|
+
Centered panel with radial glow — used for "operating mode", "status", or a featured CTA.
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
┌─────────── border-accent ──────────┐
|
|
181
|
+
│ ◆ BADGE PILL │
|
|
182
|
+
│ [Icon 56px] │ ← accent border, glow shadow
|
|
183
|
+
│ MONO LABEL │
|
|
184
|
+
│ Large Title │
|
|
185
|
+
│ "Subtitle italic" │
|
|
186
|
+
│ radial-gradient glow behind │
|
|
187
|
+
└────────────────────────────────────┘
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## 11. Top Navigation Bar
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
┌──────────────────────────────────────────────────────┐
|
|
194
|
+
│ [Logo] AppName Link Link Link [☀] [Badge] │
|
|
195
|
+
│ SUBTITLE │
|
|
196
|
+
└──────────────────────────────────────────────────────┘
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
- Background: `var(--bg-void)`, sticky, `z-index: var(--z-sticky)`
|
|
200
|
+
- Logo: `36px`, `background: var(--accent-dim)`, `border: 1px solid var(--accent)`, `border-radius: var(--radius-md)`
|
|
201
|
+
- Brand name: mono, `--weight-bold`, `--text-heading`
|
|
202
|
+
- Subtitle: mono, `--text-xs`, `--text-muted`, uppercase
|
|
203
|
+
- Theme toggle: `36px` button, `var(--bg-surface)`, `var(--border-subtle)`
|
|
204
|
+
|
|
205
|
+
## 12. Modal / Detail Overlay
|
|
206
|
+
|
|
207
|
+
- Backdrop: `rgba(0,0,0,0.6)`, centered flex, `z-index: var(--z-modal)`
|
|
208
|
+
- Content: `var(--bg-base)`, `border: 1px solid var(--border-subtle)`, `border-radius: var(--radius-xl)`, `max-width: 700px`
|
|
209
|
+
- Header: padding, border-bottom, flex with close button
|
|
210
|
+
- Body: reuses stat cards, progress bars, badges, section headers
|
|
211
|
+
|
|
212
|
+
## 13. Data Table
|
|
213
|
+
|
|
214
|
+
For list views and tabular data:
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
┌────────────────────────────────────────────────────┐
|
|
218
|
+
│ NAME ▲ CATEGORY STOCK STATUS PRICE │ ← mono header, --text-xs, --text-muted
|
|
219
|
+
├────────────────────────────────────────────────────┤
|
|
220
|
+
│ Product Name Laptops 23 [●OK] R$12k │ ← --text-primary, hover row highlight
|
|
221
|
+
│ Product Name Phones 5 [●Crit] R$8k │
|
|
222
|
+
└────────────────────────────────────────────────────┘
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
- Header row: `background: var(--bg-elevated)`, mono labels
|
|
226
|
+
- Body rows: `border-bottom: 1px solid var(--border-subtle)`, hover: `background: var(--accent-subtle)`
|
|
227
|
+
- Always include sortable headers if data is tabular
|
|
228
|
+
|
|
229
|
+
## 14. Form Elements
|
|
230
|
+
|
|
231
|
+
**Input:**
|
|
232
|
+
```jsx
|
|
233
|
+
{ background: 'var(--bg-surface)', border: '1px solid var(--border-medium)',
|
|
234
|
+
borderRadius: 'var(--radius-md)', padding: 'var(--space-2) var(--space-3)',
|
|
235
|
+
color: 'var(--text-primary)', fontSize: 'var(--text-base)',
|
|
236
|
+
fontFamily: 'var(--font-body)', outline: 'none' }
|
|
237
|
+
// Focus: borderColor → var(--border-accent-strong), boxShadow → 0 0 0 3px var(--accent-glow)
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**Label:** mono label style (xs, muted, uppercase, tracking-widest). Place above input with `margin-bottom: var(--space-1)`.
|
|
241
|
+
|
|
242
|
+
**Button primary:**
|
|
243
|
+
```jsx
|
|
244
|
+
{ background: 'var(--accent)', color: 'var(--text-inverse)', border: 'none',
|
|
245
|
+
borderRadius: 'var(--radius-md)', padding: 'var(--space-2) var(--space-5)',
|
|
246
|
+
fontFamily: 'var(--font-mono)', fontSize: 'var(--text-sm)', fontWeight: 600,
|
|
247
|
+
letterSpacing: 'var(--tracking-wider)', textTransform: 'uppercase', cursor: 'pointer' }
|
|
248
|
+
// Hover: background → var(--accent-hover)
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Button secondary:**
|
|
252
|
+
```jsx
|
|
253
|
+
{ background: 'transparent', color: 'var(--text-secondary)',
|
|
254
|
+
border: '1px solid var(--border-medium)', /* rest same as primary */ }
|
|
255
|
+
// Hover: borderColor → var(--border-accent), color → var(--text-accent)
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## 15. DNA Panel (Sliders + Tags)
|
|
259
|
+
|
|
260
|
+
Combined panel with labeled metrics and tag group. The "personality" card of any entity.
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
┌─────────────────────────────────────────┐
|
|
264
|
+
│ ✦ PANEL TITLE │
|
|
265
|
+
│ │
|
|
266
|
+
│ LABEL ███████████████░░░░░ 72% │ ← mono labels, progress bar, value
|
|
267
|
+
│ LABEL █████████░░░░░░░░░░ 58% │
|
|
268
|
+
│ LABEL ████████████░░░░░░░ 85% │
|
|
269
|
+
│ │
|
|
270
|
+
│ [Badge] [Badge] [Badge] [Badge] │ ← flex wrap, gap var(--space-2)
|
|
271
|
+
└─────────────────────────────────────────┘
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Each row: `display: flex, align-items: center, gap: var(--space-3)`. Label min-width 80px. Progress bar flex:1. Value mono, `--text-sm`.
|