@jaimevalasek/aioson 1.30.1 → 1.33.1

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.
Files changed (136) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +19 -6
  3. package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
  4. package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
  5. package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
  6. package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
  7. package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
  8. package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
  9. package/docs/design-previews/cognitive-core-ui.html +281 -463
  10. package/docs/design-previews/index.html +83 -31
  11. package/docs/en/5-reference/cli-reference.md +1 -1
  12. package/docs/pt/5-referencia/comandos-cli.md +1 -1
  13. package/docs/pt/5-referencia/harness-retro.md +2 -1
  14. package/package.json +1 -1
  15. package/src/cli.js +38 -21
  16. package/src/commands/classify.js +389 -327
  17. package/src/commands/harness-retro-promote.js +387 -0
  18. package/src/commands/prototype-check.js +163 -0
  19. package/src/commands/verify-implementation.js +428 -0
  20. package/src/commands/workflow-next.js +222 -9
  21. package/src/constants.js +569 -511
  22. package/src/lib/retro/retro-render.js +10 -1
  23. package/src/lib/retro/retro-sources.js +45 -27
  24. package/src/lib/retro/verification-reports.js +230 -0
  25. package/src/runtime-store.js +13 -9
  26. package/src/verification/evidence-bundle.js +251 -0
  27. package/src/verification/ledger-store.js +221 -0
  28. package/src/verification/path-policy.js +74 -0
  29. package/src/verification/policy-engine.js +95 -0
  30. package/src/verification/prompt-package.js +314 -0
  31. package/src/verification/redaction.js +77 -0
  32. package/src/verification/report-parser.js +132 -0
  33. package/src/verification/report-store.js +97 -0
  34. package/src/verification/result.js +16 -0
  35. package/src/verification/runners/index.js +319 -0
  36. package/src/verification/runtime-telemetry.js +144 -0
  37. package/src/verification/schema.js +276 -0
  38. package/src/verification/source-discovery.js +153 -0
  39. package/template/.aioson/agents/analyst.md +9 -6
  40. package/template/.aioson/agents/briefing-refiner.md +22 -0
  41. package/template/.aioson/agents/briefing.md +69 -12
  42. package/template/.aioson/agents/design-hybrid-forge.md +18 -14
  43. package/template/.aioson/agents/dev.md +23 -10
  44. package/template/.aioson/agents/deyvin.md +3 -2
  45. package/template/.aioson/agents/product.md +15 -11
  46. package/template/.aioson/agents/qa.md +13 -4
  47. package/template/.aioson/agents/scope-check.md +19 -5
  48. package/template/.aioson/agents/sheldon.md +4 -3
  49. package/template/.aioson/agents/ux-ui.md +3 -2
  50. package/template/.aioson/docs/feature-expansion-taxonomy.md +31 -3
  51. package/template/.aioson/docs/play/README.md +2 -0
  52. package/template/.aioson/docs/play/agent-usage-guide.md +7 -1
  53. package/template/.aioson/docs/play/app-compatibility-guide.md +6 -1
  54. package/template/.aioson/docs/play/auth-services-and-testing.md +16 -1
  55. package/template/.aioson/docs/play/manifest-and-runtime.md +23 -0
  56. package/template/.aioson/docs/prototype-contract.md +81 -0
  57. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
  58. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
  59. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
  60. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
  61. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
  62. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
  63. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
  64. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
  65. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
  66. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
  67. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
  68. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
  69. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
  70. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
  71. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
  72. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
  73. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
  74. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
  75. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
  76. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
  77. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
  78. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
  79. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
  80. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
  81. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
  82. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
  83. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
  84. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
  85. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
  86. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
  87. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
  88. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
  89. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
  90. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
  91. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
  92. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
  93. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
  94. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
  95. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
  96. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
  97. package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
  98. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
  99. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
  100. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
  101. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
  102. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
  103. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
  104. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
  105. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
  106. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
  107. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
  108. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
  109. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
  110. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
  111. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
  112. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
  113. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
  114. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
  115. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
  116. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
  117. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
  118. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
  119. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
  120. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
  121. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
  122. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
  123. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
  124. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
  125. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
  126. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
  127. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
  128. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
  129. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
  130. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
  131. package/template/.aioson/skills/process/briefing-expansion-scout/SKILL.md +25 -3
  132. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +5 -3
  133. package/template/.aioson/skills/process/design-hybrid-forge/references/external-source-ingestion.md +89 -0
  134. package/template/.aioson/skills/process/product-scope-expansion/SKILL.md +29 -2
  135. package/template/.aioson/skills/process/prototype-forge/SKILL.md +92 -0
  136. package/template/.aioson/skills/process/sheldon-expansion-audit/SKILL.md +23 -2
