@jaimevalasek/aioson 1.30.1 → 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 +9 -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 +567 -511
- package/template/.aioson/docs/play/README.md +2 -0
- package/template/.aioson/docs/play/agent-usage-guide.md +7 -1
- package/template/.aioson/docs/play/app-compatibility-guide.md +6 -1
- package/template/.aioson/docs/play/auth-services-and-testing.md +16 -1
- package/template/.aioson/docs/play/manifest-and-runtime.md +23 -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,288 +1,288 @@
|
|
|
1
|
-
# Page Patterns — Warm Craft UI
|
|
2
|
-
|
|
3
|
-
Layout patterns for common page types. Each pattern is a composition guide, not a rigid template. Use tokens from `design-tokens.md` and components from `components.md`.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## App Shell
|
|
8
|
-
|
|
9
|
-
The main layout container for all app pages.
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
+----------------------------------------------------------+
|
|
13
|
-
| TOP BAR (64px) |
|
|
14
|
-
+----------+-----------------------------------------------+
|
|
15
|
-
| | |
|
|
16
|
-
| SIDEBAR | CONTENT AREA |
|
|
17
|
-
| 240px | padding: var(--space-8) |
|
|
18
|
-
| | max-width: var(--content-xl) or fluid |
|
|
19
|
-
| | |
|
|
20
|
-
+----------+-----------------------------------------------+
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Rules:
|
|
24
|
-
- Sidebar background: `var(--bg-void)` — one level deeper than content
|
|
25
|
-
- Content background: `var(--bg-base)`
|
|
26
|
-
- Sidebar collapses to bottom tab bar on mobile (< 768px)
|
|
27
|
-
- Content area scrolls independently; sidebar and topbar are fixed
|
|
28
|
-
- Sidebar width: 240px default. Can collapse to 64px icon-only with toggle
|
|
29
|
-
|
|
30
|
-
### Compact Shell (no sidebar)
|
|
31
|
-
```
|
|
32
|
-
+----------------------------------------------------------+
|
|
33
|
-
| TOP BAR (64px) |
|
|
34
|
-
+----------------------------------------------------------+
|
|
35
|
-
| |
|
|
36
|
-
| CONTENT AREA |
|
|
37
|
-
| max-width: var(--content-lg) |
|
|
38
|
-
| margin: 0 auto |
|
|
39
|
-
| padding: var(--space-8) var(--space-6) |
|
|
40
|
-
| |
|
|
41
|
-
+----------------------------------------------------------+
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Use when: simple apps with fewer than 5 navigation items, single-purpose tools.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Dashboard Page
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
PAGE HEADER
|
|
52
|
-
font: var(--font-display), var(--text-3xl), var(--weight-bold)
|
|
53
|
-
color: var(--text-heading)
|
|
54
|
-
subtitle: var(--font-body), var(--text-base), var(--text-secondary)
|
|
55
|
-
margin-bottom: var(--space-8)
|
|
56
|
-
|
|
57
|
-
STAT ROW (optional — do NOT always start with this)
|
|
58
|
-
display: grid
|
|
59
|
-
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr))
|
|
60
|
-
gap: var(--space-5)
|
|
61
|
-
margin-bottom: var(--space-8)
|
|
62
|
-
uses: Stat Card component
|
|
63
|
-
|
|
64
|
-
SECTION
|
|
65
|
-
title:
|
|
66
|
-
font: var(--font-display), var(--text-xl), var(--weight-semibold)
|
|
67
|
-
color: var(--text-heading)
|
|
68
|
-
margin-bottom: var(--space-5)
|
|
69
|
-
content:
|
|
70
|
-
Card grid, Table, Chart, or Activity Feed
|
|
71
|
-
margin-bottom: var(--space-10)
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Variation rules:
|
|
75
|
-
- Do NOT always use 4 stat cards as the first element
|
|
76
|
-
- Prefer one hero insight or greeting above stats
|
|
77
|
-
- Charts use warm palette (see `design-tokens.md` palette rules)
|
|
78
|
-
- Tables should feel native to the warm system, not pasted from a data library
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## Detail / Profile Page
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
BACK NAVIGATION
|
|
86
|
-
Ghost Button with arrow icon + "Back to {list}"
|
|
87
|
-
margin-bottom: var(--space-4)
|
|
88
|
-
|
|
89
|
-
HEADER ZONE
|
|
90
|
-
display: flex; gap: var(--space-6); align-items: flex-start
|
|
91
|
-
avatar: var(--space-20) (80px)
|
|
92
|
-
title: var(--font-display), var(--text-3xl), var(--weight-bold)
|
|
93
|
-
subtitle: var(--text-secondary)
|
|
94
|
-
badges: inline-flex after subtitle
|
|
95
|
-
actions: flex-end (Edit, Delete, etc.)
|
|
96
|
-
|
|
97
|
-
TAB NAVIGATION (optional)
|
|
98
|
-
border-bottom: 1px solid var(--border-subtle)
|
|
99
|
-
margin: var(--space-6) 0
|
|
100
|
-
tab:
|
|
101
|
-
padding: var(--space-3) var(--space-4)
|
|
102
|
-
font: var(--text-sm), var(--weight-medium)
|
|
103
|
-
color: var(--text-secondary)
|
|
104
|
-
active:
|
|
105
|
-
color: var(--text-heading)
|
|
106
|
-
border-bottom: 2px solid var(--accent)
|
|
107
|
-
|
|
108
|
-
CONTENT SECTIONS
|
|
109
|
-
Two-column layout on desktop (content 2/3 + sidebar 1/3)
|
|
110
|
-
Single column on mobile
|
|
111
|
-
gap: var(--space-8)
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## Settings Page
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
PAGE HEADER
|
|
120
|
-
title: "Settings"
|
|
121
|
-
no subtitle needed
|
|
122
|
-
|
|
123
|
-
SETTINGS NAVIGATION (left column or tabs)
|
|
124
|
-
vertical list: General, Profile, Notifications, Security, Billing...
|
|
125
|
-
uses: Sidebar Navigation item style
|
|
126
|
-
|
|
127
|
-
SETTINGS CONTENT (right column)
|
|
128
|
-
sections:
|
|
129
|
-
SECTION TITLE
|
|
130
|
-
font: var(--font-display), var(--text-lg), var(--weight-semibold)
|
|
131
|
-
border-bottom: 1px solid var(--border-subtle)
|
|
132
|
-
padding-bottom: var(--space-3)
|
|
133
|
-
margin-bottom: var(--space-6)
|
|
134
|
-
|
|
135
|
-
SETTING ROW
|
|
136
|
-
display: flex; justify-content: space-between; align-items: center
|
|
137
|
-
padding: var(--space-4) 0
|
|
138
|
-
border-bottom: 1px solid var(--border-subtle)
|
|
139
|
-
|
|
140
|
-
label + description (left):
|
|
141
|
-
label: var(--text-sm), var(--weight-medium), var(--text-heading)
|
|
142
|
-
description: var(--text-sm), var(--text-secondary)
|
|
143
|
-
|
|
144
|
-
control (right):
|
|
145
|
-
Toggle, Select, or Button
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## List / Browse Page
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
PAGE HEADER + ACTIONS
|
|
154
|
-
title + description (left)
|
|
155
|
-
Primary Button "Create New" (right)
|
|
156
|
-
margin-bottom: var(--space-6)
|
|
157
|
-
|
|
158
|
-
FILTERS / SEARCH BAR
|
|
159
|
-
display: flex; gap: var(--space-3); align-items: center
|
|
160
|
-
Search Input (pill-shaped, flexible width)
|
|
161
|
-
Filter badges or dropdown buttons
|
|
162
|
-
margin-bottom: var(--space-6)
|
|
163
|
-
|
|
164
|
-
CONTENT
|
|
165
|
-
Option A — Card Grid:
|
|
166
|
-
display: grid
|
|
167
|
-
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr))
|
|
168
|
-
gap: var(--space-5)
|
|
169
|
-
uses: Base Card or Media Card
|
|
170
|
-
|
|
171
|
-
Option B — Table:
|
|
172
|
-
uses: Table component
|
|
173
|
-
with rounded outer corners and warm hover
|
|
174
|
-
|
|
175
|
-
Option C — List:
|
|
176
|
-
vertical stack with Base Card items
|
|
177
|
-
gap: var(--space-3)
|
|
178
|
-
|
|
179
|
-
PAGINATION
|
|
180
|
-
display: flex; justify-content: center; gap: var(--space-2)
|
|
181
|
-
margin-top: var(--space-8)
|
|
182
|
-
pill-shaped page buttons
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Onboarding / Setup Flow
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
LAYOUT
|
|
191
|
-
centered, max-width: 560px
|
|
192
|
-
padding: var(--space-16) var(--space-6)
|
|
193
|
-
no sidebar, minimal topbar (logo only)
|
|
194
|
-
|
|
195
|
-
PROGRESS
|
|
196
|
-
Step indicator above content
|
|
197
|
-
Numbered or dot-based, horizontal
|
|
198
|
-
Current step: accent color
|
|
199
|
-
Completed: accent-dim with checkmark
|
|
200
|
-
Future: var(--border-medium)
|
|
201
|
-
|
|
202
|
-
STEP CONTENT
|
|
203
|
-
title:
|
|
204
|
-
font: var(--font-display), var(--text-2xl), var(--weight-bold)
|
|
205
|
-
text-align: center
|
|
206
|
-
margin-bottom: var(--space-2)
|
|
207
|
-
|
|
208
|
-
description:
|
|
209
|
-
font: var(--text-base), var(--text-secondary)
|
|
210
|
-
text-align: center
|
|
211
|
-
max-width: 440px
|
|
212
|
-
margin: 0 auto var(--space-8)
|
|
213
|
-
|
|
214
|
-
form or content:
|
|
215
|
-
text-align: left
|
|
216
|
-
uses standard form components
|
|
217
|
-
|
|
218
|
-
ACTIONS
|
|
219
|
-
display: flex; justify-content: space-between
|
|
220
|
-
margin-top: var(--space-8)
|
|
221
|
-
"Back" (Ghost Button) + "Continue" (Primary Button)
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
## Auth Pages (Login / Register)
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
LAYOUT
|
|
230
|
-
Option A — Centered card:
|
|
231
|
-
max-width: 420px
|
|
232
|
-
margin: auto
|
|
233
|
-
min-height: 100vh
|
|
234
|
-
display: flex; align-items: center; justify-content: center
|
|
235
|
-
background: var(--bg-void)
|
|
236
|
-
|
|
237
|
-
Option B — Split screen:
|
|
238
|
-
left 50%: illustration or brand panel (warm gradient or warm photography)
|
|
239
|
-
right 50%: auth form centered
|
|
240
|
-
|
|
241
|
-
CARD
|
|
242
|
-
background: var(--bg-surface)
|
|
243
|
-
border-radius: var(--radius-2xl)
|
|
244
|
-
padding: var(--space-10)
|
|
245
|
-
shadow: var(--shadow-lg)
|
|
246
|
-
|
|
247
|
-
logo:
|
|
248
|
-
centered, margin-bottom: var(--space-8)
|
|
249
|
-
|
|
250
|
-
title:
|
|
251
|
-
font: var(--font-display), var(--text-2xl), var(--weight-bold)
|
|
252
|
-
text-align: center
|
|
253
|
-
|
|
254
|
-
form:
|
|
255
|
-
margin-top: var(--space-6)
|
|
256
|
-
fields stacked with var(--space-4) gap
|
|
257
|
-
"Remember me" checkbox + "Forgot password?" link row
|
|
258
|
-
|
|
259
|
-
submit:
|
|
260
|
-
Primary Button, full width
|
|
261
|
-
margin-top: var(--space-6)
|
|
262
|
-
|
|
263
|
-
footer:
|
|
264
|
-
"Don't have an account? Sign up" — centered link
|
|
265
|
-
margin-top: var(--space-6)
|
|
266
|
-
font: var(--text-sm), var(--text-secondary)
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## Responsive Breakpoints
|
|
272
|
-
|
|
273
|
-
```css
|
|
274
|
-
/* Mobile first */
|
|
275
|
-
@media (min-width: 640px) { /* sm — phone landscape */ }
|
|
276
|
-
@media (min-width: 768px) { /* md — tablet */ }
|
|
277
|
-
@media (min-width: 1024px) { /* lg — desktop */ }
|
|
278
|
-
@media (min-width: 1280px) { /* xl — wide desktop */ }
|
|
279
|
-
@media (min-width: 1440px) { /* 2xl — ultra-wide */ }
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
Rules:
|
|
283
|
-
- Sidebar → bottom tab bar below 768px
|
|
284
|
-
- Card grids → single column below 640px
|
|
285
|
-
- Split layouts (detail page, auth) → stacked below 768px
|
|
286
|
-
- Content max-width respects `var(--content-*)` tokens
|
|
287
|
-
- Touch targets: minimum 44px on mobile
|
|
288
|
-
- Spacing reduces by one step on mobile (e.g., `--space-8` → `--space-6`)
|
|
1
|
+
# Page Patterns — Warm Craft UI
|
|
2
|
+
|
|
3
|
+
Layout patterns for common page types. Each pattern is a composition guide, not a rigid template. Use tokens from `design-tokens.md` and components from `components.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## App Shell
|
|
8
|
+
|
|
9
|
+
The main layout container for all app pages.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
+----------------------------------------------------------+
|
|
13
|
+
| TOP BAR (64px) |
|
|
14
|
+
+----------+-----------------------------------------------+
|
|
15
|
+
| | |
|
|
16
|
+
| SIDEBAR | CONTENT AREA |
|
|
17
|
+
| 240px | padding: var(--space-8) |
|
|
18
|
+
| | max-width: var(--content-xl) or fluid |
|
|
19
|
+
| | |
|
|
20
|
+
+----------+-----------------------------------------------+
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Rules:
|
|
24
|
+
- Sidebar background: `var(--bg-void)` — one level deeper than content
|
|
25
|
+
- Content background: `var(--bg-base)`
|
|
26
|
+
- Sidebar collapses to bottom tab bar on mobile (< 768px)
|
|
27
|
+
- Content area scrolls independently; sidebar and topbar are fixed
|
|
28
|
+
- Sidebar width: 240px default. Can collapse to 64px icon-only with toggle
|
|
29
|
+
|
|
30
|
+
### Compact Shell (no sidebar)
|
|
31
|
+
```
|
|
32
|
+
+----------------------------------------------------------+
|
|
33
|
+
| TOP BAR (64px) |
|
|
34
|
+
+----------------------------------------------------------+
|
|
35
|
+
| |
|
|
36
|
+
| CONTENT AREA |
|
|
37
|
+
| max-width: var(--content-lg) |
|
|
38
|
+
| margin: 0 auto |
|
|
39
|
+
| padding: var(--space-8) var(--space-6) |
|
|
40
|
+
| |
|
|
41
|
+
+----------------------------------------------------------+
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Use when: simple apps with fewer than 5 navigation items, single-purpose tools.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Dashboard Page
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
PAGE HEADER
|
|
52
|
+
font: var(--font-display), var(--text-3xl), var(--weight-bold)
|
|
53
|
+
color: var(--text-heading)
|
|
54
|
+
subtitle: var(--font-body), var(--text-base), var(--text-secondary)
|
|
55
|
+
margin-bottom: var(--space-8)
|
|
56
|
+
|
|
57
|
+
STAT ROW (optional — do NOT always start with this)
|
|
58
|
+
display: grid
|
|
59
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr))
|
|
60
|
+
gap: var(--space-5)
|
|
61
|
+
margin-bottom: var(--space-8)
|
|
62
|
+
uses: Stat Card component
|
|
63
|
+
|
|
64
|
+
SECTION
|
|
65
|
+
title:
|
|
66
|
+
font: var(--font-display), var(--text-xl), var(--weight-semibold)
|
|
67
|
+
color: var(--text-heading)
|
|
68
|
+
margin-bottom: var(--space-5)
|
|
69
|
+
content:
|
|
70
|
+
Card grid, Table, Chart, or Activity Feed
|
|
71
|
+
margin-bottom: var(--space-10)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Variation rules:
|
|
75
|
+
- Do NOT always use 4 stat cards as the first element
|
|
76
|
+
- Prefer one hero insight or greeting above stats
|
|
77
|
+
- Charts use warm palette (see `design-tokens.md` palette rules)
|
|
78
|
+
- Tables should feel native to the warm system, not pasted from a data library
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Detail / Profile Page
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
BACK NAVIGATION
|
|
86
|
+
Ghost Button with arrow icon + "Back to {list}"
|
|
87
|
+
margin-bottom: var(--space-4)
|
|
88
|
+
|
|
89
|
+
HEADER ZONE
|
|
90
|
+
display: flex; gap: var(--space-6); align-items: flex-start
|
|
91
|
+
avatar: var(--space-20) (80px)
|
|
92
|
+
title: var(--font-display), var(--text-3xl), var(--weight-bold)
|
|
93
|
+
subtitle: var(--text-secondary)
|
|
94
|
+
badges: inline-flex after subtitle
|
|
95
|
+
actions: flex-end (Edit, Delete, etc.)
|
|
96
|
+
|
|
97
|
+
TAB NAVIGATION (optional)
|
|
98
|
+
border-bottom: 1px solid var(--border-subtle)
|
|
99
|
+
margin: var(--space-6) 0
|
|
100
|
+
tab:
|
|
101
|
+
padding: var(--space-3) var(--space-4)
|
|
102
|
+
font: var(--text-sm), var(--weight-medium)
|
|
103
|
+
color: var(--text-secondary)
|
|
104
|
+
active:
|
|
105
|
+
color: var(--text-heading)
|
|
106
|
+
border-bottom: 2px solid var(--accent)
|
|
107
|
+
|
|
108
|
+
CONTENT SECTIONS
|
|
109
|
+
Two-column layout on desktop (content 2/3 + sidebar 1/3)
|
|
110
|
+
Single column on mobile
|
|
111
|
+
gap: var(--space-8)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Settings Page
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
PAGE HEADER
|
|
120
|
+
title: "Settings"
|
|
121
|
+
no subtitle needed
|
|
122
|
+
|
|
123
|
+
SETTINGS NAVIGATION (left column or tabs)
|
|
124
|
+
vertical list: General, Profile, Notifications, Security, Billing...
|
|
125
|
+
uses: Sidebar Navigation item style
|
|
126
|
+
|
|
127
|
+
SETTINGS CONTENT (right column)
|
|
128
|
+
sections:
|
|
129
|
+
SECTION TITLE
|
|
130
|
+
font: var(--font-display), var(--text-lg), var(--weight-semibold)
|
|
131
|
+
border-bottom: 1px solid var(--border-subtle)
|
|
132
|
+
padding-bottom: var(--space-3)
|
|
133
|
+
margin-bottom: var(--space-6)
|
|
134
|
+
|
|
135
|
+
SETTING ROW
|
|
136
|
+
display: flex; justify-content: space-between; align-items: center
|
|
137
|
+
padding: var(--space-4) 0
|
|
138
|
+
border-bottom: 1px solid var(--border-subtle)
|
|
139
|
+
|
|
140
|
+
label + description (left):
|
|
141
|
+
label: var(--text-sm), var(--weight-medium), var(--text-heading)
|
|
142
|
+
description: var(--text-sm), var(--text-secondary)
|
|
143
|
+
|
|
144
|
+
control (right):
|
|
145
|
+
Toggle, Select, or Button
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## List / Browse Page
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
PAGE HEADER + ACTIONS
|
|
154
|
+
title + description (left)
|
|
155
|
+
Primary Button "Create New" (right)
|
|
156
|
+
margin-bottom: var(--space-6)
|
|
157
|
+
|
|
158
|
+
FILTERS / SEARCH BAR
|
|
159
|
+
display: flex; gap: var(--space-3); align-items: center
|
|
160
|
+
Search Input (pill-shaped, flexible width)
|
|
161
|
+
Filter badges or dropdown buttons
|
|
162
|
+
margin-bottom: var(--space-6)
|
|
163
|
+
|
|
164
|
+
CONTENT
|
|
165
|
+
Option A — Card Grid:
|
|
166
|
+
display: grid
|
|
167
|
+
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr))
|
|
168
|
+
gap: var(--space-5)
|
|
169
|
+
uses: Base Card or Media Card
|
|
170
|
+
|
|
171
|
+
Option B — Table:
|
|
172
|
+
uses: Table component
|
|
173
|
+
with rounded outer corners and warm hover
|
|
174
|
+
|
|
175
|
+
Option C — List:
|
|
176
|
+
vertical stack with Base Card items
|
|
177
|
+
gap: var(--space-3)
|
|
178
|
+
|
|
179
|
+
PAGINATION
|
|
180
|
+
display: flex; justify-content: center; gap: var(--space-2)
|
|
181
|
+
margin-top: var(--space-8)
|
|
182
|
+
pill-shaped page buttons
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Onboarding / Setup Flow
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
LAYOUT
|
|
191
|
+
centered, max-width: 560px
|
|
192
|
+
padding: var(--space-16) var(--space-6)
|
|
193
|
+
no sidebar, minimal topbar (logo only)
|
|
194
|
+
|
|
195
|
+
PROGRESS
|
|
196
|
+
Step indicator above content
|
|
197
|
+
Numbered or dot-based, horizontal
|
|
198
|
+
Current step: accent color
|
|
199
|
+
Completed: accent-dim with checkmark
|
|
200
|
+
Future: var(--border-medium)
|
|
201
|
+
|
|
202
|
+
STEP CONTENT
|
|
203
|
+
title:
|
|
204
|
+
font: var(--font-display), var(--text-2xl), var(--weight-bold)
|
|
205
|
+
text-align: center
|
|
206
|
+
margin-bottom: var(--space-2)
|
|
207
|
+
|
|
208
|
+
description:
|
|
209
|
+
font: var(--text-base), var(--text-secondary)
|
|
210
|
+
text-align: center
|
|
211
|
+
max-width: 440px
|
|
212
|
+
margin: 0 auto var(--space-8)
|
|
213
|
+
|
|
214
|
+
form or content:
|
|
215
|
+
text-align: left
|
|
216
|
+
uses standard form components
|
|
217
|
+
|
|
218
|
+
ACTIONS
|
|
219
|
+
display: flex; justify-content: space-between
|
|
220
|
+
margin-top: var(--space-8)
|
|
221
|
+
"Back" (Ghost Button) + "Continue" (Primary Button)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Auth Pages (Login / Register)
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
LAYOUT
|
|
230
|
+
Option A — Centered card:
|
|
231
|
+
max-width: 420px
|
|
232
|
+
margin: auto
|
|
233
|
+
min-height: 100vh
|
|
234
|
+
display: flex; align-items: center; justify-content: center
|
|
235
|
+
background: var(--bg-void)
|
|
236
|
+
|
|
237
|
+
Option B — Split screen:
|
|
238
|
+
left 50%: illustration or brand panel (warm gradient or warm photography)
|
|
239
|
+
right 50%: auth form centered
|
|
240
|
+
|
|
241
|
+
CARD
|
|
242
|
+
background: var(--bg-surface)
|
|
243
|
+
border-radius: var(--radius-2xl)
|
|
244
|
+
padding: var(--space-10)
|
|
245
|
+
shadow: var(--shadow-lg)
|
|
246
|
+
|
|
247
|
+
logo:
|
|
248
|
+
centered, margin-bottom: var(--space-8)
|
|
249
|
+
|
|
250
|
+
title:
|
|
251
|
+
font: var(--font-display), var(--text-2xl), var(--weight-bold)
|
|
252
|
+
text-align: center
|
|
253
|
+
|
|
254
|
+
form:
|
|
255
|
+
margin-top: var(--space-6)
|
|
256
|
+
fields stacked with var(--space-4) gap
|
|
257
|
+
"Remember me" checkbox + "Forgot password?" link row
|
|
258
|
+
|
|
259
|
+
submit:
|
|
260
|
+
Primary Button, full width
|
|
261
|
+
margin-top: var(--space-6)
|
|
262
|
+
|
|
263
|
+
footer:
|
|
264
|
+
"Don't have an account? Sign up" — centered link
|
|
265
|
+
margin-top: var(--space-6)
|
|
266
|
+
font: var(--text-sm), var(--text-secondary)
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Responsive Breakpoints
|
|
272
|
+
|
|
273
|
+
```css
|
|
274
|
+
/* Mobile first */
|
|
275
|
+
@media (min-width: 640px) { /* sm — phone landscape */ }
|
|
276
|
+
@media (min-width: 768px) { /* md — tablet */ }
|
|
277
|
+
@media (min-width: 1024px) { /* lg — desktop */ }
|
|
278
|
+
@media (min-width: 1280px) { /* xl — wide desktop */ }
|
|
279
|
+
@media (min-width: 1440px) { /* 2xl — ultra-wide */ }
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Rules:
|
|
283
|
+
- Sidebar → bottom tab bar below 768px
|
|
284
|
+
- Card grids → single column below 640px
|
|
285
|
+
- Split layouts (detail page, auth) → stacked below 768px
|
|
286
|
+
- Content max-width respects `var(--content-*)` tokens
|
|
287
|
+
- Touch targets: minimum 44px on mobile
|
|
288
|
+
- Spacing reduces by one step on mobile (e.g., `--space-8` → `--space-6`)
|