@equal-experts/kuat-vue 0.15.1 → 0.15.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.
Files changed (22) hide show
  1. package/agent-docs/AGENTS.md +1 -1
  2. package/agent-docs/README.md +1 -1
  3. package/agent-docs/external/kuat-agent-rules/reference/design-language/borders.md +49 -36
  4. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/emails.md +97 -34
  5. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/design.md +174 -3
  6. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/emails.md +98 -32
  7. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/figma-build-checklist.md +13 -0
  8. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/README.md +4 -0
  9. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/browse-and-filter.md +226 -0
  10. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/complete-a-form.md +1 -1
  11. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/dashboard.md +14 -53
  12. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/detail-page.md +196 -0
  13. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/give-feedback-on-an-action.md +184 -0
  14. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/section-hub.md +174 -0
  15. package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/sign-in.md +1 -1
  16. package/agent-docs/manifest.json +3 -3
  17. package/agent-docs/rules/LOADING-consumer.md +1 -1
  18. package/dist/{AlertDialogTrigger.vue_vue_type_script_setup_true_lang-DosgAcSM.js → AlertDialogTrigger.vue_vue_type_script_setup_true_lang-Ccs_lGKx.js} +1 -1
  19. package/dist/alert-dialog.js +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/style.css +1 -1
  22. package/package.json +1 -1
@@ -7,4 +7,4 @@ Rules for this install live under `agent-docs/` in `@equal-experts/kuat-core`, `
7
7
  3. Load component guides via `agent-docs/components/components.manifest.json`.
8
8
  4. Skills: `kuat-review`, `kuat-create` from [kuat-agent-docs](https://github.com/equalexperts/kuat-agent-docs).
9
9
 
10
- **Version:** 0.15.1 · **Rules snapshot:** bdf7dafd019a
10
+ **Version:** 0.15.2 · **Rules snapshot:** 2048d9c4b195
@@ -14,4 +14,4 @@ Curated agent docs bundled with `@equal-experts/kuat-core`, `@equal-experts/kuat
14
14
  node scripts/agent-docs/bundle-for-core.mjs
