@equal-experts/kuat-react 0.13.0 → 0.14.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-docs/AGENTS.md +10 -0
- package/agent-docs/README.md +17 -0
- package/agent-docs/bundle-manifest.json +55 -0
- package/agent-docs/components/_template.md +21 -0
- package/agent-docs/components/button-group.md +27 -0
- package/agent-docs/components/button.md +50 -0
- package/agent-docs/components/components.manifest.json +23 -0
- package/agent-docs/components/kuat-header.md +27 -0
- package/agent-docs/external/kuat-agent-rules/reference/accessibility/README.md +7 -0
- package/agent-docs/external/kuat-agent-rules/reference/accessibility/accessibility.md +446 -0
- package/agent-docs/external/kuat-agent-rules/reference/brand/README.md +9 -0
- package/agent-docs/external/kuat-agent-rules/reference/brand/brand.md +109 -0
- package/agent-docs/external/kuat-agent-rules/reference/brand/logo.md +152 -0
- package/agent-docs/external/kuat-agent-rules/reference/brand/voice-and-tone.md +166 -0
- package/agent-docs/external/kuat-agent-rules/reference/content/README.md +12 -0
- package/agent-docs/external/kuat-agent-rules/reference/content/formatting.md +120 -0
- package/agent-docs/external/kuat-agent-rules/reference/content/numbers.md +87 -0
- package/agent-docs/external/kuat-agent-rules/reference/content/punctuation.md +94 -0
- package/agent-docs/external/kuat-agent-rules/reference/content/writing-style.md +96 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/README.md +11 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/borders.md +160 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/colours.md +201 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/design-language.md +117 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/spacing.md +131 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/tokens/README.md +29 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/tokens/colors.tokens.json +84 -0
- package/agent-docs/external/kuat-agent-rules/reference/design-language/typography.md +156 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/README.md +10 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/content/README.md +26 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/content/blog-posts.md +29 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/content/marketing-content.md +61 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/content/seo.md +40 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/emails.md +68 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/patterns/README.md +7 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/patterns/marketing-pages.md +368 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-marketing/website.md +154 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/README.md +16 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/accessibility.md +392 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/component-decision-tree.md +248 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/component-registry.md +49 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/README.md +29 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/actions.md +45 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/confirmations.md +51 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/empty-states.md +37 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/errors.md +48 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/forms.md +68 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/content/product-content.md +128 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/design.md +177 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/emails.md +65 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/README.md +10 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/authentication.md +303 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/dashboards.md +313 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/documentation.md +333 -0
- package/agent-docs/external/kuat-agent-rules/reference/media-types/web-product/patterns/forms.md +361 -0
- package/agent-docs/kuat-docs/rules/README.md +155 -0
- package/agent-docs/kuat-docs/rules/design/layouts.md +394 -0
- package/agent-docs/kuat-docs/rules/scenarios/README.md +83 -0
- package/agent-docs/kuat-docs/rules/scenarios/authentication.md +301 -0
- package/agent-docs/kuat-docs/rules/scenarios/dashboards.md +314 -0
- package/agent-docs/kuat-docs/rules/scenarios/documentation.md +333 -0
- package/agent-docs/kuat-docs/rules/scenarios/forms.md +359 -0
- package/agent-docs/kuat-docs/rules/scenarios/marketing-pages.md +367 -0
- package/agent-docs/manifest.json +9 -0
- package/agent-docs/rules/LOADING-consumer.md +27 -0
- package/dist/accordion.d.ts +2 -0
- package/dist/alert-dialog.d.ts +2 -0
- package/dist/badge.d.ts +3 -0
- package/dist/button-group.d.ts +2 -0
- package/dist/button.d.ts +3 -0
- package/dist/carousel.d.ts +2 -0
- package/dist/checkbox.d.ts +3 -0
- package/dist/components/ui/accordion/accordion.d.ts +7 -0
- package/dist/components/ui/accordion/index.d.ts +1 -0
- package/dist/components/ui/alert-dialog/alert-dialog.d.ts +20 -0
- package/dist/components/ui/alert-dialog/index.d.ts +1 -0
- package/dist/components/ui/badge/badge.d.ts +16 -0
- package/dist/components/ui/badge/index.d.ts +2 -0
- package/dist/components/ui/breadcrumb/Breadcrumb.d.ts +29 -0
- package/dist/components/ui/breadcrumb/breadcrumb-primitives.d.ts +19 -0
- package/dist/components/ui/breadcrumb/index.d.ts +4 -0
- package/dist/components/ui/button/button.d.ts +27 -0
- package/dist/components/ui/button/index.d.ts +2 -0
- package/dist/components/ui/button-group/button-group.d.ts +23 -0
- package/dist/components/ui/button-group/index.d.ts +2 -0
- package/dist/components/ui/carousel/carousel.d.ts +50 -0
- package/dist/components/ui/carousel/index.d.ts +2 -0
- package/dist/components/ui/checkbox/checkbox-field.d.ts +23 -0
- package/dist/components/ui/checkbox/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox/index.d.ts +4 -0
- package/dist/components/ui/content-card/content-card.d.ts +29 -0
- package/dist/components/ui/content-card/index.d.ts +2 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +1 -0
- package/dist/components/ui/ee-logo-icon/ee-logo-icon.d.ts +11 -0
- package/dist/components/ui/ee-logo-icon/index.d.ts +2 -0
- package/dist/components/ui/field/field.d.ts +28 -0
- package/dist/components/ui/field/index.d.ts +2 -0
- package/dist/components/ui/icon-button/icon-button.d.ts +27 -0
- package/dist/components/ui/icon-button/index.d.ts +2 -0
- package/dist/components/ui/input/index.d.ts +2 -0
- package/dist/components/ui/input/input.d.ts +20 -0
- package/dist/components/ui/kuat-carousel/index.d.ts +2 -0
- package/dist/components/ui/kuat-carousel/kuat-carousel.d.ts +16 -0
- package/dist/components/ui/kuat-header/index.d.ts +4 -0
- package/dist/components/ui/kuat-header/kuat-header.d.ts +16 -0
- package/dist/components/ui/kuat-header/kuat-header.logic.d.ts +32 -0
- package/dist/components/ui/kuat-header/kuat-header.types.d.ts +91 -0
- package/dist/components/ui/kuat-logo-lockup/index.d.ts +2 -0
- package/dist/components/ui/kuat-logo-lockup/kuat-logo-lockup.d.ts +17 -0
- package/dist/components/ui/kuat-radial-progress/index.d.ts +2 -0
- package/dist/components/ui/kuat-radial-progress/kuat-radial-progress.d.ts +16 -0
- package/dist/components/ui/radio/index.d.ts +4 -0
- package/dist/components/ui/radio/radio-field.d.ts +25 -0
- package/dist/components/ui/radio/radio.d.ts +7 -0
- package/dist/components/ui/select/constants.d.ts +19 -0
- package/dist/components/ui/select/index.d.ts +3 -0
- package/dist/components/ui/select/select.d.ts +53 -0
- package/dist/components/ui/separator/index.d.ts +2 -0
- package/dist/components/ui/separator/separator.d.ts +9 -0
- package/dist/components/ui/sonner/index.d.ts +4 -0
- package/dist/components/ui/sonner/sonner-content.d.ts +15 -0
- package/dist/components/ui/sonner/sonner.d.ts +21 -0
- package/dist/components/ui/switch/index.d.ts +4 -0
- package/dist/components/ui/switch/switch-field.d.ts +23 -0
- package/dist/components/ui/switch/switch.d.ts +5 -0
- package/dist/components/ui/textarea/index.d.ts +2 -0
- package/dist/components/ui/textarea/textarea.d.ts +9 -0
- package/dist/components/ui/toggle/constants.d.ts +4 -0
- package/dist/components/ui/toggle/index.d.ts +6 -0
- package/dist/components/ui/toggle/toggle-group.d.ts +11 -0
- package/dist/components/ui/toggle/toggle.d.ts +9 -0
- package/dist/field.d.ts +3 -0
- package/dist/icon-button.d.ts +3 -0
- package/dist/index.d.ts +47 -0
- package/dist/input.d.ts +3 -0
- package/dist/kuat-carousel.d.ts +2 -0
- package/dist/kuat-radial-progress.d.ts +7 -0
- package/dist/lib/react-node-compat.d.ts +7 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/radio.d.ts +3 -0
- package/dist/select.d.ts +3 -0
- package/dist/sonner.d.ts +1 -0
- package/dist/style.css +1 -1
- package/dist/style.css.d.ts +2 -0
- package/dist/switch.d.ts +1 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/textarea.d.ts +3 -0
- package/dist/toggle-group.d.ts +3 -0
- package/dist/toggle.d.ts +3 -0
- package/package.json +4 -2
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Kuat rules index
|
|
2
|
+
|
|
3
|
+
Single entry point for **Equal Experts** canonical rules (vendored copy) and **Kuat**-specific implementation notes. Generic brand doctrine is **not** duplicated here—link targets live under [`external/kuat-agent-rules`](../../external/kuat-agent-rules).
|
|
4
|
+
|
|
5
|
+
> Policy: [Rules source of truth](../setup/rules-source-of-truth.md). Upstream is now a passive reference library — start at [`reference/README.md`](../../external/kuat-agent-rules/reference/README.md).
|
|
6
|
+
|
|
7
|
+
**Path prefix (this repo):** `external/kuat-agent-rules/reference/`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Canonical EE rules (vendored)
|
|
12
|
+
|
|
13
|
+
Use these files in the synced tree. Paths below are relative to the repo root.
|
|
14
|
+
|
|
15
|
+
### Reference index & loading
|
|
16
|
+
|
|
17
|
+
| Resource | Path |
|
|
18
|
+
|----------|------|
|
|
19
|
+
| Reference index | [`external/kuat-agent-rules/reference/README.md`](../../external/kuat-agent-rules/reference/README.md) |
|
|
20
|
+
| Migration map (old→new paths) | [`external/kuat-agent-rules/reference/MIGRATION-MAP.md`](../../external/kuat-agent-rules/reference/MIGRATION-MAP.md) |
|
|
21
|
+
|
|
22
|
+
### Foundations — design language
|
|
23
|
+
|
|
24
|
+
| Topic | Path |
|
|
25
|
+
|-------|------|
|
|
26
|
+
| Design language | [`.../design-language/design-language.md`](../../external/kuat-agent-rules/reference/design-language/design-language.md) |
|
|
27
|
+
| Colours | [`.../design-language/colours.md`](../../external/kuat-agent-rules/reference/design-language/colours.md) |
|
|
28
|
+
| Typography | [`.../design-language/typography.md`](../../external/kuat-agent-rules/reference/design-language/typography.md) |
|
|
29
|
+
| Spacing | [`.../design-language/spacing.md`](../../external/kuat-agent-rules/reference/design-language/spacing.md) |
|
|
30
|
+
| Borders | [`.../design-language/borders.md`](../../external/kuat-agent-rules/reference/design-language/borders.md) |
|
|
31
|
+
|
|
32
|
+
### Foundations — brand
|
|
33
|
+
|
|
34
|
+
| Topic | Path |
|
|
35
|
+
|-------|------|
|
|
36
|
+
| Brand | [`.../brand/brand.md`](../../external/kuat-agent-rules/reference/brand/brand.md) |
|
|
37
|
+
| Logo | [`.../brand/logo.md`](../../external/kuat-agent-rules/reference/brand/logo.md) |
|
|
38
|
+
| Voice and tone | [`.../brand/voice-and-tone.md`](../../external/kuat-agent-rules/reference/brand/voice-and-tone.md) |
|
|
39
|
+
|
|
40
|
+
### Foundations — content
|
|
41
|
+
|
|
42
|
+
| Topic | Path |
|
|
43
|
+
|-------|------|
|
|
44
|
+
| Content index | [`.../content/README.md`](../../external/kuat-agent-rules/reference/content/README.md) |
|
|
45
|
+
| Writing style | [`.../content/writing-style.md`](../../external/kuat-agent-rules/reference/content/writing-style.md) |
|
|
46
|
+
| Formatting | [`.../content/formatting.md`](../../external/kuat-agent-rules/reference/content/formatting.md) |
|
|
47
|
+
| Punctuation | [`.../content/punctuation.md`](../../external/kuat-agent-rules/reference/content/punctuation.md) |
|
|
48
|
+
| Numbers | [`.../content/numbers.md`](../../external/kuat-agent-rules/reference/content/numbers.md) |
|
|
49
|
+
|
|
50
|
+
### Foundations — accessibility
|
|
51
|
+
|
|
52
|
+
| Topic | Path |
|
|
53
|
+
|-------|------|
|
|
54
|
+
| Accessibility | [`.../accessibility/accessibility.md`](../../external/kuat-agent-rules/reference/accessibility/accessibility.md) |
|
|
55
|
+
|
|
56
|
+
### Media types — web product
|
|
57
|
+
|
|
58
|
+
| Topic | Path |
|
|
59
|
+
|-------|------|
|
|
60
|
+
| Product design (layouts / navigation patterns) | [`.../media-types/web-product/design.md`](../../external/kuat-agent-rules/reference/media-types/web-product/design.md) |
|
|
61
|
+
| Product content | [`.../media-types/web-product/content/product-content.md`](../../external/kuat-agent-rules/reference/media-types/web-product/content/product-content.md) |
|
|
62
|
+
| Product content (directory) | [`.../media-types/web-product/content/`](../../external/kuat-agent-rules/reference/media-types/web-product/content/) |
|
|
63
|
+
|
|
64
|
+
### Media types — web marketing
|
|
65
|
+
|
|
66
|
+
| Topic | Path |
|
|
67
|
+
|-------|------|
|
|
68
|
+
| Marketing website | [`.../media-types/web-marketing/website.md`](../../external/kuat-agent-rules/reference/media-types/web-marketing/website.md) |
|
|
69
|
+
| Marketing content | [`.../media-types/web-marketing/content/marketing-content.md`](../../external/kuat-agent-rules/reference/media-types/web-marketing/content/marketing-content.md) |
|
|
70
|
+
| Marketing content (directory) | [`.../media-types/web-marketing/content/`](../../external/kuat-agent-rules/reference/media-types/web-marketing/content/) |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Kuat implementation (this monorepo)
|
|
75
|
+
|
|
76
|
+
High-level EE design language is in [`design-language.md`](../../external/kuat-agent-rules/reference/design-language/design-language.md). The sections below are **Kuat-only**: how tokens and packages map to code.
|
|
77
|
+
|
|
78
|
+
### What is Kuat?
|
|
79
|
+
|
|
80
|
+
Kuat is the design decision layer for Equal Experts web UIs: tokens (`@equal-experts/kuat-core`), components (`@equal-experts/kuat-react`, `@equal-experts/kuat-vue`), blocks, and documentation.
|
|
81
|
+
|
|
82
|
+
### Token architecture
|
|
83
|
+
|
|
84
|
+
**Layer 1 — Brand colours:** EE Blue, Transform Teal, Tech Blue, Equal Ember (see upstream colours doc).
|
|
85
|
+
|
|
86
|
+
**Layer 2 — Semantic tokens** (examples): `--primary`, `--secondary`, `--accent`, `--background`, `--foreground`, `--muted`, `--destructive`, `--border`, `--input`, `--ring`.
|
|
87
|
+
|
|
88
|
+
**Layer 3 — Component tokens** (examples): `--card`, `--card-foreground`, `--sidebar`, `--sidebar-foreground`, `--popover`, `--popover-foreground`.
|
|
89
|
+
|
|
90
|
+
### Theming
|
|
91
|
+
|
|
92
|
+
- **Light:** default semantic tokens.
|
|
93
|
+
- **Dark:** add `.dark` on the root; semantic tokens switch; follow upstream usage for brand colours.
|
|
94
|
+
|
|
95
|
+
### Package layout
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
@equal-experts/kuat-core/
|
|
99
|
+
├── src/variables.css
|
|
100
|
+
└── tailwind.config.ts
|
|
101
|
+
|
|
102
|
+
@equal-experts/kuat-react/ → src/components/
|
|
103
|
+
@equal-experts/kuat-vue/ → src/components/
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Integration docs
|
|
107
|
+
|
|
108
|
+
- [Integration guide](../setup/integration.md)
|
|
109
|
+
- [Kuat core integration](../setup/kuat-core-integration.md)
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Local rule documents (not mirrored above)
|
|
114
|
+
|
|
115
|
+
These files live only under `kuat-docs/rules/` and add Kuat or scenario-specific guidance:
|
|
116
|
+
|
|
117
|
+
| Area | Entry |
|
|
118
|
+
|------|--------|
|
|
119
|
+
| Layout primitives | [design/layouts.md](./design/layouts.md) |
|
|
120
|
+
| Components | [components/README.md](./components/README.md), [patterns.md](./components/patterns.md) |
|
|
121
|
+
| Accessibility | [accessibility/README.md](./accessibility/README.md) |
|
|
122
|
+
| Scenarios | [scenarios/README.md](./scenarios/README.md) |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Quick navigation
|
|
127
|
+
|
|
128
|
+
| Category | Notes |
|
|
129
|
+
|----------|--------|
|
|
130
|
+
| **EE canonical** | Tables above → `external/kuat-agent-rules` |
|
|
131
|
+
| **Kuat tokens & packages** | Section *Kuat implementation* |
|
|
132
|
+
| **[Design — layouts](./design/layouts.md)** | Kuat layout primitives + upstream scenario links |
|
|
133
|
+
| **[Accessibility](./accessibility/)** | WCAG-oriented local guides |
|
|
134
|
+
| **[Components](./components/)** | Naming, variants, patterns |
|
|
135
|
+
| **[Scenarios](./scenarios/)** | Applied flows (auth, dashboards, …) |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Implementation examples
|
|
140
|
+
|
|
141
|
+
Code samples are not in this file:
|
|
142
|
+
|
|
143
|
+
- [examples/react/](../examples/react/)
|
|
144
|
+
- [examples/vue/](../examples/vue/)
|
|
145
|
+
- [examples/css/](../examples/css/)
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## For AI agents
|
|
150
|
+
|
|
151
|
+
1. **Default:** Load **this file** (`kuat-docs/rules/README.md`), then open the specific upstream file(s) from the tables (same paths under `external/kuat-agent-rules/...`).
|
|
152
|
+
2. **Design tokens / brand colour decisions:** [`design-language/colours.md`](../../external/kuat-agent-rules/reference/design-language/colours.md) (and spacing/typography/borders as needed).
|
|
153
|
+
3. **Content voice / UX copy:** [`brand/voice-and-tone.md`](../../external/kuat-agent-rules/reference/brand/voice-and-tone.md) plus product or marketing content docs above.
|
|
154
|
+
4. **Layout structure in code:** [design/layouts.md](./design/layouts.md).
|
|
155
|
+
5. **Components:** [components/patterns.md](./components/patterns.md) + relevant `examples/{framework}/`.
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
# Layout Primitives
|
|
2
|
+
|
|
3
|
+
Reusable layout building blocks for the Kuat Design System. This document defines layout types, content regions, and structural guidelines - independent of framework.
|
|
4
|
+
|
|
5
|
+
For scenario-specific guidance (dashboards, authentication, marketing pages), see [Scenarios](../scenarios/).
|
|
6
|
+
|
|
7
|
+
**Upstream (brand layout patterns):** Product interfaces and dashboards follow [`media-types/web-product/design.md`](../../../external/kuat-agent-rules/reference/media-types/web-product/design.md). Marketing sites and campaigns follow [`media-types/web-marketing/website.md`](../../../external/kuat-agent-rules/reference/media-types/web-marketing/website.md). This file focuses on **Kuat layout primitives** used in code, not on replacing those reference guides.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Layouts are the structural foundation of every page. Kuat provides five layout primitives that can be combined and configured for different use cases.
|
|
14
|
+
|
|
15
|
+
**Key principle:** Choose the layout primitive that best supports your content and navigation needs, then configure it for your specific scenario.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Layout Types
|
|
20
|
+
|
|
21
|
+
### 1. Horizontal Navigation Layout
|
|
22
|
+
|
|
23
|
+
Header bar with navigation, full-width content below.
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─────────────────────────────────────────┐
|
|
27
|
+
│ Header Bar │
|
|
28
|
+
│ [Logo] [Nav Items] [Actions] │
|
|
29
|
+
├─────────────────────────────────────────┤
|
|
30
|
+
│ │
|
|
31
|
+
│ Main Content Area │
|
|
32
|
+
│ (Full width) │
|
|
33
|
+
│ │
|
|
34
|
+
├─────────────────────────────────────────┤
|
|
35
|
+
│ Footer (optional) │
|
|
36
|
+
└─────────────────────────────────────────┘
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Use when:**
|
|
40
|
+
- Limited navigation items (5-7 max)
|
|
41
|
+
- Content is the primary focus
|
|
42
|
+
- Simple information architecture
|
|
43
|
+
|
|
44
|
+
**Specifications:**
|
|
45
|
+
|
|
46
|
+
| Property | Value |
|
|
47
|
+
|----------|-------|
|
|
48
|
+
| Header height | 64-80px |
|
|
49
|
+
| Header padding | 16-24px horizontal, 16px vertical |
|
|
50
|
+
| Content max-width | 1200-1400px (or full width) |
|
|
51
|
+
| Content padding | 24-32px |
|
|
52
|
+
|
|
53
|
+
**Variants:**
|
|
54
|
+
- Light header (`bg-background`) - Marketing, public-facing
|
|
55
|
+
- Dark header (`bg-sidebar`) - Applications, dashboards
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### 2. Sidebar Navigation Layout
|
|
60
|
+
|
|
61
|
+
Fixed or collapsible sidebar with content area.
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
┌──────┬──────────────────────────────────┐
|
|
65
|
+
│ │ Top Bar (optional) │
|
|
66
|
+
│ Side │ [Breadcrumbs] [Actions] │
|
|
67
|
+
│ bar │──────────────────────────────────┤
|
|
68
|
+
│ │ │
|
|
69
|
+
│ [Logo│ Main Content Area │
|
|
70
|
+
│ Nav │ │
|
|
71
|
+
│ Items│ │
|
|
72
|
+
│ ]│ │
|
|
73
|
+
└──────┴──────────────────────────────────┘
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Use when:**
|
|
77
|
+
- Complex navigation (8+ items)
|
|
78
|
+
- Hierarchical structure
|
|
79
|
+
- Persistent navigation needed
|
|
80
|
+
- Application interfaces
|
|
81
|
+
|
|
82
|
+
**Specifications:**
|
|
83
|
+
|
|
84
|
+
| Property | Value |
|
|
85
|
+
|----------|-------|
|
|
86
|
+
| Sidebar width | 240-280px expanded |
|
|
87
|
+
| Sidebar collapsed | 64px (icons only) |
|
|
88
|
+
| Top bar height | 48-64px |
|
|
89
|
+
| Content padding | 24-32px |
|
|
90
|
+
|
|
91
|
+
**Variants:**
|
|
92
|
+
- Dark sidebar (`bg-sidebar`) - Standard for apps
|
|
93
|
+
- Light sidebar (`bg-muted`) - Documentation sites
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### 3. Single Column Layout
|
|
98
|
+
|
|
99
|
+
Centered content with no persistent navigation.
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
┌─────────────────────────────────────────┐
|
|
103
|
+
│ [Logo] (optional) │
|
|
104
|
+
├─────────────────────────────────────────┤
|
|
105
|
+
│ │
|
|
106
|
+
│ ┌─────────────────────────┐ │
|
|
107
|
+
│ │ │ │
|
|
108
|
+
│ │ Centered Content │ │
|
|
109
|
+
│ │ (max-width card) │ │
|
|
110
|
+
│ │ │ │
|
|
111
|
+
│ └─────────────────────────┘ │
|
|
112
|
+
│ │
|
|
113
|
+
├─────────────────────────────────────────┤
|
|
114
|
+
│ Footer (minimal/optional) │
|
|
115
|
+
└─────────────────────────────────────────┘
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Use when:**
|
|
119
|
+
- Focused single task (login, registration)
|
|
120
|
+
- Error pages (404, 500)
|
|
121
|
+
- Confirmation/success pages
|
|
122
|
+
- Minimal distraction needed
|
|
123
|
+
|
|
124
|
+
**Specifications:**
|
|
125
|
+
|
|
126
|
+
| Property | Value |
|
|
127
|
+
|----------|-------|
|
|
128
|
+
| Content max-width | 400-480px |
|
|
129
|
+
| Content padding | 24-32px |
|
|
130
|
+
| Vertical alignment | Centered (min-height: 100vh) |
|
|
131
|
+
| Background | `bg-background` or `bg-muted` |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### 4. Multi-Column Layout
|
|
136
|
+
|
|
137
|
+
Grid-based content regions for complex pages.
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
┌─────────────────────────────────────────┐
|
|
141
|
+
│ Header │
|
|
142
|
+
├─────────────────────────────────────────┤
|
|
143
|
+
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
144
|
+
│ │ Column │ │ Column │ │ Column │ │
|
|
145
|
+
│ │ 1 │ │ 2 │ │ 3 │ │
|
|
146
|
+
│ └─────────┘ └─────────┘ └─────────┘ │
|
|
147
|
+
│ │
|
|
148
|
+
│ ┌───────────────────┐ ┌───────────────┐│
|
|
149
|
+
│ │ Column 1 │ │ Column 2 ││
|
|
150
|
+
│ └───────────────────┘ └───────────────┘│
|
|
151
|
+
├─────────────────────────────────────────┤
|
|
152
|
+
│ Footer │
|
|
153
|
+
└─────────────────────────────────────────┘
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Use when:**
|
|
157
|
+
- Dashboard overviews
|
|
158
|
+
- Feature/comparison pages
|
|
159
|
+
- Card-based content displays
|
|
160
|
+
|
|
161
|
+
**Column Configurations:**
|
|
162
|
+
|
|
163
|
+
| Configuration | Use Case |
|
|
164
|
+
|---------------|----------|
|
|
165
|
+
| 2 columns (50/50) | Comparison, side-by-side |
|
|
166
|
+
| 2 columns (66/33) | Main content + sidebar info |
|
|
167
|
+
| 3 columns (equal) | Feature grids, card displays |
|
|
168
|
+
| 4 columns (equal) | KPI dashboards, metrics |
|
|
169
|
+
|
|
170
|
+
**Specifications:**
|
|
171
|
+
|
|
172
|
+
| Property | Value |
|
|
173
|
+
|----------|-------|
|
|
174
|
+
| Column gap | 16-24px |
|
|
175
|
+
| Row gap | 16-24px |
|
|
176
|
+
| Container max-width | 1200-1400px |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### 5. Split Layout
|
|
181
|
+
|
|
182
|
+
Two-panel layout for focused comparison or workflow.
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
┌────────────────────┬────────────────────┐
|
|
186
|
+
│ │ │
|
|
187
|
+
│ Left Panel │ Right Panel │
|
|
188
|
+
│ │ │
|
|
189
|
+
│ │ │
|
|
190
|
+
│ │ │
|
|
191
|
+
└────────────────────┴────────────────────┘
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Use when:**
|
|
195
|
+
- Side-by-side comparison
|
|
196
|
+
- Code editor + preview
|
|
197
|
+
- List + detail view
|
|
198
|
+
- Documentation with table of contents
|
|
199
|
+
|
|
200
|
+
**Split Ratios:**
|
|
201
|
+
|
|
202
|
+
| Ratio | Use Case |
|
|
203
|
+
|-------|----------|
|
|
204
|
+
| 50/50 | Equal comparison |
|
|
205
|
+
| 60/40 | Primary + secondary |
|
|
206
|
+
| 70/30 | Main content + table of contents |
|
|
207
|
+
| 33/67 | Navigation + main content |
|
|
208
|
+
|
|
209
|
+
**Specifications:**
|
|
210
|
+
|
|
211
|
+
| Property | Value |
|
|
212
|
+
|----------|-------|
|
|
213
|
+
| Divider | 1px border or resizable handle |
|
|
214
|
+
| Min panel width | 240px |
|
|
215
|
+
| Panel padding | 16-24px |
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Content Regions
|
|
220
|
+
|
|
221
|
+
### Header Region
|
|
222
|
+
|
|
223
|
+
| Property | Light Variant | Dark Variant |
|
|
224
|
+
|----------|---------------|--------------|
|
|
225
|
+
| Background | `bg-background` | `bg-sidebar` |
|
|
226
|
+
| Text | `text-foreground` | `text-sidebar-foreground` |
|
|
227
|
+
| Logo | Full-color | White monochrome |
|
|
228
|
+
| Height | 64-80px | 64-72px |
|
|
229
|
+
|
|
230
|
+
### Footer Region
|
|
231
|
+
|
|
232
|
+
| Property | Value |
|
|
233
|
+
|----------|-------|
|
|
234
|
+
| Background | `bg-muted` or `bg-background` |
|
|
235
|
+
| Padding | 32-48px vertical |
|
|
236
|
+
| Content | Logo, links, legal text |
|
|
237
|
+
|
|
238
|
+
### Main Content Region
|
|
239
|
+
|
|
240
|
+
| Property | Value |
|
|
241
|
+
|----------|-------|
|
|
242
|
+
| Background | `bg-background` |
|
|
243
|
+
| Padding | 24-32px |
|
|
244
|
+
| Max-width | Varies by layout (1200-1400px typical) |
|
|
245
|
+
|
|
246
|
+
### Sidebar Region
|
|
247
|
+
|
|
248
|
+
| Property | Value |
|
|
249
|
+
|----------|-------|
|
|
250
|
+
| Background | `bg-sidebar` (dark) or `bg-muted` (light) |
|
|
251
|
+
| Width | 240-280px expanded, 64px collapsed |
|
|
252
|
+
| Padding | 16px |
|
|
253
|
+
| Scroll | Independent scroll from main content |
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Navigation Color Tokens
|
|
258
|
+
|
|
259
|
+
For dark navigation (horizontal bar or sidebar):
|
|
260
|
+
|
|
261
|
+
| Token | Purpose |
|
|
262
|
+
|-------|---------|
|
|
263
|
+
| `--sidebar` | Navigation background (Tech Blue) |
|
|
264
|
+
| `--sidebar-foreground` | Text color (White) |
|
|
265
|
+
| `--sidebar-primary` | Primary accent (EE Blue) |
|
|
266
|
+
| `--sidebar-primary-foreground` | Text on primary |
|
|
267
|
+
| `--sidebar-accent` | Hover/active background |
|
|
268
|
+
| `--sidebar-accent-foreground` | Text on accent |
|
|
269
|
+
| `--sidebar-border` | Border color |
|
|
270
|
+
| `--sidebar-ring` | Focus ring color |
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Spacing Guidelines
|
|
275
|
+
|
|
276
|
+
Follow the 8-point grid system:
|
|
277
|
+
|
|
278
|
+
| Element | Spacing |
|
|
279
|
+
|---------|---------|
|
|
280
|
+
| Navigation height | 64-80px (multiples of 8) |
|
|
281
|
+
| Sidebar width | 240-280px (multiples of 8) |
|
|
282
|
+
| Padding | 16px, 24px, 32px (multiples of 8) |
|
|
283
|
+
| Content gap | 16px, 24px (multiples of 8) |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Layout Accessibility
|
|
288
|
+
|
|
289
|
+
**Reference:** [accessibility/technical.md](../accessibility/technical.md)
|
|
290
|
+
|
|
291
|
+
### Landmark Roles
|
|
292
|
+
|
|
293
|
+
Every layout must include proper landmarks:
|
|
294
|
+
|
|
295
|
+
| Region | HTML Element | Role |
|
|
296
|
+
|--------|--------------|------|
|
|
297
|
+
| Header | `<header>` | banner |
|
|
298
|
+
| Navigation | `<nav>` | navigation |
|
|
299
|
+
| Main content | `<main>` | main |
|
|
300
|
+
| Sidebar | `<aside>` | complementary |
|
|
301
|
+
| Footer | `<footer>` | contentinfo |
|
|
302
|
+
|
|
303
|
+
### Skip Links
|
|
304
|
+
|
|
305
|
+
For layouts with significant navigation, include a skip link:
|
|
306
|
+
|
|
307
|
+
```html
|
|
308
|
+
<a href="#main-content" class="sr-only focus:not-sr-only">
|
|
309
|
+
Skip to main content
|
|
310
|
+
</a>
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Focus Order
|
|
314
|
+
|
|
315
|
+
- Focus order must follow visual order
|
|
316
|
+
- Sidebar navigation focuses before main content
|
|
317
|
+
- Modal/drawer navigation traps focus when open
|
|
318
|
+
|
|
319
|
+
### Keyboard Navigation
|
|
320
|
+
|
|
321
|
+
- All navigation items reachable via Tab
|
|
322
|
+
- Arrow keys for navigating within menus
|
|
323
|
+
- Escape closes mobile/overlay navigation
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Responsive Behavior
|
|
328
|
+
|
|
329
|
+
### Breakpoints
|
|
330
|
+
|
|
331
|
+
| Breakpoint | Width | Typical Use |
|
|
332
|
+
|------------|-------|-------------|
|
|
333
|
+
| Mobile | < 640px | Single column, overlay nav |
|
|
334
|
+
| Tablet | 640-1024px | Collapsed sidebar, simplified nav |
|
|
335
|
+
| Desktop | > 1024px | Full layout with all features |
|
|
336
|
+
|
|
337
|
+
### Horizontal Navigation
|
|
338
|
+
|
|
339
|
+
| Breakpoint | Behavior |
|
|
340
|
+
|------------|----------|
|
|
341
|
+
| Mobile | Collapse to hamburger menu |
|
|
342
|
+
| Tablet | Show primary nav, hide secondary |
|
|
343
|
+
| Desktop | Full navigation visible |
|
|
344
|
+
|
|
345
|
+
### Sidebar Navigation
|
|
346
|
+
|
|
347
|
+
| Breakpoint | Behavior |
|
|
348
|
+
|------------|----------|
|
|
349
|
+
| Mobile | Overlay/drawer, hidden by default |
|
|
350
|
+
| Tablet | Collapsible (default collapsed) |
|
|
351
|
+
| Desktop | Full sidebar visible (240-280px) |
|
|
352
|
+
|
|
353
|
+
### Content Grids
|
|
354
|
+
|
|
355
|
+
| Breakpoint | Columns |
|
|
356
|
+
|------------|---------|
|
|
357
|
+
| Mobile | 1 column (stacked) |
|
|
358
|
+
| Tablet | 2 columns |
|
|
359
|
+
| Desktop | 3-4 columns |
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## Applied Patterns
|
|
364
|
+
|
|
365
|
+
For scenario-specific guidance on how to use these layout primitives:
|
|
366
|
+
|
|
367
|
+
| Scenario | Recommended Layout | Reference |
|
|
368
|
+
|----------|-------------------|-----------|
|
|
369
|
+
| Authentication | Single Column | [scenarios/authentication.md](../scenarios/authentication.md) |
|
|
370
|
+
| Dashboards | Sidebar Navigation | [scenarios/dashboards.md](../scenarios/dashboards.md) |
|
|
371
|
+
| Forms & Settings | Sidebar or Single Column | [scenarios/forms.md](../scenarios/forms.md) |
|
|
372
|
+
| Documentation | Sidebar + Split | [scenarios/documentation.md](../scenarios/documentation.md) |
|
|
373
|
+
| Marketing Pages | Horizontal Navigation | [scenarios/marketing-pages.md](../scenarios/marketing-pages.md) |
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Implementation Examples
|
|
378
|
+
|
|
379
|
+
For code examples implementing these layouts:
|
|
380
|
+
|
|
381
|
+
| Framework | Guide |
|
|
382
|
+
|-----------|-------|
|
|
383
|
+
| React | [examples/react/layouts.md](../../examples/react/layouts.md) |
|
|
384
|
+
| Vue | [examples/vue/layouts.md](../../examples/vue/layouts.md) |
|
|
385
|
+
| Other | [setup/kuat-core-integration.md](../../setup/kuat-core-integration.md) |
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## Related Documentation
|
|
390
|
+
|
|
391
|
+
- [Spacing](./spacing.md) - 8-point grid system
|
|
392
|
+
- [Colours](./colours.md) - Color tokens
|
|
393
|
+
- [Logo](./logo.md) - Logo usage and variants
|
|
394
|
+
- [Accessibility](../accessibility/technical.md) - Technical accessibility
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Scenario Patterns
|
|
2
|
+
|
|
3
|
+
Applied layout and design patterns for specific use cases.
|
|
4
|
+
|
|
5
|
+
Each scenario combines foundational EE rules (indexed in [`rules/README.md`](../README.md), files under `external/kuat-agent-rules`) with `rules/accessibility/` into actionable guidance for building complete page types.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## When to Use Scenarios
|
|
10
|
+
|
|
11
|
+
Load a scenario guide when:
|
|
12
|
+
|
|
13
|
+
- Building a specific page type (login, dashboard, pricing page)
|
|
14
|
+
- Need composition guidance beyond foundational design rules
|
|
15
|
+
- Want consistent patterns for common UI challenges
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Available Scenarios
|
|
20
|
+
|
|
21
|
+
| Scenario | Use For | Base Layout |
|
|
22
|
+
|----------|---------|-------------|
|
|
23
|
+
| [authentication.md](./authentication.md) | Login, registration, password flows, MFA | Single Column |
|
|
24
|
+
| [dashboards.md](./dashboards.md) | Analytics, data tables, metrics, reporting | Sidebar Navigation |
|
|
25
|
+
| [forms.md](./forms.md) | Settings, multi-step forms, data entry | Varies |
|
|
26
|
+
| [documentation.md](./documentation.md) | Docs sites, knowledge bases, API reference | Sidebar + Split |
|
|
27
|
+
| [marketing-pages.md](./marketing-pages.md) | Landing pages, pricing, features, case studies | Horizontal Navigation |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Scenario Structure
|
|
32
|
+
|
|
33
|
+
Each scenario file follows a consistent structure:
|
|
34
|
+
|
|
35
|
+
| Section | Purpose |
|
|
36
|
+
|---------|---------|
|
|
37
|
+
| **Principles** | Core UX principles, user goals, success metrics |
|
|
38
|
+
| **Layout** | Which base layout to use, page structure, regions |
|
|
39
|
+
| **Design** | Color tokens, typography, spacing, components |
|
|
40
|
+
| **Content** | Content hierarchy, microcopy, error messaging |
|
|
41
|
+
| **Accessibility** | Scenario-specific a11y requirements (references base docs) |
|
|
42
|
+
| **Implementation** | Component composition, state patterns, responsive behavior |
|
|
43
|
+
| **Best Practices** | Do's/Don'ts, common mistakes, edge cases |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## How Scenarios Reference Foundations
|
|
48
|
+
|
|
49
|
+
Scenarios build on foundational documentation:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
┌─────────────────────────────────────────┐
|
|
53
|
+
│ SCENARIOS │
|
|
54
|
+
│ (authentication, dashboards, etc.) │
|
|
55
|
+
├─────────────────────────────────────────┤
|
|
56
|
+
│ References: │
|
|
57
|
+
│ ├── rules/README.md (EE canonical) │
|
|
58
|
+
│ ├── external/kuat-agent-rules/... │
|
|
59
|
+
│ ├── rules/design/layouts.md │
|
|
60
|
+
│ ├── rules/accessibility/*.md │
|
|
61
|
+
│ └── rules/components/ (as needed) │
|
|
62
|
+
└─────────────────────────────────────────┘
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## For AI Agents
|
|
68
|
+
|
|
69
|
+
When building a specific page type:
|
|
70
|
+
|
|
71
|
+
1. Load the relevant scenario file
|
|
72
|
+
2. Follow the recommended base layout from `rules/design/layouts.md`
|
|
73
|
+
3. Reference accessibility requirements from `rules/accessibility/`
|
|
74
|
+
4. Use design tokens from the EE foundations linked in [`rules/README.md`](../README.md) (e.g. `design-language/colours.md`, `typography.md` under `external/kuat-agent-rules/reference`)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Related Documentation
|
|
79
|
+
|
|
80
|
+
- [Layout Primitives](../design/layouts.md) - Base layout building blocks
|
|
81
|
+
- [Accessibility](../accessibility/) - WCAG requirements
|
|
82
|
+
- [Rules index](../README.md) - EE canonical design/content paths and Kuat notes
|
|
83
|
+
- [Design — layouts](../design/layouts.md) - Layout primitives
|