@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,293 +1,293 @@
|
|
|
1
|
-
# Page Patterns — Bold Editorial UI
|
|
2
|
-
|
|
3
|
-
Composition guides for app shells and page types. Uses tokens from `design-tokens.md` and components from `components.md`.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## App Shell
|
|
8
|
-
|
|
9
|
-
### Full Shell (Sidebar + Topbar + Content)
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
+----------------------------------------------------------+
|
|
13
|
-
| TOPBAR (sticky, 64px, dark glass) |
|
|
14
|
-
| [Logo mark] [Nav — slim, mono labels] [CTA btn] |
|
|
15
|
-
+----------------------------------------------------------+
|
|
16
|
-
| | |
|
|
17
|
-
| SIDEBAR | CONTENT AREA |
|
|
18
|
-
| 200px | padding: var(--space-8) var(--space-10) |
|
|
19
|
-
| fixed | |
|
|
20
|
-
| slim | PAGE HEADER |
|
|
21
|
-
| mono | [mono overline] |
|
|
22
|
-
| nav | [display heading] |
|
|
23
|
-
| | [subtitle + actions right] |
|
|
24
|
-
| | |
|
|
25
|
-
| [items | CONTENT SECTIONS |
|
|
26
|
-
| mono | cards / tables / charts |
|
|
27
|
-
| labels]| |
|
|
28
|
-
| | |
|
|
29
|
-
+----------+-----------------------------------------------+
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
```css
|
|
33
|
-
.app-shell {
|
|
34
|
-
display: flex;
|
|
35
|
-
flex-direction: column;
|
|
36
|
-
min-height: 100vh;
|
|
37
|
-
background: var(--bg-base);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.app-shell__topbar {
|
|
41
|
-
position: sticky;
|
|
42
|
-
top: 0;
|
|
43
|
-
z-index: var(--z-sticky);
|
|
44
|
-
height: 64px;
|
|
45
|
-
/* see Navigation: Top Bar in components.md */
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.app-shell__body {
|
|
49
|
-
display: flex;
|
|
50
|
-
flex: 1;
|
|
51
|
-
overflow: hidden;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.app-shell__sidebar {
|
|
55
|
-
width: 200px;
|
|
56
|
-
flex-shrink: 0;
|
|
57
|
-
height: calc(100vh - 64px);
|
|
58
|
-
position: sticky;
|
|
59
|
-
top: 64px;
|
|
60
|
-
overflow-y: auto;
|
|
61
|
-
/* see Sidebar in components.md */
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.app-shell__content {
|
|
65
|
-
flex: 1;
|
|
66
|
-
min-width: 0;
|
|
67
|
-
overflow-y: auto;
|
|
68
|
-
padding: var(--space-8) var(--space-10);
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Minimal Shell (no sidebar — marketing or focused apps)
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
+----------------------------------------------------------+
|
|
76
|
-
| TOPBAR (sticky, 64px) |
|
|
77
|
-
+----------------------------------------------------------+
|
|
78
|
-
| |
|
|
79
|
-
| CONTENT — full width, max-width: var(--content-xl) |
|
|
80
|
-
| margin: 0 auto |
|
|
81
|
-
| padding: var(--space-12) var(--space-8) |
|
|
82
|
-
| |
|
|
83
|
-
+----------------------------------------------------------+
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Page Header
|
|
89
|
-
|
|
90
|
-
Used at the top of every app page inside the content area.
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
[MONO OVERLINE] — category, section name in mono uppercase
|
|
94
|
-
[DISPLAY HEADING] — page title in font-display
|
|
95
|
-
[SUBTITLE] — optional, body font, text-secondary [ACTION BUTTONS]
|
|
96
|
-
[DIVIDER] — 1px border-subtle
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
```css
|
|
100
|
-
.page-header {
|
|
101
|
-
margin-bottom: var(--space-8);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.page-header__overline {
|
|
105
|
-
/* .mono-caption */
|
|
106
|
-
margin-bottom: var(--space-2);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.page-header__title {
|
|
110
|
-
font-family: var(--font-display);
|
|
111
|
-
font-size: var(--text-3xl);
|
|
112
|
-
font-weight: var(--weight-bold);
|
|
113
|
-
letter-spacing: var(--tracking-tight);
|
|
114
|
-
line-height: var(--leading-snug);
|
|
115
|
-
color: var(--text-heading);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.page-header__row {
|
|
119
|
-
display: flex;
|
|
120
|
-
align-items: flex-end;
|
|
121
|
-
justify-content: space-between;
|
|
122
|
-
gap: var(--space-4);
|
|
123
|
-
margin-top: var(--space-2);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.page-header__subtitle {
|
|
127
|
-
font-family: var(--font-body);
|
|
128
|
-
font-size: var(--text-sm);
|
|
129
|
-
color: var(--text-secondary);
|
|
130
|
-
max-width: 560px;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.page-header__divider {
|
|
134
|
-
margin-top: var(--space-6);
|
|
135
|
-
height: 1px;
|
|
136
|
-
background: var(--border-subtle);
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Dashboard Page
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
PAGE HEADER
|
|
146
|
-
overline: "OVERVIEW" (mono)
|
|
147
|
-
title: Project / Dashboard name (display, text-3xl)
|
|
148
|
-
actions: date range selector + export button
|
|
149
|
-
|
|
150
|
-
HERO INSIGHT (full width or 2/3 width)
|
|
151
|
-
Stat card: ONE large display-font number + trend + context
|
|
152
|
-
background: var(--bg-surface), shadow-md
|
|
153
|
-
|
|
154
|
-
SECONDARY STATS (3-4 columns)
|
|
155
|
-
Stat cards, smaller, shadow-sm
|
|
156
|
-
|
|
157
|
-
CHART SECTION
|
|
158
|
-
Section header (mono overline + display title text-xl)
|
|
159
|
-
One or two chart containers (Base Card, padding var(--space-6))
|
|
160
|
-
|
|
161
|
-
RECENT ACTIVITY or TABLE
|
|
162
|
-
Section header + table or activity feed
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Rules:
|
|
166
|
-
- Never start with four equal stat cards.
|
|
167
|
-
- Hero insight gets `shadow-md`, secondary cards get `shadow-sm`.
|
|
168
|
-
- Charts use only the editorial chart palette (see `dashboards.md`).
|
|
169
|
-
- Section titles use `font-display`.
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## Detail / Profile Page
|
|
174
|
-
|
|
175
|
-
```
|
|
176
|
-
DETAIL HEADER (full width card or flush section)
|
|
177
|
-
Media (image / avatar) + Name / Title + Meta badges
|
|
178
|
-
Tabs below header
|
|
179
|
-
|
|
180
|
-
TAB BAR
|
|
181
|
-
border-bottom: var(--border-medium)
|
|
182
|
-
active tab: accent bottom border (2px)
|
|
183
|
-
font-body, weight-medium
|
|
184
|
-
|
|
185
|
-
CONTENT SECTIONS (inside active tab)
|
|
186
|
-
Cards organized by priority
|
|
187
|
-
Sidebar panel (1/3) for quick actions and summary
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
## Settings Page
|
|
193
|
-
|
|
194
|
-
```
|
|
195
|
-
SETTINGS SHELL
|
|
196
|
-
Left nav (1/4): section list — mono labels, active with accent border-left
|
|
197
|
-
Right content (3/4): form sections
|
|
198
|
-
|
|
199
|
-
FORM SECTION
|
|
200
|
-
Section card with:
|
|
201
|
-
header: display font title + mono subtitle
|
|
202
|
-
divider
|
|
203
|
-
form groups (label above input)
|
|
204
|
-
section save bar (sticky bottom, accent CTA)
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## List / Browse Page
|
|
210
|
-
|
|
211
|
-
```
|
|
212
|
-
PAGE HEADER
|
|
213
|
-
title + "[+ New Item]" button
|
|
214
|
-
|
|
215
|
-
FILTER BAR (horizontal, bg-surface, border-bottom)
|
|
216
|
-
search input + dropdowns + active filter badges + clear
|
|
217
|
-
|
|
218
|
-
TABLE AREA
|
|
219
|
-
table component (full width)
|
|
220
|
-
row click → opens detail panel or navigates
|
|
221
|
-
|
|
222
|
-
PAGINATION BAR
|
|
223
|
-
bottom of table, flex between: count info + page controls
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
## Onboarding Flow
|
|
229
|
-
|
|
230
|
-
```
|
|
231
|
-
PROGRESS BAR (top, full-width, accent fill)
|
|
232
|
-
STEP INDICATOR (mono — "STEP 02 / 05")
|
|
233
|
-
|
|
234
|
-
CENTERED CONTENT (max-width: var(--content-sm))
|
|
235
|
-
Display heading for step title (font-display, text-3xl)
|
|
236
|
-
Description (body, text-secondary, generous line-height)
|
|
237
|
-
Form or interactive elements
|
|
238
|
-
|
|
239
|
-
ACTIONS (full-width button stack at bottom)
|
|
240
|
-
[Continue →] (primary, full-width)
|
|
241
|
-
[Back] (ghost, smaller)
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
## Auth Pages
|
|
247
|
-
|
|
248
|
-
### Login / Sign Up
|
|
249
|
-
|
|
250
|
-
```
|
|
251
|
-
LAYOUT: full-viewport
|
|
252
|
-
Left (1/2, dark): branding panel
|
|
253
|
-
logo + tagline large (display font)
|
|
254
|
-
optional: testimonial or feature list
|
|
255
|
-
background: var(--bg-void) with subtle grain
|
|
256
|
-
|
|
257
|
-
Right (1/2, surface): form panel
|
|
258
|
-
centered card (max-width: 400px)
|
|
259
|
-
form: email, password
|
|
260
|
-
CTA button (primary, full-width)
|
|
261
|
-
social auth options
|
|
262
|
-
link to other auth action
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
Alternative — Centered single card:
|
|
266
|
-
```
|
|
267
|
-
Full-viewport background: var(--bg-base)
|
|
268
|
-
Centered card (max-width: 400px, shadow-xl, radius-xl)
|
|
269
|
-
Logo above, form inside, footer links below
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## Responsive Breakpoints
|
|
275
|
-
|
|
276
|
-
```css
|
|
277
|
-
/* Mobile first */
|
|
278
|
-
@media (min-width: 640px) { /* sm — sidebar starts appearing */ }
|
|
279
|
-
@media (min-width: 768px) { /* md — two-column layouts */ }
|
|
280
|
-
@media (min-width: 1024px) { /* lg — full sidebar + content */ }
|
|
281
|
-
@media (min-width: 1280px) { /* xl — wide content, max readable */ }
|
|
282
|
-
@media (min-width: 1536px) { /* 2xl — max layout width */ }
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
Rules:
|
|
286
|
-
- Below 1024px: sidebar collapses to top hamburger nav.
|
|
287
|
-
- Below 768px: two-column card grids become single column.
|
|
288
|
-
- Tables: always horizontal scroll on mobile — never stack into cards (tabular data must remain a table).
|
|
289
|
-
- Display type (`text-5xl`, `text-6xl`) scales down on mobile:
|
|
290
|
-
- `text-6xl` → `text-4xl` on mobile
|
|
291
|
-
- `text-5xl` → `text-3xl` on mobile
|
|
292
|
-
- `text-4xl` → `text-2xl` on mobile
|
|
293
|
-
- Touch targets: minimum 44x44px for all interactive elements.
|
|
1
|
+
# Page Patterns — Bold Editorial UI
|
|
2
|
+
|
|
3
|
+
Composition guides for app shells and page types. Uses tokens from `design-tokens.md` and components from `components.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## App Shell
|
|
8
|
+
|
|
9
|
+
### Full Shell (Sidebar + Topbar + Content)
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
+----------------------------------------------------------+
|
|
13
|
+
| TOPBAR (sticky, 64px, dark glass) |
|
|
14
|
+
| [Logo mark] [Nav — slim, mono labels] [CTA btn] |
|
|
15
|
+
+----------------------------------------------------------+
|
|
16
|
+
| | |
|
|
17
|
+
| SIDEBAR | CONTENT AREA |
|
|
18
|
+
| 200px | padding: var(--space-8) var(--space-10) |
|
|
19
|
+
| fixed | |
|
|
20
|
+
| slim | PAGE HEADER |
|
|
21
|
+
| mono | [mono overline] |
|
|
22
|
+
| nav | [display heading] |
|
|
23
|
+
| | [subtitle + actions right] |
|
|
24
|
+
| | |
|
|
25
|
+
| [items | CONTENT SECTIONS |
|
|
26
|
+
| mono | cards / tables / charts |
|
|
27
|
+
| labels]| |
|
|
28
|
+
| | |
|
|
29
|
+
+----------+-----------------------------------------------+
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```css
|
|
33
|
+
.app-shell {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
min-height: 100vh;
|
|
37
|
+
background: var(--bg-base);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.app-shell__topbar {
|
|
41
|
+
position: sticky;
|
|
42
|
+
top: 0;
|
|
43
|
+
z-index: var(--z-sticky);
|
|
44
|
+
height: 64px;
|
|
45
|
+
/* see Navigation: Top Bar in components.md */
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.app-shell__body {
|
|
49
|
+
display: flex;
|
|
50
|
+
flex: 1;
|
|
51
|
+
overflow: hidden;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.app-shell__sidebar {
|
|
55
|
+
width: 200px;
|
|
56
|
+
flex-shrink: 0;
|
|
57
|
+
height: calc(100vh - 64px);
|
|
58
|
+
position: sticky;
|
|
59
|
+
top: 64px;
|
|
60
|
+
overflow-y: auto;
|
|
61
|
+
/* see Sidebar in components.md */
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.app-shell__content {
|
|
65
|
+
flex: 1;
|
|
66
|
+
min-width: 0;
|
|
67
|
+
overflow-y: auto;
|
|
68
|
+
padding: var(--space-8) var(--space-10);
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Minimal Shell (no sidebar — marketing or focused apps)
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
+----------------------------------------------------------+
|
|
76
|
+
| TOPBAR (sticky, 64px) |
|
|
77
|
+
+----------------------------------------------------------+
|
|
78
|
+
| |
|
|
79
|
+
| CONTENT — full width, max-width: var(--content-xl) |
|
|
80
|
+
| margin: 0 auto |
|
|
81
|
+
| padding: var(--space-12) var(--space-8) |
|
|
82
|
+
| |
|
|
83
|
+
+----------------------------------------------------------+
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Page Header
|
|
89
|
+
|
|
90
|
+
Used at the top of every app page inside the content area.
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
[MONO OVERLINE] — category, section name in mono uppercase
|
|
94
|
+
[DISPLAY HEADING] — page title in font-display
|
|
95
|
+
[SUBTITLE] — optional, body font, text-secondary [ACTION BUTTONS]
|
|
96
|
+
[DIVIDER] — 1px border-subtle
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```css
|
|
100
|
+
.page-header {
|
|
101
|
+
margin-bottom: var(--space-8);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.page-header__overline {
|
|
105
|
+
/* .mono-caption */
|
|
106
|
+
margin-bottom: var(--space-2);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.page-header__title {
|
|
110
|
+
font-family: var(--font-display);
|
|
111
|
+
font-size: var(--text-3xl);
|
|
112
|
+
font-weight: var(--weight-bold);
|
|
113
|
+
letter-spacing: var(--tracking-tight);
|
|
114
|
+
line-height: var(--leading-snug);
|
|
115
|
+
color: var(--text-heading);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.page-header__row {
|
|
119
|
+
display: flex;
|
|
120
|
+
align-items: flex-end;
|
|
121
|
+
justify-content: space-between;
|
|
122
|
+
gap: var(--space-4);
|
|
123
|
+
margin-top: var(--space-2);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.page-header__subtitle {
|
|
127
|
+
font-family: var(--font-body);
|
|
128
|
+
font-size: var(--text-sm);
|
|
129
|
+
color: var(--text-secondary);
|
|
130
|
+
max-width: 560px;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.page-header__divider {
|
|
134
|
+
margin-top: var(--space-6);
|
|
135
|
+
height: 1px;
|
|
136
|
+
background: var(--border-subtle);
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Dashboard Page
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
PAGE HEADER
|
|
146
|
+
overline: "OVERVIEW" (mono)
|
|
147
|
+
title: Project / Dashboard name (display, text-3xl)
|
|
148
|
+
actions: date range selector + export button
|
|
149
|
+
|
|
150
|
+
HERO INSIGHT (full width or 2/3 width)
|
|
151
|
+
Stat card: ONE large display-font number + trend + context
|
|
152
|
+
background: var(--bg-surface), shadow-md
|
|
153
|
+
|
|
154
|
+
SECONDARY STATS (3-4 columns)
|
|
155
|
+
Stat cards, smaller, shadow-sm
|
|
156
|
+
|
|
157
|
+
CHART SECTION
|
|
158
|
+
Section header (mono overline + display title text-xl)
|
|
159
|
+
One or two chart containers (Base Card, padding var(--space-6))
|
|
160
|
+
|
|
161
|
+
RECENT ACTIVITY or TABLE
|
|
162
|
+
Section header + table or activity feed
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Rules:
|
|
166
|
+
- Never start with four equal stat cards.
|
|
167
|
+
- Hero insight gets `shadow-md`, secondary cards get `shadow-sm`.
|
|
168
|
+
- Charts use only the editorial chart palette (see `dashboards.md`).
|
|
169
|
+
- Section titles use `font-display`.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Detail / Profile Page
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
DETAIL HEADER (full width card or flush section)
|
|
177
|
+
Media (image / avatar) + Name / Title + Meta badges
|
|
178
|
+
Tabs below header
|
|
179
|
+
|
|
180
|
+
TAB BAR
|
|
181
|
+
border-bottom: var(--border-medium)
|
|
182
|
+
active tab: accent bottom border (2px)
|
|
183
|
+
font-body, weight-medium
|
|
184
|
+
|
|
185
|
+
CONTENT SECTIONS (inside active tab)
|
|
186
|
+
Cards organized by priority
|
|
187
|
+
Sidebar panel (1/3) for quick actions and summary
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Settings Page
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
SETTINGS SHELL
|
|
196
|
+
Left nav (1/4): section list — mono labels, active with accent border-left
|
|
197
|
+
Right content (3/4): form sections
|
|
198
|
+
|
|
199
|
+
FORM SECTION
|
|
200
|
+
Section card with:
|
|
201
|
+
header: display font title + mono subtitle
|
|
202
|
+
divider
|
|
203
|
+
form groups (label above input)
|
|
204
|
+
section save bar (sticky bottom, accent CTA)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## List / Browse Page
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
PAGE HEADER
|
|
213
|
+
title + "[+ New Item]" button
|
|
214
|
+
|
|
215
|
+
FILTER BAR (horizontal, bg-surface, border-bottom)
|
|
216
|
+
search input + dropdowns + active filter badges + clear
|
|
217
|
+
|
|
218
|
+
TABLE AREA
|
|
219
|
+
table component (full width)
|
|
220
|
+
row click → opens detail panel or navigates
|
|
221
|
+
|
|
222
|
+
PAGINATION BAR
|
|
223
|
+
bottom of table, flex between: count info + page controls
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Onboarding Flow
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
PROGRESS BAR (top, full-width, accent fill)
|
|
232
|
+
STEP INDICATOR (mono — "STEP 02 / 05")
|
|
233
|
+
|
|
234
|
+
CENTERED CONTENT (max-width: var(--content-sm))
|
|
235
|
+
Display heading for step title (font-display, text-3xl)
|
|
236
|
+
Description (body, text-secondary, generous line-height)
|
|
237
|
+
Form or interactive elements
|
|
238
|
+
|
|
239
|
+
ACTIONS (full-width button stack at bottom)
|
|
240
|
+
[Continue →] (primary, full-width)
|
|
241
|
+
[Back] (ghost, smaller)
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Auth Pages
|
|
247
|
+
|
|
248
|
+
### Login / Sign Up
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
LAYOUT: full-viewport
|
|
252
|
+
Left (1/2, dark): branding panel
|
|
253
|
+
logo + tagline large (display font)
|
|
254
|
+
optional: testimonial or feature list
|
|
255
|
+
background: var(--bg-void) with subtle grain
|
|
256
|
+
|
|
257
|
+
Right (1/2, surface): form panel
|
|
258
|
+
centered card (max-width: 400px)
|
|
259
|
+
form: email, password
|
|
260
|
+
CTA button (primary, full-width)
|
|
261
|
+
social auth options
|
|
262
|
+
link to other auth action
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Alternative — Centered single card:
|
|
266
|
+
```
|
|
267
|
+
Full-viewport background: var(--bg-base)
|
|
268
|
+
Centered card (max-width: 400px, shadow-xl, radius-xl)
|
|
269
|
+
Logo above, form inside, footer links below
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Responsive Breakpoints
|
|
275
|
+
|
|
276
|
+
```css
|
|
277
|
+
/* Mobile first */
|
|
278
|
+
@media (min-width: 640px) { /* sm — sidebar starts appearing */ }
|
|
279
|
+
@media (min-width: 768px) { /* md — two-column layouts */ }
|
|
280
|
+
@media (min-width: 1024px) { /* lg — full sidebar + content */ }
|
|
281
|
+
@media (min-width: 1280px) { /* xl — wide content, max readable */ }
|
|
282
|
+
@media (min-width: 1536px) { /* 2xl — max layout width */ }
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Rules:
|
|
286
|
+
- Below 1024px: sidebar collapses to top hamburger nav.
|
|
287
|
+
- Below 768px: two-column card grids become single column.
|
|
288
|
+
- Tables: always horizontal scroll on mobile — never stack into cards (tabular data must remain a table).
|
|
289
|
+
- Display type (`text-5xl`, `text-6xl`) scales down on mobile:
|
|
290
|
+
- `text-6xl` → `text-4xl` on mobile
|
|
291
|
+
- `text-5xl` → `text-3xl` on mobile
|
|
292
|
+
- `text-4xl` → `text-2xl` on mobile
|
|
293
|
+
- Touch targets: minimum 44x44px for all interactive elements.
|