15
15
  ```
16
16
 
17
- Built against upstream ref: `bdf7dafd019a`
17
+ Built against upstream ref: `2048d9c4b195`
@@ -68,43 +68,56 @@ Use brand-appropriate colors:
68
68
 
69
69
  ## Border Radius
70
70
 
71
- The design system uses a **minimal radius approach**:
72
-
73
- ### Default: 0px (No Radius)
74
-
75
- Most elements have **no border radius** by default for a clean, modern, geometric aesthetic.
76
-
77
- **Elements with no radius:**
78
- - Static containers
79
- - Sections
80
- - Dividers
81
- - Content blocks
82
-
83
- ### Interactive Elements: 6px
84
-
85
- **Interactive elements** use **6px border radius**:
86
-
87
- - Buttons
88
- - Clickable cards
89
- - Interactive tiles
90
- - Tabs
91
-
92
- ### Form Inputs: 4px
93
-
94
- **Form input elements** use **4px border radius**:
95
-
96
- - Text inputs
97
- - Textareas
98
- - Select dropdowns
99
- - Search inputs
71
+ The design system uses a **minimal radius approach**, expressed as tokens rather than raw pixel
72
+ values. Tokens live in `@equal-experts/kuat-core` (`variables.css`) as `--radius-none`,
73
+ `--radius-xs`, `--radius-sm`, `--radius-md`, `--radius-lg`, `--radius-xl`, all derived from a
74
+ single base `--radius` (currently `0.5rem`). **Never hard-code a radius pixel value** — reference
75
+ the token, or the matching Tailwind utility (`rounded-none`, `rounded-xs`, `rounded-sm`,
76
+ `rounded-md`, `rounded-lg`, `rounded-xl`, `rounded-full`).
77
+
78
+ ### Scale
79
+
80
+ | Token | Utility | Value | Use for |
81
+ |-------|---------|-------|---------|
82
+ | `--radius-none` | `rounded-none` | 0px | **Default.** Static containers, sections, dividers, content blocks, and floating overlays — dialogs, dropdown/select menus, popovers, toasts. Overlays float above the page but are not themselves interactive, so they take the same flat corner as static content. |
83
+ | `--radius-xs` | `rounded-xs` | 2px | Rare, fine-detail use only — not a general-purpose size |
84
+ | `--radius-sm` | `rounded-sm` | 4px | **Form inputs** — text inputs, textareas, selects, checkboxes, toggles — and card-style option-field wrappers (radio/checkbox/switch "card" appearance) |
85
+ | `--radius-md` | `rounded-md` | 6px | **Interactive elements** buttons, clickable cards, interactive tiles, tabs, menu items (including items inside an overlay, e.g. a dropdown row — the item is interactive even though its container isn't) |
86
+ | `--radius-lg` | `rounded-lg` | 8px | Reserved — not currently assigned to any component. Available for a future "larger container" category if one is introduced; don't reach for it by default. |
87
+ | `--radius-xl` | `rounded-xl` | 12px | Larger surfaces — bigger modals, feature cards |
88
+ | n/a | `rounded-full` | pill / circle | **Rounded elements** — avatars, pill-shaped tags/badges, status dots, spinners |
89
+
90
+ ### Category rules
91
+
92
+ - **Static content and floating overlays → `--radius-none`.** Cards, sections, dividers, dialogs,
93
+ dropdown/select menus, popovers, and toasts are all flat. A floating overlay is still "static" in
94
+ this sense it isn't itself the interactive control, it's the surface a control sits on.
95
+ - **Interactive elements → `--radius-md` (6px).** Buttons, clickable cards, tabs, menu items —
96
+ including menu items inside an otherwise-flat overlay.
97
+ - **Form inputs → `--radius-sm` (4px).** Text inputs, textareas, selects, checkboxes, toggles, and
98
+ the card-style appearance of radio/checkbox/switch field wrappers.
99
+ - **Pills / circular elements → `rounded-full`.** Use `rounded-full` (`calc(infinity * 1px)`)
100
+ rather than approximating a pill with a large fixed radius, so it always resolves to a true
101
+ circle/stadium shape regardless of element size. Use for avatars, the rounded variant of
102
+ tags/badges, and status/counter dots.
103
+
104
+ ### Known trap: keep the scale monotonic
105
+
106
+ `--radius-sm/md/lg/xl` are `calc()`'d off the single `--radius` base. If that base is ever changed,
107
+ confirm the derived values still ascend (xs < sm < md < lg < xl) before shipping. A base below
108
+ roughly 6px breaks this — for example `--radius: 0.3rem` previously made `--radius-sm` compute to
109
+ under 1px, smaller than `--radius-xs`, which silently produced near-square corners on several
110
+ components (checkboxes, textareas, menus) despite their code claiming a 4px radius. If you hit this,
111
+ fix the base token — don't route around it with a hard-coded pixel value in a component.
100
112
 
101
113
  ### Summary
102
114
 
103
- | Element Type | Border Radius |
104
- |--------------|---------------|
105
- | Static content | 0px |
106
- | Interactive elements | 6px |
107
- | Form inputs | 4px |
115
+ | Element Type | Token | Border Radius |
116
+ |--------------|-------|---------------|
117
+ | Static content & floating overlays | `--radius-none` | 0px |
118
+ | Interactive elements | `--radius-md` | 6px |
119
+ | Form inputs & card-style option fields | `--radius-sm` | 4px |
120
+ | Rounded/pill elements | `rounded-full` | pill / circle |
108
121
 
109
122
  ---
110
123
 
@@ -130,7 +143,7 @@ Borders must meet WCAG 2.1 Level AA for graphical objects:
130
143
 
131
144
  1. **Use borders purposefully** - Only when spacing is insufficient
132
145
  2. **Follow width guidelines** - 1px default, 2px emphasized, 3-4px focus
133
- 3. **Apply radius correctly** - 0px static, 6px interactive, 4px inputs
146
+ 3. **Apply radius by category** - `--radius-none` static content & overlays, `--radius-md` interactive, `--radius-sm` inputs & card-style fields, `rounded-full` pills/avatars
134
147
  4. **Ensure accessibility** - 3:1 minimum contrast ratio
135
148
  5. **Be consistent** - Same border treatment for same element types
136
149
 
@@ -138,7 +151,7 @@ Borders must meet WCAG 2.1 Level AA for graphical objects:
138
151
 
139
152
  1. **Don't overuse borders** - Spacing should be the first option
140
153
  2. **Don't use non-solid borders** - No dashed or dotted
141
- 3. **Don't use arbitrary radius** - Only 0px, 4px, or 6px
154
+ 3. **Don't hard-code radius pixel values** - Use the `--radius-*` tokens/utilities, not literal `px` values, even to match an existing size
142
155
  4. **Don't break accessibility** - Always verify contrast
143
156
  5. **Don't use decorative borders** - Keep them functional
144
157
 
@@ -6,63 +6,126 @@ Guidelines for Equal Experts marketing emails and campaigns.
6
6
 
7
7
  ## Overview
8
8
 
9
- Marketing emails are external communications designed to engage, inform, and convert prospects and customers.
9
+ Marketing emails are external, opted-in communications designed to inform, engage, and convert prospects and customers — newsletters, announcements, invitations, and nurture content. Unlike product emails, the reader hasn't triggered this specific message, so it has to earn its place in the inbox on relevance and value alone.
10
10
 
11
11
  ---
12
12
 
13
13
  ## Key Principles
14
14
 
15
- 1. **Value-first** - Every email should provide value to the recipient
16
- 2. **Clear purpose** - One primary goal per email
17
- 3. **Scannable** - Easy to read on mobile devices
18
- 4. **Brand-consistent** - Use Equal Experts visual identity
15
+ 1. **Permission-based** send only to people who opted in, and honour unsubscribes immediately.
16
+ 2. **Value-first** the reader gets something (an insight, an offer, useful information) before being asked for anything.
17
+ 3. **One clear goal** a single primary CTA per email; competing asks dilute all of them.
18
+ 4. **Relevant and personal** segment and personalise. Research consistently shows irrelevant content is what makes recipients call an email "spam", regardless of consent status.
19
+ 5. **Scannable** — mobile-first, chunked content, clear visual hierarchy; most opens happen on a phone.
20
+ 6. **Brand-consistent** — recognisable as Equal Experts in look, tone, and voice.
19
21
 
20
22
  ---
21
23
 
22
24
  ## Email Types
23
25
 
24
- - **Newsletter** - Regular updates and insights
25
- - **Product announcements** - New features and releases
26
- - **Event invitations** - Webinars, conferences, meetups
27
- - **Nurture sequences** - Educational content series
28
- - **Transactional** - Confirmations, receipts (see product emails)
26
+ | Type | Description |
27
+ |------|-------------|
28
+ | Newsletter | Regular round-up of updates, insights, and content |
29
+ | Product announcement | New feature or release news |
30
+ | Event invitation | Webinars, conferences, meetups |
31
+ | Nurture sequence | Educational content delivered over a series |
32
+ | Promotional / campaign | Time-bound offer or call to act |
33
+
34
+ Transactional messages (confirmations, receipts) follow [product email rules](../web-product/emails.md) even when sent to an external customer.
29
35
 
30
36
  ---
31
37
 
32
- ## To Be Defined
38
+ ## Design Guidelines
39
+
40
+ ### Layout
41
+
42
+ - Single column, mobile-first, roughly 600–640px wide. Multi-column layouts now read as cluttered even on desktop — keep it simple.
43
+ - Lead with a strong headline or high-quality image, then a clear content hierarchy: headline → subheading → chunked body → CTA.
44
+ - One primary CTA per email. More choices measurably reduce the chance any one of them gets clicked. Long-form newsletters are the one common exception, where a few clearly secondary links are acceptable.
45
+
46
+ ### Colour and imagery
47
+
48
+ - Use the light, marketing-layout treatment (see [website](./website.md)) rather than the dark product navigation.
49
+ - Apply brand [colours](../../design-language/colours.md) by role; reserve the extended/data palette for genuine data content, never for decoration.
50
+ - Prefer full-width, high-quality imagery over small thumbnails or dense multi-image grids — large, clear images test better than cluttered ones.
51
+ - Compress images, keep total email weight reasonable, and always pair images with alt text (many clients block images by default).
52
+
53
+ ### Typography
54
+
55
+ - Brand typeface with a web-safe fallback stack. Use size and weight to establish hierarchy — see [typography](../../design-language/typography.md) and [formatting](../../content/formatting.md).
33
56
 
34
- - Email template designs
35
- - Header and footer specifications
36
- - Logo placement and sizing
37
- - Color usage in emails
38
- - Typography for email clients
39
- - CTA button styling
40
- - Mobile-first design requirements
41
- - Accessibility requirements (alt text, etc.)
42
- - Subject line guidelines
43
- - Preview text best practices
57
+ ### CTA buttons
58
+
59
+ - Filled, high-contrast, live-text ("bulletproof") buttons, sentence case, verb-led.
60
+
61
+ ### Footer (legal/compliance minimum)
62
+
63
+ - Recognisable sender identity and registered/physical address.
64
+ - A visible, one-click unsubscribe or preference centre — never hidden, buried, or made deliberately effortful. Making it hard to leave erodes trust faster than losing the subscriber does.
65
+ - A link to the relevant privacy/preferences information.
44
66
 
45
67
  ---
46
68
 
47
69
  ## Content Guidelines
48
70
 
49
- Follow [content](../../content/) for writing style.
71
+ Follow [writing style](../../content/writing-style.md) and [formatting](../../content/formatting.md) for tone and conventions.
72
+
73
+ ### Subject line
74
+
75
+ - Be specific and honest about what's inside. Curiosity-gap or "mystery" framing reads as spam and erodes trust even when it lifts opens.
76
+ - Keep it concise for the mobile preview pane; avoid spam-trigger patterns (excess capitals, exclamation marks, misleading claims).
77
+
78
+ ### Preheader
79
+
80
+ - Extend the subject with a concrete reason to open — don't waste it on "view in browser" boilerplate.
81
+
82
+ ### Body
83
+
84
+ - Open with the value to the reader, not company news for its own sake.
85
+ - Personalise with what you actually know about the recipient's interests or activity; a generic blast to everyone is the most common reason recipients call an email irrelevant or spammy.
86
+ - Write in short, scannable chunks. One primary message per email.
87
+ - Give the reader an easy way out. Most people who stop wanting an email won't bother to unsubscribe — they'll just tune out or mark it as spam, which is worse for deliverability than a clean unsubscribe.
88
+
89
+ ---
90
+
91
+ ## Common Scenarios
92
+
93
+ | Scenario | Must include | Tone |
94
+ |----------|---------------|------|
95
+ | **Newsletter / digest** | A handful of curated, genuinely relevant items; one lead story | Informative, personality allowed, not salesy |
96
+ | **Product announcement** | What's new, why it matters to this reader, one CTA to try/learn more | Confident, benefit-led, brief |
97
+ | **Event invitation** | What, when, where/format, who it's for, one registration CTA | Clear and direct, low-friction to say yes |
98
+ | **Nurture sequence** | One educational idea per email, building toward a later ask | Helpful first, low-pressure |
99
+ | **Promotional / campaign** | The offer, the deadline if any, one CTA | Confident but not hyped; avoid false urgency |
100
+
101
+ ---
102
+
103
+ ## Deliverability and List Health
104
+
105
+ Kept technology-agnostic here; implementation specifics (sending platform, list architecture) live outside this reference.
106
+
107
+ - Send only to recipients who've opted in; process unsubscribes immediately.
108
+ - Keep the sending identity consistent so recipients recognise it at a glance.
109
+ - Periodically remove inactive or invalid addresses — sender reputation depends on engagement, not list size.
110
+ - Avoid spam-trigger patterns in subject and body copy (excess capitals, exclamation marks, misleading claims).
111
+
112
+ ---
50
113
 
51
- ### Subject Lines
52
- - Keep under 50 characters for mobile
53
- - Be specific about content
54
- - Avoid spam triggers
114
+ ## Accessibility Checklist
55
115
 
56
- ### Body Content
57
- - Lead with the most important information
58
- - Use short paragraphs
59
- - Include clear CTA
60
- - Provide value before asking
116
+ - Alt text on every image; decorative images marked as such.
117
+ - Colour contrast meets [accessibility](../../accessibility/accessibility.md#colour-contrast) minimums.
118
+ - Key messages and CTAs exist as live text, not baked into images.
119
+ - A plain-text version accompanies the HTML email.
120
+ - No auto-playing video/audio; limit animated GIFs and provide a static fallback where possible.
61
121
 
62
122
  ---
63
123
 
64
124
  ## Related Documentation
65
125
 
66
- - [Reference home](../../README.md) - Brand and design language
67
- - [Marketing Website](./website.md) - Website guidelines
68
- - [Content](../../content/) - Writing style
126
+ - [Reference home](../../README.md) brand and design language
127
+ - [Marketing website](./website.md) layout and visual patterns
128
+ - [Writing style](../../content/writing-style.md) · [Formatting](../../content/formatting.md)
129
+ - [Accessibility](../../accessibility/accessibility.md)
130
+ - [Colours](../../design-language/colours.md) · [Typography](../../design-language/typography.md)
131
+ - [Product emails](../web-product/emails.md) — transactional messages, including ones sent to external customers
@@ -31,6 +31,8 @@ Use when: Limited navigation items (5-7 items)
31
31
 
32
32
  ```