@@ -1,215 +1,215 @@
1
- # Patterns — Clean SaaS UI
2
-
3
- Page-level composition patterns. Always build from these patterns — never invent a new shell without a domain reason.
4
-
5
- ---
6
-
7
- ## App Shell
8
-
9
- ```
10
- ┌──────────────────────────────────────────────────────────┐
11
- │ [Logo] ProductName [Search] [?] [Avatar ▾] │ ← 56px top bar (optional)
12
- ├────────────────┬─────────────────────────────────────────┤
13
- │ │ Page Header (title + breadcrumbs + │
14
- │ SIDEBAR │ actions) │
15
- │ 256px ├─────────────────────────────────────────┤
16
- │ bg-surface │ Filter Bar / Tab Bar (when needed) │
17
- │ border-right ├─────────────────────────────────────────┤
18
- │ │ CONTENT AREA │
19
- │ Nav groups │ padding: 24px │
20
- │ Active state │ scroll: vertical │
21
- │ │ │
22
- │ [User] │ │
23
- └────────────────┴─────────────────────────────────────────┘
24
- ```
25
-
26
- **Rules:**
27
- - Sidebar: `256px` fixed, `bg-surface`, `border-r border-default`, scrollable independently
28
- - Top bar: optional — some apps omit it if sidebar has logo + user footer
29
- - Content area: `flex-1 overflow-y-auto`, `padding: 24px`
30
- - Page header: inside content area, not full-width — stays within the scrollable zone
31
- - Sidebar collapses to hamburger menu below `1024px`
32
-
33
- ---
34
-
35
- ## 1. List Page
36
-
37
- **Use for:** contacts, accounts, tickets, orders, products, users
38
-
39
- ```
40
- ┌─────────────────────────────────────────────────────────┐
41
- │ Contacts [Export] [+ New] │ ← page header
42
- ├─────────────────────────────────────────────────────────┤
43
- │ [Search...] [Status ▾] [Owner ▾] ×2 filters [Clear] │ ← filter bar
44
- ├─────────────────────────────────────────────────────────┤
45
- │ ☐ Name ↕ Company ↕ Status Created (…) │ ← sticky table header
46
- │ ☐ J. Smith Acme Corp ● Active Mar 12 │
47
- │ ☐ A. Jones Beta Ltd ○ Inactive Mar 10 │
48
- │ ☐ R. Miller Gamma Inc ⚠ Warning Mar 8 │
49
- ├─────────────────────────────────────────────────────────┤
50
- │ Showing 1–25 of 143 [← Prev] 1 2 3 [Next →] │ ← pagination
51
- └─────────────────────────────────────────────────────────┘
52
- ```
53
-
54
- **Composition rules:**
55
- - Page header always: title + subtitle + right actions
56
- - Filter bar always below header, sticky below `--z-sticky`
57
- - Table fills remaining space, sticky header
58
- - Pagination anchored to bottom of table, not page
59
- - Bulk action bar replaces filter bar when rows selected (slides in)
60
-
61
- ---
62
-
63
- ## 2. Detail Page
64
-
65
- **Use for:** contact detail, account detail, ticket detail, order detail
66
-
67
- ```
68
- ┌─────────────────────────────────────────────────────────┐
69
- │ Contacts > Acme Corp │ ← breadcrumb
70
- │ Acme Corp [Archive] [Edit] [+ Task] │ ← title + status badge + actions
71
- ├─────────────────────────────────────────────────────────┤
72
- │ Overview │ Contacts │ Activity │ Documents │ Settings │ ← tabs
73
- ├───────────────────────────────┬─────────────────────────┤
74
- │ MAIN CONTENT │ SIDEBAR DETAIL RAIL │
75
- │ (primary info, main data) │ Key metrics / info │
76
- │ │ Related items │
77
- │ │ Quick actions │
78
- └───────────────────────────────┴─────────────────────────┘
79
- ```
80
-
81
- **Composition rules:**
82
- - Breadcrumb above title — always
83
- - Status badge inline with title
84
- - Tabs separate content areas (Overview, Activity, etc.)
85
- - Two-column layout: main content (2/3) + detail rail (1/3)
86
- - Detail rail: `bg-surface border-l border-default px-4 py-5`
87
-
88
- ---
89
-
90
- ## 3. Form Page
91
-
92
- **Use for:** create contact, new deal, edit settings section, configure integration
93
-
94
- ```
95
- ┌─────────────────────────────────────────────────────────┐
96
- │ Contacts > New Contact │ ← breadcrumb
97
- │ New Contact │ ← title
98
- ├──────────────────────────────────────────────────────────┤
99
- │ ┌─────────────────────────────────────────────────────┐ │
100
- │ │ Basic Information │ │ ← section card
101
- │ │ Fill in the contact's core details. │ │
102
- │ │ ─────────────────────────────────────────────────── │ │
103
- │ │ First name * [ __________________ ] │ │
104
- │ │ Last name * [ __________________ ] │ │
105
- │ │ Email [ __________________ ] │ │
106
- │ └─────────────────────────────────────────────────────┘ │
107
- │ ┌─────────────────────────────────────────────────────┐ │
108
- │ │ Company Details │ │ ← section card 2
109
- │ └─────────────────────────────────────────────────────┘ │
110
- ├──────────────────────────────────────────────────────────┤
111
- │ [Cancel] [Save Contact] │ ← sticky save bar
112
- └─────────────────────────────────────────────────────────┘
113
- ```
114
-
115
- **Composition rules:**
116
- - Max content width: `640px` (centered within content area or left-aligned)
117
- - Section cards: `bg-surface border border-default rounded-lg`
118
- - Section header: `px-5 py-4 border-b border-default` — title `text-base font-semibold` + description `text-sm text-secondary`
119
- - Form fields inside: `px-5 py-5 space-y-4`
120
- - Sticky save bar: `fixed bottom-0 left-[256px] right-0 bg-surface border-t border-default px-6 py-3 flex justify-between`
121
- - Auto-save indicator: `text-xs text-secondary` in save bar left
122
-
123
- ---
124
-
125
- ## 4. Dashboard Page
126
-
127
- **Use for:** main dashboard, analytics, reporting overview, exec summary
128
-
129
- ```
130
- ┌─────────────────────────────────────────────────────────┐
131
- │ Dashboard [This month ▾] [Export] │ ← page header + date range
132
- ├─────────────────────────────────────────────────────────┤
133
- │ [MRR: $48K ↑] [ARR: $580K] [Churn: 1.2%] [NPS: 42] │ ← stat cards row
134
- ├─────────────────────────────────────────────────────────┤
135
- │ [Revenue Chart (2/3)] │ [Top Sources (1/3)] │ ← charts section
136
- ├─────────────────────────────────────────────────────────┤
137
- │ Recent Accounts [View all →] │ ← section header
138
- │ [table snippet — 5 rows max] │
139
- └─────────────────────────────────────────────────────────┘
140
- ```
141
-
142
- **Composition rules:**
143
- - Date range selector: prominent in page header, right-aligned
144
- - Stat cards: 4-column grid, `gap-4`
145
- - Charts: 2/3 + 1/3 or 1/2 + 1/2 — never all equal width
146
- - Table snippets: 5 rows max with "View all" link — do not paginate on dashboard
147
- - Section headers: `flex justify-between items-center mb-3` — title + link
148
-
149
- ---
150
-
151
- ## 5. Settings Page
152
-
153
- **Use for:** account settings, team settings, notifications, billing, integrations
154
-
155
- ```
156
- ┌──────────────────────┬──────────────────────────────────┐
157
- │ SETTINGS NAV │ Profile │
158
- │ │ Update your name and email. │
159
- │ Profile │ ─────────────────────────────── │
160
- │ Security ▶ │ [form content] │
161
- │ Notifications │ │
162
- │ Billing │ API Keys │
163
- │ Integrations │ ─────────────────────────────── │
164
- │ Team │ [form content] │
165
- └──────────────────────┴──────────────────────────────────┘
166
- ```
167
-
168
- **Composition rules:**
169
- - Settings nav: `200px` left sub-nav, `text-sm`, active item with accent color + weight-medium
170
- - Content area: `flex-1 max-w-2xl`
171
- - Each settings section: card with header + content
172
- - Dangerous actions (delete account): separate section at bottom with danger styling
173
-
174
- ---
175
-
176
- ## 6. Empty / Onboarding Page
177
-
178
- **Use for:** first-run, empty state for a feature, setup completion
179
-
180
- ```
181
- ┌─────────────────────────────────────────────────────────┐
182
- │ [Step 1/4 progress] │
183
- │ │
184
- │ [geometric illustration] │
185
- │ │
186
- │ Connect your CRM │
187
- │ Import your contacts automatically │
188
- │ from Salesforce, HubSpot, or CSV. │
189
- │ │
190
- │ [Skip] [Connect CRM →] │
191
- └─────────────────────────────────────────────────────────┘
192
- ```
193
-
194
- **Composition rules:**
195
- - Centered, `max-w-sm` to `max-w-md`
196
- - Progress: `text-xs text-secondary` or step dots above illustration
197
- - Illustration: clean geometric SVG, 120–160px
198
- - Title: `text-xl font-semibold`
199
- - Description: `text-sm text-secondary text-center max-w-xs`
200
- - Actions: ghost (skip) + primary (main action), `gap-3 mt-8`
201
-
202
- ---
203
-
204
- ## Responsive rules
205
-
206
- | Breakpoint | Behavior |
207
- |-----------|---------|
208
- | `< 640px` | Single column, cards stack |
209
- | `< 768px` | Tables scroll horizontally (NEVER stack into cards) |
210
- | `< 1024px` | Sidebar collapses to hamburger; settings nav becomes tab bar |
211
- | `>= 1024px` | Full app shell with fixed sidebar |
212
-
213
- **Critical:** Tables **never** become card lists on mobile. Tabular data stays in a table, always with horizontal scroll. This is non-negotiable in this design system.
214
-
215
- **Control heights** are maintained at all breakpoints — touch targets stay at minimum 36px.
1
+ # Patterns — Clean SaaS UI
2
+
3
+ Page-level composition patterns. Always build from these patterns — never invent a new shell without a domain reason.
4
+
5
+ ---
6
+
7
+ ## App Shell
8
+
9
+ ```
10
+ ┌──────────────────────────────────────────────────────────┐
11
+ │ [Logo] ProductName [Search] [?] [Avatar ▾] │ ← 56px top bar (optional)
12
+ ├────────────────┬─────────────────────────────────────────┤
13
+ │ │ Page Header (title + breadcrumbs + │
14
+ │ SIDEBAR │ actions) │
15
+ │ 256px ├─────────────────────────────────────────┤
16
+ │ bg-surface │ Filter Bar / Tab Bar (when needed) │
17
+ │ border-right ├─────────────────────────────────────────┤
18
+ │ │ CONTENT AREA │
19
+ │ Nav groups │ padding: 24px │
20
+ │ Active state │ scroll: vertical │
21
+ │ │ │
22
+ │ [User] │ │
23
+ └────────────────┴─────────────────────────────────────────┘
24
+ ```
25
+
26
+ **Rules:**
27
+ - Sidebar: `256px` fixed, `bg-surface`, `border-r border-default`, scrollable independently
28
+ - Top bar: optional — some apps omit it if sidebar has logo + user footer
29
+ - Content area: `flex-1 overflow-y-auto`, `padding: 24px`
30
+ - Page header: inside content area, not full-width — stays within the scrollable zone
31
+ - Sidebar collapses to hamburger menu below `1024px`
32
+
33
+ ---
34
+
35
+ ## 1. List Page
36
+
37
+ **Use for:** contacts, accounts, tickets, orders, products, users
38
+
39
+ ```
40
+ ┌─────────────────────────────────────────────────────────┐
41
+ │ Contacts [Export] [+ New] │ ← page header
42
+ ├─────────────────────────────────────────────────────────┤
43
+ │ [Search...] [Status ▾] [Owner ▾] ×2 filters [Clear] │ ← filter bar
44
+ ├─────────────────────────────────────────────────────────┤
45
+ │ ☐ Name ↕ Company ↕ Status Created (…) │ ← sticky table header
46
+ │ ☐ J. Smith Acme Corp ● Active Mar 12 │
47
+ │ ☐ A. Jones Beta Ltd ○ Inactive Mar 10 │
48
+ │ ☐ R. Miller Gamma Inc ⚠ Warning Mar 8 │
49
+ ├─────────────────────────────────────────────────────────┤
50
+ │ Showing 1–25 of 143 [← Prev] 1 2 3 [Next →] │ ← pagination
51
+ └─────────────────────────────────────────────────────────┘
52
+ ```
53
+
54
+ **Composition rules:**
55
+ - Page header always: title + subtitle + right actions
56
+ - Filter bar always below header, sticky below `--z-sticky`
57
+ - Table fills remaining space, sticky header
58
+ - Pagination anchored to bottom of table, not page
59
+ - Bulk action bar replaces filter bar when rows selected (slides in)
60
+
61
+ ---
62
+
63
+ ## 2. Detail Page
64
+
65
+ **Use for:** contact detail, account detail, ticket detail, order detail
66
+
67
+ ```
68
+ ┌─────────────────────────────────────────────────────────┐
69
+ │ Contacts > Acme Corp │ ← breadcrumb
70
+ │ Acme Corp [Archive] [Edit] [+ Task] │ ← title + status badge + actions
71
+ ├─────────────────────────────────────────────────────────┤
72
+ │ Overview │ Contacts │ Activity │ Documents │ Settings │ ← tabs
73
+ ├───────────────────────────────┬─────────────────────────┤
74
+ │ MAIN CONTENT │ SIDEBAR DETAIL RAIL │
75
+ │ (primary info, main data) │ Key metrics / info │
76
+ │ │ Related items │
77
+ │ │ Quick actions │
78
+ └───────────────────────────────┴─────────────────────────┘
79
+ ```
80
+
81
+ **Composition rules:**
82
+ - Breadcrumb above title — always
83
+ - Status badge inline with title
84
+ - Tabs separate content areas (Overview, Activity, etc.)
85
+ - Two-column layout: main content (2/3) + detail rail (1/3)
86
+ - Detail rail: `bg-surface border-l border-default px-4 py-5`
87
+
88
+ ---
89
+
90
+ ## 3. Form Page
91
+
92
+ **Use for:** create contact, new deal, edit settings section, configure integration
93
+
94
+ ```
95
+ ┌─────────────────────────────────────────────────────────┐
96
+ │ Contacts > New Contact │ ← breadcrumb
97
+ │ New Contact │ ← title
98
+ ├──────────────────────────────────────────────────────────┤
99
+ │ ┌─────────────────────────────────────────────────────┐ │
100
+ │ │ Basic Information │ │ ← section card
101
+ │ │ Fill in the contact's core details. │ │
102
+ │ │ ─────────────────────────────────────────────────── │ │
103
+ │ │ First name * [ __________________ ] │ │
104
+ │ │ Last name * [ __________________ ] │ │
105
+ │ │ Email [ __________________ ] │ │
106
+ │ └─────────────────────────────────────────────────────┘ │
107
+ │ ┌─────────────────────────────────────────────────────┐ │
108
+ │ │ Company Details │ │ ← section card 2
109
+ │ └─────────────────────────────────────────────────────┘ │
110
+ ├──────────────────────────────────────────────────────────┤
111
+ │ [Cancel] [Save Contact] │ ← sticky save bar
112
+ └─────────────────────────────────────────────────────────┘
113
+ ```
114
+
115
+ **Composition rules:**
116
+ - Max content width: `640px` (centered within content area or left-aligned)
117
+ - Section cards: `bg-surface border border-default rounded-lg`
118
+ - Section header: `px-5 py-4 border-b border-default` — title `text-base font-semibold` + description `text-sm text-secondary`
119
+ - Form fields inside: `px-5 py-5 space-y-4`
120
+ - Sticky save bar: `fixed bottom-0 left-[256px] right-0 bg-surface border-t border-default px-6 py-3 flex justify-between`
121
+ - Auto-save indicator: `text-xs text-secondary` in save bar left
122
+
123
+ ---
124
+
125
+ ## 4. Dashboard Page
126
+
127
+ **Use for:** main dashboard, analytics, reporting overview, exec summary
128
+
129
+ ```
130
+ ┌─────────────────────────────────────────────────────────┐
131
+ │ Dashboard [This month ▾] [Export] │ ← page header + date range
132
+ ├─────────────────────────────────────────────────────────┤
133
+ │ [MRR: $48K ↑] [ARR: $580K] [Churn: 1.2%] [NPS: 42] │ ← stat cards row
134
+ ├─────────────────────────────────────────────────────────┤
135
+ │ [Revenue Chart (2/3)] │ [Top Sources (1/3)] │ ← charts section
136
+ ├─────────────────────────────────────────────────────────┤
137
+ │ Recent Accounts [View all →] │ ← section header
138
+ │ [table snippet — 5 rows max] │
139
+ └─────────────────────────────────────────────────────────┘
140
+ ```
141
+
142
+ **Composition rules:**
143
+ - Date range selector: prominent in page header, right-aligned
144
+ - Stat cards: 4-column grid, `gap-4`
145
+ - Charts: 2/3 + 1/3 or 1/2 + 1/2 — never all equal width
146
+ - Table snippets: 5 rows max with "View all" link — do not paginate on dashboard
147
+ - Section headers: `flex justify-between items-center mb-3` — title + link
148
+
149
+ ---
150
+
151
+ ## 5. Settings Page
152
+
153
+ **Use for:** account settings, team settings, notifications, billing, integrations
154
+
155
+ ```
156
+ ┌──────────────────────┬──────────────────────────────────┐
157
+ │ SETTINGS NAV │ Profile │
158
+ │ │ Update your name and email. │
159
+ │ Profile │ ─────────────────────────────── │
160
+ │ Security ▶ │ [form content] │
161
+ │ Notifications │ │
162
+ │ Billing │ API Keys │
163
+ │ Integrations │ ─────────────────────────────── │
164
+ │ Team │ [form content] │
165
+ └──────────────────────┴──────────────────────────────────┘
166
+ ```
167
+
168
+ **Composition rules:**
169
+ - Settings nav: `200px` left sub-nav, `text-sm`, active item with accent color + weight-medium
170
+ - Content area: `flex-1 max-w-2xl`
171
+ - Each settings section: card with header + content
172
+ - Dangerous actions (delete account): separate section at bottom with danger styling
173
+
174
+ ---
175
+
176
+ ## 6. Empty / Onboarding Page
177
+
178
+ **Use for:** first-run, empty state for a feature, setup completion
179
+
180
+ ```
181
+ ┌─────────────────────────────────────────────────────────┐
182
+ │ [Step 1/4 progress] │
183
+ │ │
184
+ │ [geometric illustration] │
185
+ │ │
186
+ │ Connect your CRM │
187
+ │ Import your contacts automatically │
188
+ │ from Salesforce, HubSpot, or CSV. │
189
+ │ │
190
+ │ [Skip] [Connect CRM →] │
191
+ └─────────────────────────────────────────────────────────┘
192
+ ```
193
+
194
+ **Composition rules:**
195
+ - Centered, `max-w-sm` to `max-w-md`
196
+ - Progress: `text-xs text-secondary` or step dots above illustration
197
+ - Illustration: clean geometric SVG, 120–160px
198
+ - Title: `text-xl font-semibold`
199
+ - Description: `text-sm text-secondary text-center max-w-xs`
200
+ - Actions: ghost (skip) + primary (main action), `gap-3 mt-8`
201
+
202
+ ---
203
+
204
+ ## Responsive rules
205
+
206
+ | Breakpoint | Behavior |
207
+ |-----------|---------|
208
+ | `< 640px` | Single column, cards stack |
209
+ | `< 768px` | Tables scroll horizontally (NEVER stack into cards) |
210
+ | `< 1024px` | Sidebar collapses to hamburger; settings nav becomes tab bar |
211
+ | `>= 1024px` | Full app shell with fixed sidebar |
212
+
213
+ **Critical:** Tables **never** become card lists on mobile. Tabular data stays in a table, always with horizontal scroll. This is non-negotiable in this design system.
214
+
215
+ **Control heights** are maintained at all breakpoints — touch targets stay at minimum 36px.