@jaimevalasek/aioson 1.4.0 → 1.5.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 (199) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +661 -21
  3. package/README.md +3 -1
  4. package/docs/en/squad-dashboard.md +372 -0
  5. package/docs/openclaw-bridge.md +308 -0
  6. package/docs/pt/agentes.md +124 -10
  7. package/docs/pt/cenarios.md +46 -2
  8. package/docs/pt/comandos-cli.md +60 -1
  9. package/docs/pt/inicio-rapido.md +18 -2
  10. package/docs/pt/squad-dashboard.md +373 -0
  11. package/docs/testing/genome-2.0-matrix.md +5 -5
  12. package/docs/testing/genome-2.0-rollout.md +9 -9
  13. package/package.json +2 -2
  14. package/src/backup-local.js +74 -0
  15. package/src/cli.js +98 -0
  16. package/src/commands/backup-local-cmd.js +25 -0
  17. package/src/commands/runtime.js +242 -0
  18. package/src/commands/setup-context.js +7 -2
  19. package/src/commands/squad-daemon.js +209 -0
  20. package/src/commands/squad-dashboard.js +39 -0
  21. package/src/commands/squad-deploy.js +64 -0
  22. package/src/commands/squad-doctor.js +52 -0
  23. package/src/commands/squad-mcp.js +270 -0
  24. package/src/commands/squad-processes.js +56 -0
  25. package/src/commands/squad-recovery.js +42 -0
  26. package/src/commands/squad-roi.js +291 -0
  27. package/src/commands/squad-score.js +250 -0
  28. package/src/commands/squad-status.js +37 -1
  29. package/src/commands/squad-validate.js +62 -1
  30. package/src/commands/squad-webhook.js +160 -0
  31. package/src/commands/squad-worker.js +191 -0
  32. package/src/commands/squad-worktrees.js +75 -0
  33. package/src/commands/web-map.js +70 -0
  34. package/src/commands/web-scrape.js +71 -0
  35. package/src/constants.js +8 -0
  36. package/src/context-writer.js +45 -1
  37. package/src/i18n/messages/en.js +127 -1
  38. package/src/i18n/messages/es.js +117 -0
  39. package/src/i18n/messages/fr.js +117 -0
  40. package/src/i18n/messages/pt-BR.js +126 -1
  41. package/src/lib/webhook-server.js +328 -0
  42. package/src/mcp-connectors/registry.js +602 -0
  43. package/src/runtime-store.js +259 -2
  44. package/src/squad/external-session.js +180 -0
  45. package/src/squad/inter-squad.js +74 -0
  46. package/src/squad/recovery-context.js +201 -0
  47. package/src/squad/worktree-manager.js +114 -0
  48. package/src/squad-daemon.js +490 -0
  49. package/src/squad-dashboard/api.js +223 -0
  50. package/src/squad-dashboard/attachment-handler.js +93 -0
  51. package/src/squad-dashboard/context-monitor.js +157 -0
  52. package/src/squad-dashboard/execution-logs.js +115 -0
  53. package/src/squad-dashboard/hunk-review.js +209 -0
  54. package/src/squad-dashboard/metrics.js +133 -0
  55. package/src/squad-dashboard/process-monitor.js +125 -0
  56. package/src/squad-dashboard/renderer.js +858 -0
  57. package/src/squad-dashboard/server.js +232 -0
  58. package/src/squad-dashboard/styles.js +525 -0
  59. package/src/squad-dashboard/token-tracker.js +99 -0
  60. package/src/web.js +284 -0
  61. package/src/worker-runner.js +339 -0
  62. package/template/.aioson/agents/analyst.md +4 -0
  63. package/template/.aioson/agents/architect.md +4 -0
  64. package/template/.aioson/agents/dev.md +120 -11
  65. package/template/.aioson/agents/deyvin.md +8 -0
  66. package/template/.aioson/agents/neo.md +152 -0
  67. package/template/.aioson/agents/orache.md +17 -0
  68. package/template/.aioson/agents/orchestrator.md +26 -0
  69. package/template/.aioson/agents/product.md +60 -12
  70. package/template/.aioson/agents/qa.md +1 -0
  71. package/template/.aioson/agents/setup.md +63 -19
  72. package/template/.aioson/agents/sheldon.md +603 -0
  73. package/template/.aioson/agents/squad.md +191 -0
  74. package/template/.aioson/agents/tester.md +254 -0
  75. package/template/.aioson/agents/ux-ui.md +12 -0
  76. package/template/.aioson/config.md +6 -0
  77. package/template/.aioson/locales/en/agents/analyst.md +8 -0
  78. package/template/.aioson/locales/en/agents/architect.md +8 -0
  79. package/template/.aioson/locales/en/agents/dev.md +66 -7
  80. package/template/.aioson/locales/en/agents/deyvin.md +8 -0
  81. package/template/.aioson/locales/en/agents/neo.md +8 -0
  82. package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
  83. package/template/.aioson/locales/en/agents/qa.md +49 -0
  84. package/template/.aioson/locales/en/agents/setup.md +2 -1
  85. package/template/.aioson/locales/en/agents/sheldon.md +340 -0
  86. package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
  87. package/template/.aioson/locales/es/agents/analyst.md +8 -0
  88. package/template/.aioson/locales/es/agents/architect.md +8 -0
  89. package/template/.aioson/locales/es/agents/dev.md +66 -7
  90. package/template/.aioson/locales/es/agents/deyvin.md +8 -0
  91. package/template/.aioson/locales/es/agents/neo.md +48 -0
  92. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  93. package/template/.aioson/locales/es/agents/qa.md +26 -0
  94. package/template/.aioson/locales/es/agents/setup.md +2 -1
  95. package/template/.aioson/locales/es/agents/sheldon.md +192 -0
  96. package/template/.aioson/locales/es/agents/squad.md +63 -0
  97. package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
  98. package/template/.aioson/locales/fr/agents/analyst.md +8 -0
  99. package/template/.aioson/locales/fr/agents/architect.md +8 -0
  100. package/template/.aioson/locales/fr/agents/dev.md +66 -7
  101. package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
  102. package/template/.aioson/locales/fr/agents/neo.md +48 -0
  103. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  104. package/template/.aioson/locales/fr/agents/qa.md +26 -0
  105. package/template/.aioson/locales/fr/agents/setup.md +2 -1
  106. package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
  107. package/template/.aioson/locales/fr/agents/squad.md +63 -0
  108. package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
  109. package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
  110. package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
  111. package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
  112. package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
  113. package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
  114. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
  115. package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
  116. package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
  117. package/template/.aioson/locales/pt-BR/agents/setup.md +2 -1
  118. package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
  119. package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
  120. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
  121. package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
  122. package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
  123. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
  124. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
  125. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
  126. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
  127. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
  128. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
  129. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
  130. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
  131. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
  132. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
  133. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
  134. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
  135. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
  136. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
  137. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
  138. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
  139. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
  140. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
  141. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
  142. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
  143. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
  144. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
  145. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
  146. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
  147. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
  148. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
  149. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
  150. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
  151. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
  152. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
  153. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
  154. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
  155. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
  156. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
  157. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
  158. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
  159. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
  160. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
  161. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
  162. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
  163. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
  164. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
  165. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
  166. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
  167. package/template/.aioson/skills/squad/formats/catalog.json +15 -0
  168. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
  169. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
  170. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
  171. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
  172. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
  173. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
  174. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
  175. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
  176. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
  177. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
  178. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
  179. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
  180. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
  181. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
  182. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
  183. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
  184. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
  185. package/template/.aioson/skills/static/debugging-protocol.md +42 -0
  186. package/template/.aioson/skills/static/git-worktrees.md +36 -0
  187. package/template/.aioson/tasks/implementation-plan.md +19 -0
  188. package/template/.aioson/tasks/squad-design.md +28 -0
  189. package/template/.aioson/tasks/squad-profile.md +48 -0
  190. package/template/.aioson/tasks/squad-review.md +61 -0
  191. package/template/.aioson/tasks/squad-task-decompose.md +66 -0
  192. package/template/.claude/commands/aioson/agent/neo.md +5 -0
  193. package/template/.claude/commands/aioson/agent/tester.md +5 -0
  194. package/template/.gemini/GEMINI.md +1 -0
  195. package/template/.gemini/commands/aios-neo.toml +4 -0
  196. package/template/.gemini/commands/aios-tester.toml +6 -0
  197. package/template/AGENTS.md +3 -0
  198. package/template/CLAUDE.md +5 -2
  199. package/template/OPENCODE.md +2 -0