33
33
  ┌─────────────────────────────────────────┐
34
+ │ System Banner (full width, conditional) │
35
+ ├─────────────────────────────────────────┤
34
36
  │ Dark Navigation Bar (Tech Blue) │
35
37
  │ [Logo] [Nav Items] [User Menu] │
36
38
  ├─────────────────────────────────────────┤
@@ -57,7 +59,9 @@ Use when: Limited navigation items (5-7 items)
57
59
  Use when: Complex navigation, hierarchical structure, 8+ items
58
60
 
59
61
  ```
60
- ┌──────┬──────────────────────────────────┐
62
+ ┌─────────────────────────────────────────┐
63
+ │ System Banner (full width, conditional) │
64
+ ├──────┬──────────────────────────────────┤
61
65
  │ │ Top Bar (Light) │
62
66
  │ Dark │ [Breadcrumbs] [User Menu] │
63
67
  │ Side │──────────────────────────────────┤
@@ -80,6 +84,164 @@ Use when: Complex navigation, hierarchical structure, 8+ items
80
84
  | Top bar background | `bg-background` (light) |
81
85
  | Content area | Light background, full remaining width |
82
86
 
87
+ #### Region Breakdown
88
+
89
+ Dark Sidebar Navigation is the default template for internal business tools: three persistent
90
+ regions — sidebar, top bar, main content — host different content per screen without changing
91
+ the shell. A fourth, conditional zone sits above all three when a site-wide status message is
92
+ active.
93
+
94
+ | Region | Purpose | Composition (top to bottom / left to right) |
95
+ |--------|---------|-----------------------------------------------|
96
+ | System banner | App-wide status (outage, deprecation, access change) | Full width, above the entire shell — spans both sidebar and top bar, not just the content area. Does not overlay or displace the top bar; only present when a site-wide message is active |
97
+ | Sidebar | Wayfinding and workspace context | Workspace/brand switcher → primary navigation → secondary/utility links → account footer |
98
+ | Top bar | Page context and utility actions | Collapse toggle + breadcrumb or page title (left) → site-wide utilities such as search, notifications, theme toggle, external link (right) |
99
+ | Main content | Task surface | Primary content block(s) — a single block, or bento-style blocks for a dashboard-type layout |
100
+
101
+ Section/page-level feedback (error summary, inline confirmation banner) is not part of this
102
+ system-banner zone — it uses `Callout` as-is at the top of the main content area. See the Main
103
+ content composition table below.
104
+
105
+ **Sidebar composition:**
106
+
107
+ | Element | Notes |
108
+ |---------|-------|
109
+ | Workspace/brand switcher | Icon + name, optional subtitle (plan, member count), expand chevron |
110
+ | Primary navigation | Icon + label per item; items with children expand in place (chevron rotates, sub-items indent) |
111
+ | Section labels | Muted, small-caps-style text grouping related nav items (e.g. "Platform", "Projects") |
112
+ | Secondary navigation | Utility links (Help Center, Settings) below primary nav, visually separated |
113
+ | Account footer | Avatar + name + email/identifier, pinned to the sidebar's bottom edge |
114
+
115
+ **Top bar composition:**
116
+
117
+ | Element | Notes |
118
+ |---------|-------|
119
+ | Collapse toggle | Icon button, always leftmost |
120
+ | Wayfinding | Breadcrumb trail, or a single page title |
121
+ | Search | Optional; may show a keyboard-shortcut hint |
122
+ | Notifications / messages | Icon buttons with an unread badge or dot |
123
+ | Theme toggle | Optional icon button |
124
+ | External link | Optional labelled button (e.g. link to a repo or docs) |
125
+
126
+ **Main content composition:**
127
+
128
+ | Row | Purpose | Notes |
129
+ |-----|---------|-------|
130
+ | Feedback | Page/section-level feedback tied to a submitted action | Top-of-content-area callout or error summary; appears above the page header row when present |
131
+ | Page header | Title + primary actions | Omit if the top bar already carries the page title |
132
+ | Metric/summary row | At-a-glance KPIs | Card grid, 3-4 columns desktop — see [dashboard pattern](./patterns/dashboard.md) |
133
+ | Visualization row | Trends over time | One or two chart cards side by side |
134
+ | Primary work surface | The task itself | Table/list ([browse and filter](./patterns/browse-and-filter.md)), cards ([section hub](./patterns/section-hub.md)), identity + tabs ([detail page](./patterns/detail-page.md)), kanban board, or form — see the relevant [pattern](./patterns/) |
135
+
136
+ Not every row applies to every screen — a settings page may use only "Page header" plus a form,
137
+ while a metrics dashboard uses all rows below "Feedback." "Feedback" itself only appears when
138
+ there's a submitted action to report on.
139
+
140
+ ---
141
+
142
+ ## Content-Only Layouts
143
+
144
+ Some screens carry no persistent app navigation — the page itself is the task. Two shapes cover
145
+ this in web-product.
146
+
147
+ ### Option 3: Single Column
148
+
149
+ Use when: no persistent app navigation is needed — self-contained flows (auth, forms, wizards) or
150
+ structured documents (reports, briefs).
151
+
152
+ #### Narrow / Centred (Auth, Forms, Wizards)
153
+
154
+ ```
155
+ ┌─────────────────────────────────────────┐
156
+ │ [Logo] (centered) │
157
+ ├─────────────────────────────────────────┤
158
+ │ │
159
+ │ ┌─────────────────────────┐ │
160
+ │ │ Auth/Form Card │ │
161
+ │ │ (max 400-480px) │ │
162
+ │ │ [Form fields] │ │
163
+ │ │ [Primary action] │ │
164
+ │ └─────────────────────────┘ │
165
+ │ │
166
+ ├─────────────────────────────────────────┤
167
+ │ Footer (minimal: legal links) │
168
+ └─────────────────────────────────────────┘
169
+ ```
170
+
171
+ See [sign-in pattern](./patterns/sign-in.md) and [form pattern](./patterns/complete-a-form.md).
172
+
173
+ A confirmation page (the end state of a completed form, application, or transaction) uses this
174
+ same narrow/centred variant rather than a distinct layout shape — it's a simple end-state of a
175
+ form flow, not a different page type. See [give feedback on an action
176
+ pattern](./patterns/give-feedback-on-an-action.md).
177
+
178
+ #### Full-Width / Long-Form (Reports, Briefs, Structured Documents)
179
+
180
+ ```
181
+ ┌───────────────────────────────────────────┐
182
+ │ [Logo] Breadcrumb Status │
183
+ ├───────────────────────────────────────────┤
184
+ │ EYEBROW LABEL │
185
+ │ # Document Title │
186
+ │ Dek / summary paragraph │
187
+ │ Owner · Sponsor · Date · Status │
188
+ ├───────────────────────────────────────────┤
189
+ │ ┌─────────────────────────────────────┐ │
190
+ │ │ Callout: at-a-glance summary │ │
191
+ │ └─────────────────────────────────────┘ │
192
+ ├───────────────────────────────────────────┤
193
+ │ 01 Section heading │
194
+ │ Cards / lists / tables │
195
+ ├───────────────────────────────────────────┤
196
+ │ 02 Section heading │
197
+ │ ... │
198
+ ├───────────────────────────────────────────┤
199
+ │ Footer: document title · page N/M │
200
+ └───────────────────────────────────────────┘
201
+ ```
202
+
203
+ **Specifications:**
204
+
205
+ | Property | Narrow (auth/forms) | Full-width (reports/briefs) |
206
+ |----------|----------------------|-------------------------------|
207
+ | Max content width | 400-480px | 720-960px (readable column) |
208
+ | Top bar | Logo only, minimal | Slim brand bar + breadcrumb + status |
209
+ | Body | Single card | Numbered sections (01, 02…), each self-contained |
210
+ | Section content | Form fields | Callouts, card grids, comparison lists, status/severity tables, timeline/Gantt tables |
211
+ | Footer | Minimal (legal links) | Document metadata (title, page N/M) |
212
+
213
+ ##### Document Header (Full-Width Variant)
214
+
215
+ | Element | Notes |
216
+ |---------|-------|
217
+ | Eyebrow label | Muted, classifies the document (e.g. "Internal brief — steering group") |
218
+ | Title (H1) | One per page |
219
+ | Dek | One- to two-line summary paragraph |
220
+ | Metadata strip | Label/value pairs (Owner, Sponsor, Date, Status) in a horizontal row |
221
+
222
+ ##### Section Anatomy (Full-Width Variant)
223
+
224
+ | Element | Notes |
225
+ |---------|-------|
226
+ | Section number | "01", "02"… prefix, muted, left of heading |
227
+ | Section heading | `text-lg` / `text-xl font-semibold` |
228
+ | Section body | Free composition — card grid, two-column comparison, matrix table with legend, or a timeline/Gantt table |
229
+ | Status/severity tags | Colour-coded chips (e.g. severity High/Medium/Low; status Resolved/Deferred/New) — pair colour with text, never colour alone |
230
+
231
+ ### Split Layout (Add-on, Not Standalone)
232
+
233
+ Split Layout adds a third region — a right-hand rail — to [Sidebar Navigation](#option-2-dark-sidebar-navigation).
234
+ It's an addition, not an alternative: pair it with Option 2 rather than using it alone.
235
+
236
+ | Property | Value |
237
+ |----------|-------|
238
+ | Right rail width | 200-240px |
239
+ | Visibility | Hidden below 1280px |
240
+ | Content | Contextual to main content (table of contents, inspector, metadata) |
241
+ | Scroll | Independent from main content |
242
+
243
+ See [documentation pattern](./patterns/documentation.md) for the canonical use.
244
+
83
245
  ---
84
246
 
85
247
  ## Navigation Color Tokens
@@ -130,6 +292,14 @@ See [logo guidelines](../../brand/logo.md).
130
292
  | Tablet | Collapsible (default collapsed) |
131
293
  | Desktop | Full sidebar visible (240-280px) |
132
294
 
295
+ ### Single Column
296
+
297
+ | Breakpoint | Behavior |
298
+ |------------|----------|
299
+ | Mobile | Full width, reduced side padding |
300
+ | Tablet | Narrow variant stays card-width; full-width variant keeps its readable column |
301
+ | Desktop | Narrow variant centred; full-width variant keeps max content width with side margins |
302
+
133
303
  ---
134
304
 
135
305
  ## Content Areas
@@ -154,7 +324,7 @@ See [logo guidelines](../../brand/logo.md).
154
324
 
155
325
  1. **Use dark navigation** - Distinguishes product from marketing
156
326
  2. **Use white/monochrome logo** - Appropriate for dark backgrounds
157
- 3. **Choose appropriate nav pattern** - Horizontal for simple, sidebar for complex
327
+ 3. **Choose the layout that matches the task** - Horizontal nav for simple apps, sidebar for complex ones, single column when no persistent navigation is needed
158
328
  4. **Maintain light content areas** - Good contrast for readability
159
329
  5. **Follow spacing guidelines** - 8-point grid, consistent padding
160
330
 
@@ -162,7 +332,7 @@ See [logo guidelines](../../brand/logo.md).
162
332
 
163
333
  1. **Don't use light navigation** - That's for marketing layouts
164
334
  2. **Don't use full-color logo on dark** - Use white monochrome
165
- 3. **Don't combine nav patterns** - Choose horizontal OR sidebar, not both
335
+ 3. **Don't combine nav patterns** - Choose horizontal OR sidebar, not both (Split Layout is the one sanctioned addition, and only with Sidebar Navigation)
166
336
  4. **Don't ignore mobile** - All layouts must work on small screens
167
337
  5. **Don't hardcode colors** - Use design tokens
168
338
 
@@ -175,3 +345,4 @@ See [logo guidelines](../../brand/logo.md).
175
345
  - [Component Decision Tree](./component-decision-tree.md) - Component selection
176
346
  - [Product Content](./content/product-content.md) - UX writing guidelines
177
347
  - [Patterns](./patterns/) - Applied patterns for specific page types
348
+ - [Figma Build Checklist](./figma-build-checklist.md) - Verification steps for Figma builds, including the EE/Kuat vs. other-client context gate