@jaimevalasek/aioson 1.30.0 → 1.30.2
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 +18 -0
- package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
- package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
- package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
- package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
- package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
- package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
- package/docs/design-previews/cognitive-core-ui.html +281 -463
- package/docs/design-previews/index.html +83 -31
- package/package.json +1 -1
- package/src/constants.js +578 -514
- package/template/.aioson/docs/integrations/dashboard-app-form-publish-mapping.md +183 -0
- package/template/.aioson/docs/play/README.md +74 -0
- package/template/.aioson/docs/play/agent-usage-guide.md +112 -0
- package/template/.aioson/docs/play/app-compatibility-guide.md +117 -0
- package/template/.aioson/docs/play/auth-services-and-testing.md +235 -0
- package/template/.aioson/docs/play/llm-data-and-bindings.md +238 -0
- package/template/.aioson/docs/play/manifest-and-runtime.md +267 -0
- package/template/.aioson/docs/play/source-map.md +104 -0
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
- package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
|
@@ -1,173 +1,173 @@
|
|
|
1
|
-
# Tokens and Depth — Interface Design
|
|
2
|
-
|
|
3
|
-
Lock these decisions before implementation. If you cannot state the checkpoint clearly, the system is not ready to build.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Decision checkpoint (write this before any component)
|
|
8
|
-
|
|
9
|
-
Before building any screen or component family, write a short checkpoint that locks:
|
|
10
|
-
|
|
11
|
-
- **Depth strategy**
|
|
12
|
-
- **Surface levels**
|
|
13
|
-
- **Border recipe** (including alpha)
|
|
14
|
-
- **Spacing base**
|
|
15
|
-
- **Radius ladder**
|
|
16
|
-
- **Control height**
|
|
17
|
-
- **Typography anchor**
|
|
18
|
-
- **Motion posture**
|
|
19
|
-
|
|
20
|
-
Example (Sophistication & Trust):
|
|
21
|
-
> Depth: borders-only • Surfaces: base / surface / elevated • Borders: rgba(15,23,42,0.08) • Spacing: 8px • Radius: 10/12 • Controls: 38px • Type: IBM Plex Sans 14/16/24 • Motion: 120ms ease-out
|
|
22
|
-
|
|
23
|
-
Example (Premium Dark Platform):
|
|
24
|
-
> Depth: borders-first • Surfaces: #0b1015 / #10161d / #151c24 • Borders: rgba(255,255,255,0.08) • Spacing: 8px • Radius: 12/14 • Controls: 40px • Type: Geist 14/16/28 • Motion: 140ms ease-out
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Token architecture (define all levels)
|
|
29
|
-
|
|
30
|
-
### Color token families
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
foreground/primary ← body text, labels, high-emphasis
|
|
34
|
-
foreground/secondary ← supporting text, placeholders
|
|
35
|
-
foreground/muted ← captions, disabled labels
|
|
36
|
-
foreground/faint ← decorative only, never critical
|
|
37
|
-
|
|
38
|
-
background/base ← page background
|
|
39
|
-
background/surface ← cards, panels
|
|
40
|
-
background/elevated ← modals, dropdowns (shadow system) or third surface level
|
|
41
|
-
background/sunken ← inputs, inset areas
|
|
42
|
-
|
|
43
|
-
border/default ← standard separator
|
|
44
|
-
border/strong ← focused inputs, active states
|
|
45
|
-
border/faint ← ultra-subtle dividers
|
|
46
|
-
|
|
47
|
-
brand/primary ← main CTA color
|
|
48
|
-
brand/secondary ← supporting brand accent
|
|
49
|
-
|
|
50
|
-
semantic/success ← green family
|
|
51
|
-
semantic/warning ← amber family
|
|
52
|
-
semantic/danger ← red family
|
|
53
|
-
semantic/info ← blue family
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Spacing — base × multiples only
|
|
57
|
-
|
|
58
|
-
Never use arbitrary values (17px, 22px, 37px). Every value must be a multiple of your base.
|
|
59
|
-
|
|
60
|
-
Common bases:
|
|
61
|
-
- 4px base for dense/operational: 4, 8, 12, 16, 24, 32
|
|
62
|
-
- 4px base for generous/consumer: 8, 12, 16, 24, 32, 48
|
|
63
|
-
|
|
64
|
-
### Depth — pick ONE and commit
|
|
65
|
-
|
|
66
|
-
| Strategy | When | Implementation |
|
|
67
|
-
|---|---|---|
|
|
68
|
-
| **Borders only** | Maximum density, zero visual noise | `border: 1px solid border/faint` |
|
|
69
|
-
| **Subtle shadows** | Gentle, approachable feel | `box-shadow: 0 1px 3px rgba(0,0,0,0.08)` |
|
|
70
|
-
| **Layered surfaces** | Modern minimal, dark platforms | Background elevation without shadows or borders |
|
|
71
|
-
|
|
72
|
-
**Never mix depth strategies on the same surface.**
|
|
73
|
-
|
|
74
|
-
### Radius ladder
|
|
75
|
-
|
|
76
|
-
Define three values and use only them:
|
|
77
|
-
- Sharp (small controls, tags, badges)
|
|
78
|
-
- Medium (cards, inputs, buttons)
|
|
79
|
-
- Large (panels, modals, sheets)
|
|
80
|
-
|
|
81
|
-
### Typography anchor
|
|
82
|
-
|
|
83
|
-
Define one font family and its full scale before touching components:
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Page title : largest size, 600-weight, tight tracking
|
|
87
|
-
Section title : medium-large, 500-weight, normal tracking
|
|
88
|
-
Body : base size, 400-weight, line-height 1.5–1.6
|
|
89
|
-
Helper / meta : small, 400-weight, muted color
|
|
90
|
-
Data / mono : monospace for numbers in tables, code, metrics
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Size alone is never enough. Use weight + tracking + opacity to create layers.
|
|
94
|
-
|
|
95
|
-
### Motion posture
|
|
96
|
-
|
|
97
|
-
- Fast & utilitarian: 100–150ms ease-out
|
|
98
|
-
- Comfortable & polished: 140–200ms ease-out
|
|
99
|
-
- Expressive & refined: 200–300ms ease-out with spring for entrances
|
|
100
|
-
|
|
101
|
-
Never animate layout properties (width, height, padding). Animate `transform` and `opacity` only.
|
|
102
|
-
Always provide `prefers-reduced-motion: reduce` fallback.
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Operational density — admin / config / settings pages
|
|
107
|
-
|
|
108
|
-
Settings pages, admin panels, config screens, and entity managers use a **compact scale** that overrides the default generous consumer spacing. Apply this whenever the user is operating a tool, not reading content.
|
|
109
|
-
|
|
110
|
-
### Decision checkpoint for operational density
|
|
111
|
-
|
|
112
|
-
> Depth: borders-first • Surfaces: 3-level (page / card / elevated) • Spacing base: 4px • Controls: 32px • Card padding: 16px outer / 12px nested • Type: xs-base range, text-base max for card headings • Radius: 22px outer / 18px nested / 14px deep
|
|
113
|
-
|
|
114
|
-
### Card padding — 3-level scale
|
|
115
|
-
|
|
116
|
-
| Level | Context | Padding | Radius |
|
|
117
|
-
|---|---|---|---|
|
|
118
|
-
| L1 | top-level section card | `16px` | `22px` |
|
|
119
|
-
| L2 | card nested inside L1 | `12px` | `18px` |
|
|
120
|
-
| L3 | inset block, disclosure body | `10px` | `14px` |
|
|
121
|
-
|
|
122
|
-
Section gap: `12px` — not 16px or 24px.
|
|
123
|
-
|
|
124
|
-
### Card headings
|
|
125
|
-
|
|
126
|
-
- Section eyebrow: `0.68rem` uppercase mono, `tracking: 0.28em`
|
|
127
|
-
- Section title: `text-base` (15–16px), `font-weight: 600` — **never `text-xl` or `text-2xl` inside a card**
|
|
128
|
-
- Sub-info (path, ID): `font-mono text-[0.62rem]` single truncated line below title — no card for it
|
|
129
|
-
- **No verbose description paragraphs** in admin cards — remove them or collapse to `<details>`
|
|
130
|
-
|
|
131
|
-
### Form controls
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
Label : 10–11px margin-bottom: 2px
|
|
135
|
-
Input : px-3 py-2 (height ~32px) text-xs radius: 10–12px
|
|
136
|
-
Select : same
|
|
137
|
-
Button : px-3 py-2 text-xs radius: 10–12px
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
The default 40px `min-height` rule in `## Forms` applies to consumer/public-facing forms. Admin/operational forms use 32px controls. Reduce only in authenticated tool contexts — never on public-facing login or onboarding.
|
|
141
|
-
|
|
142
|
-
### List rows
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
Row : py-2 (8px) divide-y
|
|
146
|
-
Gap : gap-2.5
|
|
147
|
-
Name : text-xs font-medium — not text-sm
|
|
148
|
-
Model : font-mono text-[0.65rem] truncate
|
|
149
|
-
Badges : px-2 py-0.5 text-[0.6rem] — not px-3 py-1
|
|
150
|
-
Edit btn: px-2.5 py-1 text-[0.65rem]
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Entity grids (same-type objects: projects, agents, providers)
|
|
154
|
-
|
|
155
|
-
Never stack same-type entities full-width. Use:
|
|
156
|
-
```css
|
|
157
|
-
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
158
|
-
gap: 12px;
|
|
159
|
-
/* Entity card: rounded-[18px] p-3 */
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Add/Edit → Modal, not accordion
|
|
163
|
-
|
|
164
|
-
Inline form expansion (accordion, RevealPanel) inside entity cards creates visual clutter and unpredictable layout shifts. Use a modal:
|
|
165
|
-
- `max-width: 448px`, centered, backdrop `bg-black/50 backdrop-blur-sm`
|
|
166
|
-
- Single "+ Add" button outside the grid → opens modal
|
|
167
|
-
- "Edit" button on each card → same modal pre-filled
|
|
168
|
-
|
|
169
|
-
### Disclosure for secondary tools
|
|
170
|
-
|
|
171
|
-
Sync assistants, cloud connect, advanced config, and other secondary actions go behind `<details>`:
|
|
172
|
-
- Summary row: `flex items-center justify-between px-3 py-2.5` — label + status badge on left, action button on right
|
|
173
|
-
- Never show secondary tools open by default in an already-dense panel
|
|
1
|
+
# Tokens and Depth — Interface Design
|
|
2
|
+
|
|
3
|
+
Lock these decisions before implementation. If you cannot state the checkpoint clearly, the system is not ready to build.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Decision checkpoint (write this before any component)
|
|
8
|
+
|
|
9
|
+
Before building any screen or component family, write a short checkpoint that locks:
|
|
10
|
+
|
|
11
|
+
- **Depth strategy**
|
|
12
|
+
- **Surface levels**
|
|
13
|
+
- **Border recipe** (including alpha)
|
|
14
|
+
- **Spacing base**
|
|
15
|
+
- **Radius ladder**
|
|
16
|
+
- **Control height**
|
|
17
|
+
- **Typography anchor**
|
|
18
|
+
- **Motion posture**
|
|
19
|
+
|
|
20
|
+
Example (Sophistication & Trust):
|
|
21
|
+
> Depth: borders-only • Surfaces: base / surface / elevated • Borders: rgba(15,23,42,0.08) • Spacing: 8px • Radius: 10/12 • Controls: 38px • Type: IBM Plex Sans 14/16/24 • Motion: 120ms ease-out
|
|
22
|
+
|
|
23
|
+
Example (Premium Dark Platform):
|
|
24
|
+
> Depth: borders-first • Surfaces: #0b1015 / #10161d / #151c24 • Borders: rgba(255,255,255,0.08) • Spacing: 8px • Radius: 12/14 • Controls: 40px • Type: Geist 14/16/28 • Motion: 140ms ease-out
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Token architecture (define all levels)
|
|
29
|
+
|
|
30
|
+
### Color token families
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
foreground/primary ← body text, labels, high-emphasis
|
|
34
|
+
foreground/secondary ← supporting text, placeholders
|
|
35
|
+
foreground/muted ← captions, disabled labels
|
|
36
|
+
foreground/faint ← decorative only, never critical
|
|
37
|
+
|
|
38
|
+
background/base ← page background
|
|
39
|
+
background/surface ← cards, panels
|
|
40
|
+
background/elevated ← modals, dropdowns (shadow system) or third surface level
|
|
41
|
+
background/sunken ← inputs, inset areas
|
|
42
|
+
|
|
43
|
+
border/default ← standard separator
|
|
44
|
+
border/strong ← focused inputs, active states
|
|
45
|
+
border/faint ← ultra-subtle dividers
|
|
46
|
+
|
|
47
|
+
brand/primary ← main CTA color
|
|
48
|
+
brand/secondary ← supporting brand accent
|
|
49
|
+
|
|
50
|
+
semantic/success ← green family
|
|
51
|
+
semantic/warning ← amber family
|
|
52
|
+
semantic/danger ← red family
|
|
53
|
+
semantic/info ← blue family
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Spacing — base × multiples only
|
|
57
|
+
|
|
58
|
+
Never use arbitrary values (17px, 22px, 37px). Every value must be a multiple of your base.
|
|
59
|
+
|
|
60
|
+
Common bases:
|
|
61
|
+
- 4px base for dense/operational: 4, 8, 12, 16, 24, 32
|
|
62
|
+
- 4px base for generous/consumer: 8, 12, 16, 24, 32, 48
|
|
63
|
+
|
|
64
|
+
### Depth — pick ONE and commit
|
|
65
|
+
|
|
66
|
+
| Strategy | When | Implementation |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| **Borders only** | Maximum density, zero visual noise | `border: 1px solid border/faint` |
|
|
69
|
+
| **Subtle shadows** | Gentle, approachable feel | `box-shadow: 0 1px 3px rgba(0,0,0,0.08)` |
|
|
70
|
+
| **Layered surfaces** | Modern minimal, dark platforms | Background elevation without shadows or borders |
|
|
71
|
+
|
|
72
|
+
**Never mix depth strategies on the same surface.**
|
|
73
|
+
|
|
74
|
+
### Radius ladder
|
|
75
|
+
|
|
76
|
+
Define three values and use only them:
|
|
77
|
+
- Sharp (small controls, tags, badges)
|
|
78
|
+
- Medium (cards, inputs, buttons)
|
|
79
|
+
- Large (panels, modals, sheets)
|
|
80
|
+
|
|
81
|
+
### Typography anchor
|
|
82
|
+
|
|
83
|
+
Define one font family and its full scale before touching components:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Page title : largest size, 600-weight, tight tracking
|
|
87
|
+
Section title : medium-large, 500-weight, normal tracking
|
|
88
|
+
Body : base size, 400-weight, line-height 1.5–1.6
|
|
89
|
+
Helper / meta : small, 400-weight, muted color
|
|
90
|
+
Data / mono : monospace for numbers in tables, code, metrics
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Size alone is never enough. Use weight + tracking + opacity to create layers.
|
|
94
|
+
|
|
95
|
+
### Motion posture
|
|
96
|
+
|
|
97
|
+
- Fast & utilitarian: 100–150ms ease-out
|
|
98
|
+
- Comfortable & polished: 140–200ms ease-out
|
|
99
|
+
- Expressive & refined: 200–300ms ease-out with spring for entrances
|
|
100
|
+
|
|
101
|
+
Never animate layout properties (width, height, padding). Animate `transform` and `opacity` only.
|
|
102
|
+
Always provide `prefers-reduced-motion: reduce` fallback.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Operational density — admin / config / settings pages
|
|
107
|
+
|
|
108
|
+
Settings pages, admin panels, config screens, and entity managers use a **compact scale** that overrides the default generous consumer spacing. Apply this whenever the user is operating a tool, not reading content.
|
|
109
|
+
|
|
110
|
+
### Decision checkpoint for operational density
|
|
111
|
+
|
|
112
|
+
> Depth: borders-first • Surfaces: 3-level (page / card / elevated) • Spacing base: 4px • Controls: 32px • Card padding: 16px outer / 12px nested • Type: xs-base range, text-base max for card headings • Radius: 22px outer / 18px nested / 14px deep
|
|
113
|
+
|
|
114
|
+
### Card padding — 3-level scale
|
|
115
|
+
|
|
116
|
+
| Level | Context | Padding | Radius |
|
|
117
|
+
|---|---|---|---|
|
|
118
|
+
| L1 | top-level section card | `16px` | `22px` |
|
|
119
|
+
| L2 | card nested inside L1 | `12px` | `18px` |
|
|
120
|
+
| L3 | inset block, disclosure body | `10px` | `14px` |
|
|
121
|
+
|
|
122
|
+
Section gap: `12px` — not 16px or 24px.
|
|
123
|
+
|
|
124
|
+
### Card headings
|
|
125
|
+
|
|
126
|
+
- Section eyebrow: `0.68rem` uppercase mono, `tracking: 0.28em`
|
|
127
|
+
- Section title: `text-base` (15–16px), `font-weight: 600` — **never `text-xl` or `text-2xl` inside a card**
|
|
128
|
+
- Sub-info (path, ID): `font-mono text-[0.62rem]` single truncated line below title — no card for it
|
|
129
|
+
- **No verbose description paragraphs** in admin cards — remove them or collapse to `<details>`
|
|
130
|
+
|
|
131
|
+
### Form controls
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Label : 10–11px margin-bottom: 2px
|
|
135
|
+
Input : px-3 py-2 (height ~32px) text-xs radius: 10–12px
|
|
136
|
+
Select : same
|
|
137
|
+
Button : px-3 py-2 text-xs radius: 10–12px
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
The default 40px `min-height` rule in `## Forms` applies to consumer/public-facing forms. Admin/operational forms use 32px controls. Reduce only in authenticated tool contexts — never on public-facing login or onboarding.
|
|
141
|
+
|
|
142
|
+
### List rows
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
Row : py-2 (8px) divide-y
|
|
146
|
+
Gap : gap-2.5
|
|
147
|
+
Name : text-xs font-medium — not text-sm
|
|
148
|
+
Model : font-mono text-[0.65rem] truncate
|
|
149
|
+
Badges : px-2 py-0.5 text-[0.6rem] — not px-3 py-1
|
|
150
|
+
Edit btn: px-2.5 py-1 text-[0.65rem]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Entity grids (same-type objects: projects, agents, providers)
|
|
154
|
+
|
|
155
|
+
Never stack same-type entities full-width. Use:
|
|
156
|
+
```css
|
|
157
|
+
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
158
|
+
gap: 12px;
|
|
159
|
+
/* Entity card: rounded-[18px] p-3 */
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Add/Edit → Modal, not accordion
|
|
163
|
+
|
|
164
|
+
Inline form expansion (accordion, RevealPanel) inside entity cards creates visual clutter and unpredictable layout shifts. Use a modal:
|
|
165
|
+
- `max-width: 448px`, centered, backdrop `bg-black/50 backdrop-blur-sm`
|
|
166
|
+
- Single "+ Add" button outside the grid → opens modal
|
|
167
|
+
- "Edit" button on each card → same modal pre-filled
|
|
168
|
+
|
|
169
|
+
### Disclosure for secondary tools
|
|
170
|
+
|
|
171
|
+
Sync assistants, cloud connect, advanced config, and other secondary actions go behind `<details>`:
|
|
172
|
+
- Summary row: `flex items-center justify-between px-3 py-2.5` — label + status badge on left, action button on right
|
|
173
|
+
- Never show secondary tools open by default in an already-dense panel
|