@@ -0,0 +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.
@@ -0,0 +1,352 @@
1
+ # Website Layouts — Bold Editorial UI
2
+
3
+ Composition guides for landing pages, product pages, and marketing sites. Uses tokens from `design-tokens.md` and components from `components.md`.
4
+
5
+ ---
6
+
7
+ ## General Website Rules
8
+
9
+ 1. **Typography dominates.** The headline is the hero. If the design relies on an image to carry impact, the type is not working hard enough.
10
+ 2. **Dark default, light as contrast.** Marketing pages use near-black backgrounds. Light sections feel like spotlights — use them intentionally.
11
+ 3. **Editorial pacing.** Every page must follow a rhythm: dense impact → white space → impact → pause. Never four identical sections.
12
+ 4. **Mono captions everywhere.** Every overline, category, date, and section label uses `var(--font-mono)` + uppercase + wide tracking.
13
+ 5. **One accent moment per viewport.** The CTA button or the one key visual element gets `--shadow-glow`. Nothing else.
14
+ 6. **Real copy.** No Lorem ipsum. Headlines must be uncomfortable to read — not clever taglines, but statements that mean something.
15
+ 7. **No warm aesthetics.** No rounded corners above `radius-xl`, no serif fonts, no warm beige backgrounds.
16
+
17
+ ---
18
+
19
+ ## Navigation
20
+
21
+ ```
22
+ STICKY HEADER
23
+ height: 64px
24
+ background: rgba(10, 10, 10, 0.85) /* --bg-base + opacity */
25
+ backdrop-filter: blur(12px)
26
+ border-bottom: 1px solid var(--border-subtle)
27
+ position: sticky; top: 0
28
+ z-index: var(--z-sticky)
29
+ padding: 0 var(--space-8)
30
+ display: flex; align-items: center; justify-content: space-between
31
+
32
+ Logo (left):
33
+ font-display, weight-bold, text-lg, text-heading, no decoration
34
+
35
+ Nav links (center):
36
+ font-body, text-sm, weight-medium, text-secondary
37
+ hover: text-heading
38
+ active: text-heading + 1px solid border-accent bottom (optional)
39
+
40
+ CTA (right):
41
+ .btn-primary, compact height 36px
42
+ OR .btn-ghost + .btn-primary side by side
43
+
44
+ MOBILE (< 768px)
45
+ Hamburger icon → full-screen overlay menu
46
+ background: var(--bg-base) at 0.96 opacity
47
+ Nav items stacked vertically, text-xl, font-display
48
+ CTA at bottom
49
+ Close button top-right
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Hero Patterns
55
+
56
+ ### Pattern A — Statement Hero
57
+
58
+ ```
59
+ +-----------------------------------------------------------+
60
+ | BACKGROUND: var(--bg-base) or var(--bg-void) |
61
+ | Optional: grain texture overlay at 3% opacity |
62
+ | |
63
+ | MONO OVERLINE (centered or left) |
64
+ | "INTRODUCING / PRODUCT — 2025" in font-mono |
65
+ | |
66
+ | HEADLINE |
67
+ | font-display, text-5xl, weight-bold |
68
+ | letter-spacing: var(--tracking-tighter) |
69
+ | line-height: var(--leading-tight) |
70
+ | max-width: 800px, text-align: left or center |
71
+ | color: var(--text-heading) |
72
+ | |
73
+ | SUBTITLE |
74
+ | font-body, text-lg, text-primary, max-width: 560px |
75
+ | |
76
+ | [CTA Hero Button] [Ghost Button — optional] |
77
+ | .btn-hero with shadow-glow |
78
+ | |
79
+ | SOCIAL PROOF (optional) |
80
+ | "Used by engineers at [logos]" — mono text-xs |
81
+ | |
82
+ +-----------------------------------------------------------+
83
+ ```
84
+
85
+ Use when: the message IS the product. Vision, manifesto, or pure product statement. No visual needed.
86
+
87
+ ### Pattern B — Product Theater Hero
88
+
89
+ ```
90
+ +---------------------------+---------------------------+
91
+ | | |
92
+ | OVERLINE (mono) | PRODUCT VISUAL |
93
+ | | screenshot / terminal |
94
+ | HEADLINE | floating at 1-2deg tilt |
95
+ | text-4xl or text-5xl | border: --border-medium |
96
+ | font-display, bold | radius: --radius-lg |
97
+ | | shadow: --shadow-xl |
98
+ | SUBTITLE | + shadow-glow |
99
+ | text-lg, text-primary | |
100
+ | max-width: 480px | gradient radial behind |
101
+ | | the product (subtle |
102
+ | [Hero CTA] | spotlight effect) |
103
+ | | |
104
+ | MONO TRUST LINES | |
105
+ | version badge + metrics | |
106
+ | | |
107
+ +---------------------------+---------------------------+
108
+ ```
109
+
110
+ Use when: product has a strong visual — UI, terminal, API, diagram. Let the product be the proof.
111
+
112
+ ### Pattern C — Split Cinematic Hero
113
+
114
+ ```
115
+ +-------------------+-----------------------------------+
116
+ | | |
117
+ | HEADLINE | HIGH-CONTRAST VISUAL |
118
+ | text-5xl+ | Full-bleed image or video |
119
+ | bold, white | Dark overlay gradient |
120
+ | | (rgba(10,10,10,0.4)) |
121
+ | SUBTITLE | |
122
+ | | OR: Abstract dark illustration |
123
+ | [CTA] | code aesthetic, data visualization|
124
+ | | |
125
+ +-------------------+-----------------------------------+
126
+ ```
127
+
128
+ Use when: brand-heavy experience, premium product, emotional product story.
129
+
130
+ ### Pattern D — Full-Bleed Hero
131
+
132
+ ```
133
+ +-----------------------------------------------------------+
134
+ | FULL-VIEWPORT background |
135
+ | Video or high-contrast dark photography |
136
+ | Gradient overlay: rgba(10,10,10,0.55) uniform |
137
+ | OR darker at bottom — text area |
138
+ | |
139
+ | Centered content, max-width: var(--content-sm) |
140
+ | |
141
+ | MONO OVERLINE |
142
+ | HEADLINE — white, text-5xl, centered |
143
+ | [CTA — accent, centered] |
144
+ | |
145
+ | SCROLL INDICATOR (bottom center) |
146
+ | animated chevron or line pulsing down |
147
+ | |
148
+ +-----------------------------------------------------------+
149
+ ```
150
+
151
+ Use when: cinematic, atmospheric, experience-first products.
152
+
153
+ ---
154
+
155
+ ## Section Patterns
156
+
157
+ ### Feature Alternating
158
+
159
+ ```
160
+ SECTION 1 (visual left, text right)
161
+ +---------------------------+---------------------------+
162
+ | [Product screenshot | MONO OVERLINE |
163
+ | or illustration | DISPLAY TITLE (text-2xl) |
164
+ | radius-lg, shadow-lg] | DESCRIPTION |
165
+ | | BULLET POINTS or LIST |
166
+ | | [CTA link →] |
167
+ +---------------------------+---------------------------+
168
+
169
+ SECTION 2 (text left, visual right)
170
+ +---------------------------+---------------------------+
171
+ | MONO OVERLINE | [Product screenshot |
172
+ | DISPLAY TITLE | different angle] |
173
+ | DESCRIPTION | |
174
+ +---------------------------+---------------------------+
175
+ ```
176
+
177
+ Rules:
178
+ - Always alternate sides.
179
+ - Product visuals get `radius-lg` + `shadow-lg`. Never flat or borderless.
180
+ - Vertical padding between sections: `var(--space-24)` minimum.
181
+
182
+ ---
183
+
184
+ ### Metrics Strip
185
+
186
+ ```
187
+ HORIZONTAL STRIP (full width, bg-surface card)
188
+ 3-5 metrics side by side, divided by 1px border-subtle
189
+
190
+ Each metric:
191
+ MONO LABEL (text-xs, text-muted, uppercase, tracking-widest)
192
+ DISPLAY NUMBER (font-display, text-4xl, weight-bold, text-heading)
193
+ TREND (mono text-xs, semantic color)
194
+
195
+ padding: var(--space-8) var(--space-12)
196
+ border: 1px solid var(--border-subtle)
197
+ radius: var(--radius-lg)
198
+ shadow: var(--shadow-sm)
199
+ ```
200
+
201
+ Rules:
202
+ - Numbers animate on scroll entry (see `motion.md` — Counter Roll).
203
+ - No individual card frames around each metric — one unified strip.
204
+
205
+ ---
206
+
207
+ ### Testimonial Editorial
208
+
209
+ ```
210
+ PULL QUOTE (centered, max-width: 680px)
211
+ Opening quote mark: oversized, accent color, font-display
212
+ QUOTE TEXT: font-display, text-2xl, italic, text-heading, line-height: var(--leading-snug)
213
+
214
+ ATTRIBUTION (below quote)
215
+ avatar (40px, radius-md) + name (font-body, weight-semibold) + title + company
216
+ font: text-sm, text-secondary
217
+
218
+ BACKGROUND: alternating — if page is dark, testimonial section is light (white spotlight moment)
219
+ ```
220
+
221
+ Rules:
222
+ - One testimonial section per page. Make it count.
223
+ - Pull quote is strongly preferred over card grid — this is editorial, not social media.
224
+ - Never a gray box. Either dramatic editorial treatment or nothing.
225
+
226
+ ---
227
+
228
+ ### Case Study Cards
229
+
230
+ ```
231
+ GRID (2 columns on desktop)
232
+ Each card:
233
+ background: var(--bg-surface)
234
+ border: 1px solid var(--border-subtle)
235
+ radius: var(--radius-lg)
236
+ overflow: hidden
237
+
238
+ IMAGE (top, aspect-ratio: 4/3, object-fit: cover)
239
+ On hover: image scale(1.03), dark overlay fades in with project details
240
+
241
+ BODY (padding var(--space-6))
242
+ MONO CAPTION — year + category
243
+ TITLE — font-display, text-xl, weight-bold
244
+ DESCRIPTION — font-body, text-sm, text-secondary
245
+ ```
246
+
247
+ ---
248
+
249
+ ### Logo Cloud
250
+
251
+ ```
252
+ HORIZONTAL ROW
253
+ "TRUSTED BY TEAMS AT" — mono label, text-xs, text-muted, uppercase
254
+ Logos: monochrome white (dark theme) or black (light theme), opacity 0.5
255
+ Hover: opacity 1, transition var(--transition-base)
256
+ Container: bg-surface, border-y: var(--border-subtle), padding var(--space-6) 0
257
+ ```
258
+
259
+ ---
260
+
261
+ ### Pricing Section
262
+
263
+ ```
264
+ SECTION HEADER (centered)
265
+ mono overline: "PRICING"
266
+ display title: "Simple, transparent." (font-display, text-3xl)
267
+ subtitle: font-body, text-lg, text-secondary
268
+
269
+ PRICING CARDS (2-3 columns, centered grid)
270
+ Each card:
271
+ background: var(--bg-surface)
272
+ border: 1px solid var(--border-subtle)
273
+ radius: var(--radius-lg)
274
+ padding: var(--space-8)
275
+
276
+ PLAN NAME: mono, text-sm, uppercase, tracking-widest, text-secondary
277
+ PRICE: font-display, text-4xl, weight-bold, text-heading
278
+ PER PERIOD: mono, text-xs, text-muted
279
+ FEATURE LIST: body text-sm, checkmark icons in semantic-green
280
+ CTA: .btn-primary or .btn-secondary (full width)
281
+
282
+ Featured card:
283
+ border: 1px solid var(--accent)
284
+ shadow: var(--shadow-lg) + var(--shadow-glow)
285
+ "RECOMMENDED" mono badge above card (rotated -2deg optional)
286
+ ```
287
+
288
+ ---
289
+
290
+ ### CTA Section (pre-footer)
291
+
292
+ ```
293
+ BACKGROUND: alternating from page (if page dark → section light; if page light → section dark)
294
+ MAX-WIDTH: var(--content-lg), centered, margin auto
295
+ PADDING: var(--space-20) var(--space-8)
296
+
297
+ MONO OVERLINE: "START TODAY"
298
+ DISPLAY TITLE: font-display, text-3xl, weight-bold
299
+ SUBTITLE: font-body, text-lg, text-secondary, max-width: 480px
300
+ BUTTONS: [Hero CTA] + [Ghost optional]
301
+ ```
302
+
303
+ ---
304
+
305
+ ## Footer
306
+
307
+ ```
308
+ BACKGROUND: var(--bg-void)
309
+ BORDER-TOP: 1px solid var(--border-subtle)
310
+ PADDING: var(--space-16) var(--space-8) var(--space-8)
311
+
312
+ LAYOUT (4 columns on desktop, stacked on mobile)
313
+ Column 1: Logo + tagline (font-display, text-sm, italic, text-secondary) + social icons
314
+ Columns 2-4: Link groups
315
+
316
+ Link group title:
317
+ font-family: var(--font-mono)
318
+ font-size: var(--text-xs)
319
+ font-weight: var(--weight-medium)
320
+ letter-spacing: var(--tracking-widest)
321
+ text-transform: uppercase
322
+ color: var(--text-muted)
323
+ margin-bottom: var(--space-4)
324
+
325
+ Links:
326
+ font: var(--font-body), var(--text-sm), var(--text-secondary)
327
+ hover: var(--text-heading)
328
+ line-height: 2
329
+
330
+ BOTTOM BAR
331
+ border-top: 1px solid var(--border-subtle)
332
+ margin-top: var(--space-8)
333
+ padding-top: var(--space-6)
334
+ display: flex; justify-content: space-between
335
+ copyright: font-mono, text-xs, text-muted, uppercase
336
+ legal links: font-body, text-xs, text-secondary
337
+ ```
338
+
339
+ ---
340
+
341
+ ## Anti-Patterns — Never Do This
342
+
343
+ 1. **Generic dark landing page**: gradient mesh background, centered headline, abstract 3D blob in the background. The visual signature of AI-generated zero-personality marketing.
344
+ 2. **Gradient mesh backgrounds**: `#8B5CF6` → `#EC4899` → `#EF4444` in an mesh. This is explicitly NOT Bold Editorial.
345
+ 3. **Purple or blue as accent**: this system is red-orange. Blue and purple belong to Glassmorphism and Clean SaaS.
346
+ 4. **Rounded pill buttons everywhere**: hero buttons use `radius-md` (6px). Only secondary badges are pills. Pill-everything belongs to Warm Craft.
347
+ 5. **Serif fonts**: Source Serif or any editorial serif is Warm Craft territory. Bold Editorial uses display sans only.
348
+ 6. **Card grid features with icon + 1-line description**: lazy and undifferentiated. Use alternating features or full feature sections instead.
349
+ 7. **Equal-size section layout**: four sections all the same height and width. Editorial rhythm requires scale variation.
350
+ 8. **Emoji as decoration**: never as icons, never as visual anchors.
351
+ 9. **Stock illustrations**: geometric or hand-drawn generic illustrations. Product screenshots, code, or nothing.
352
+ 10. **Warm beige backgrounds**: `#FDF8F0` or similar. That's Warm Craft. Bold Editorial uses off-white `#FAFAF7` (light) or near-black (dark).