@equal-experts/kuat-vue 0.13.0 → 0.13.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.
- package/agent-docs/AGENTS.md +10 -0
- package/agent-docs/README.md +17 -0
- package/agent-docs/bundle-manifest.json +63 -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 +20 -0
- package/agent-docs/components/kuat-header.md +27 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/LOADING.md +166 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/accessibility.md +444 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/brand.md +99 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/README.md +28 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/formatting.md +93 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/numbers.md +69 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/punctuation.md +75 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/voice-and-tone.md +263 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/writing-style.md +91 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/README.md +28 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/borders.md +159 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/colours.md +173 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/design-language.md +116 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/spacing.md +130 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/typography.md +155 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/logo.md +151 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/README.md +26 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/blog-posts.md +33 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/marketing-content.md +65 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/seo.md +44 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/emails.md +74 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/scenarios/README.md +18 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/scenarios/marketing-pages.md +368 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/website.md +169 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/DEPRECATIONS.md +28 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/README.md +65 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/accessibility.md +402 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/component-decision-tree.md +263 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/component-registry.md +68 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/README.md +29 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/actions.md +51 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/confirmations.md +57 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/empty-states.md +43 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/errors.md +54 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/forms.md +74 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/product-content.md +138 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/design.md +207 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/emails.md +71 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/review-checklist.md +57 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/review-context.md +44 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/README.md +82 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/authentication.md +303 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/dashboards.md +313 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/documentation.md +333 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/forms.md +361 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/technical.md +488 -0
- package/agent-docs/kuat-docs/rules/README.md +148 -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 +3 -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.vue.d.ts +26 -0
- package/dist/components/ui/accordion/AccordionContent.vue.d.ts +27 -0
- package/dist/components/ui/accordion/AccordionItem.vue.d.ts +27 -0
- package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +28 -0
- package/dist/components/ui/accordion/index.d.ts +4 -0
- package/dist/components/ui/alert-dialog/AlertDialog.vue.d.ts +26 -0
- package/dist/components/ui/alert-dialog/AlertDialogAction.vue.d.ts +27 -0
- package/dist/components/ui/alert-dialog/AlertDialogCancel.vue.d.ts +27 -0
- package/dist/components/ui/alert-dialog/AlertDialogContent.vue.d.ts +41 -0
- package/dist/components/ui/alert-dialog/AlertDialogDescription.vue.d.ts +27 -0
- package/dist/components/ui/alert-dialog/AlertDialogFooter.vue.d.ts +26 -0
- package/dist/components/ui/alert-dialog/AlertDialogHeader.vue.d.ts +26 -0
- package/dist/components/ui/alert-dialog/AlertDialogTitle.vue.d.ts +27 -0
- package/dist/components/ui/alert-dialog/AlertDialogTrigger.vue.d.ts +22 -0
- package/dist/components/ui/alert-dialog/index.d.ts +9 -0
- package/dist/components/ui/badge/Badge.vue.d.ts +49 -0
- package/dist/components/ui/badge/constants.d.ts +4 -0
- package/dist/components/ui/badge/index.d.ts +14 -0
- package/dist/components/ui/breadcrumb/Breadcrumb.vue.d.ts +34 -0
- package/dist/components/ui/breadcrumb/index.d.ts +2 -0
- package/dist/components/ui/breadcrumb/types.d.ts +8 -0
- package/dist/components/ui/button/Button.vue.d.ts +53 -0
- package/dist/components/ui/button/constants.d.ts +12 -0
- package/dist/components/ui/button/index.d.ts +12 -0
- package/dist/components/ui/button-group/ButtonGroup.vue.d.ts +43 -0
- package/dist/components/ui/button-group/ButtonGroupSeparator.vue.d.ts +32 -0
- package/dist/components/ui/button-group/ButtonGroupText.vue.d.ts +40 -0
- package/dist/components/ui/button-group/constants.d.ts +2 -0
- package/dist/components/ui/button-group/index.d.ts +14 -0
- package/dist/components/ui/carousel/Carousel.vue.d.ts +59 -0
- package/dist/components/ui/carousel/CarouselContent.vue.d.ts +25 -0
- package/dist/components/ui/carousel/CarouselItem.vue.d.ts +32 -0
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +16 -0
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +16 -0
- package/dist/components/ui/carousel/context.d.ts +26 -0
- package/dist/components/ui/carousel/index.d.ts +7 -0
- package/dist/components/ui/checkbox/Checkbox.vue.d.ts +13 -0
- package/dist/components/ui/checkbox/CheckboxField.vue.d.ts +68 -0
- package/dist/components/ui/checkbox/constants.d.ts +4 -0
- package/dist/components/ui/checkbox/index.d.ts +4 -0
- package/dist/components/ui/content-card/ContentCard.vue.d.ts +72 -0
- package/dist/components/ui/content-card/index.d.ts +1 -0
- package/dist/components/ui/field/Field.vue.d.ts +48 -0
- package/dist/components/ui/field/FieldContent.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldDescription.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldError.vue.d.ts +33 -0
- package/dist/components/ui/field/FieldGroup.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldLabel.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldLegend.vue.d.ts +43 -0
- package/dist/components/ui/field/FieldSeparator.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldSet.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldTitle.vue.d.ts +26 -0
- package/dist/components/ui/field/constants.d.ts +4 -0
- package/dist/components/ui/field/index.d.ts +12 -0
- package/dist/components/ui/icon-button/IconButton.vue.d.ts +62 -0
- package/dist/components/ui/icon-button/constants.d.ts +13 -0
- package/dist/components/ui/icon-button/index.d.ts +14 -0
- package/dist/components/ui/input/Input.vue.d.ts +34 -0
- package/dist/components/ui/input/constants.d.ts +2 -0
- package/dist/components/ui/input/index.d.ts +3 -0
- package/dist/components/ui/kuat-carousel/KuatCarousel.vue.d.ts +51 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselContent.vue.d.ts +25 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselItem.vue.d.ts +27 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselNext.vue.d.ts +16 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselPrevious.vue.d.ts +16 -0
- package/dist/components/ui/kuat-carousel/index.d.ts +6 -0
- package/dist/components/ui/kuat-header/EELogo.vue.d.ts +32 -0
- package/dist/components/ui/kuat-header/KuatHeader.vue.d.ts +56 -0
- package/dist/components/ui/kuat-header/constants.d.ts +83 -0
- package/dist/components/ui/kuat-header/index.d.ts +16 -0
- package/dist/components/ui/kuat-header/kuat-header.logic.d.ts +29 -0
- package/dist/components/ui/kuat-logo-lockup/EELogoIcon.vue.d.ts +18 -0
- package/dist/components/ui/kuat-logo-lockup/KuatLogoLockup.vue.d.ts +45 -0
- package/dist/components/ui/kuat-logo-lockup/constants.d.ts +4 -0
- package/dist/components/ui/kuat-logo-lockup/index.d.ts +4 -0
- package/dist/components/ui/kuat-radial-progress/KuatRadialProgress.vue.d.ts +52 -0
- package/dist/components/ui/kuat-radial-progress/constants.d.ts +4 -0
- package/dist/components/ui/kuat-radial-progress/index.d.ts +3 -0
- package/dist/components/ui/radio/RadioField.vue.d.ts +58 -0
- package/dist/components/ui/radio/RadioGroup.vue.d.ts +31 -0
- package/dist/components/ui/radio/RadioGroupItem.vue.d.ts +22 -0
- package/dist/components/ui/radio/constants.d.ts +4 -0
- package/dist/components/ui/radio/index.d.ts +5 -0
- package/dist/components/ui/select/KuatSelect.vue.d.ts +104 -0
- package/dist/components/ui/select/Select.vue.d.ts +28 -0
- package/dist/components/ui/select/SelectContent.vue.d.ts +52 -0
- package/dist/components/ui/select/SelectGroup.vue.d.ts +22 -0
- package/dist/components/ui/select/SelectItem.vue.d.ts +40 -0
- package/dist/components/ui/select/SelectLabel.vue.d.ts +27 -0
- package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectSeparator.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +72 -0
- package/dist/components/ui/select/SelectValue.vue.d.ts +18 -0
- package/dist/components/ui/select/constants.d.ts +18 -0
- package/dist/components/ui/select/index.d.ts +13 -0
- package/dist/components/ui/separator/Separator.vue.d.ts +35 -0
- package/dist/components/ui/separator/index.d.ts +1 -0
- package/dist/components/ui/sonner/KuatSonner.vue.d.ts +54 -0
- package/dist/components/ui/sonner/KuatSonnerContent.vue.d.ts +53 -0
- package/dist/components/ui/sonner/constants.d.ts +2 -0
- package/dist/components/ui/sonner/index.d.ts +7 -0
- package/dist/components/ui/sonner/toast.d.ts +17 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +13 -0
- package/dist/components/ui/switch/SwitchField.vue.d.ts +68 -0
- package/dist/components/ui/switch/constants.d.ts +4 -0
- package/dist/components/ui/switch/index.d.ts +4 -0
- package/dist/components/ui/textarea/Textarea.vue.d.ts +24 -0
- package/dist/components/ui/textarea/constants.d.ts +2 -0
- package/dist/components/ui/textarea/index.d.ts +3 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +42 -0
- package/dist/components/ui/toggle/constants.d.ts +4 -0
- package/dist/components/ui/toggle/index.d.ts +3 -0
- package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +45 -0
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +49 -0
- package/dist/components/ui/toggle-group/constants.d.ts +2 -0
- package/dist/components/ui/toggle-group/index.d.ts +4 -0
- package/dist/field.d.ts +3 -0
- package/dist/icon-button.d.ts +3 -0
- package/dist/index.d.ts +46 -0
- package/dist/input.d.ts +3 -0
- package/dist/kuat-carousel.d.ts +2 -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 +5 -0
- package/dist/toggle.d.ts +3 -0
- package/package.json +4 -2
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
---
|
|
2
|
+
scope: type
|
|
3
|
+
platform: web_product
|
|
4
|
+
prerequisites: foundations
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Technical Guidelines
|
|
8
|
+
|
|
9
|
+
Technical setup and integration guide for Equal Experts web applications using the Kuat Design System.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
**Prerequisites:** Load [foundations](../../../foundations/) first.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Quick reference
|
|
18
|
+
|
|
19
|
+
- **Stack:** Application → Kuat Blocks → Kuat custom components → shadcn components → kuat-core (tokens, theme).
|
|
20
|
+
- **Priority:** Prefer Kuat Blocks, then Kuat components, then shadcn; custom build only when none fit.
|
|
21
|
+
- **Setup:** Install `@equal-experts/kuat-core`; preset Tailwind; import `kuat-core/variables.css`; init shadcn (Slate, CSS vars); add components as needed.
|
|
22
|
+
- **Theming:** CSS variables from kuat-core; dark mode via class or media; persist preference in localStorage if needed.
|
|
23
|
+
- **Tokens:** Use Tailwind utilities and CSS variables from design tokens; avoid hardcoded colours/spacing.
|
|
24
|
+
- **Rules (app consumers):** Agent rules are bundled in `@equal-experts/kuat-react` / `kuat-vue` at `agent-docs/` — version matches the installed package. See [consumption-architecture.md](../../../../setup/consumption-architecture.md).
|
|
25
|
+
- **Component usage:** Resolve IDs via [component-registry.md](./component-registry.md); canonical guides in package or overlay `components/`.
|
|
26
|
+
|
|
27
|
+
*Full detail follows.*
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Consumer setup (applications)
|
|
32
|
+
|
|
33
|
+
For step-by-step install in a new app, prefer the **package README** (`@equal-experts/kuat-react`) and bundled `agent-docs/AGENTS.md` after install. This file summarises the stack; duplicate setup prose is intentionally reduced.
|
|
34
|
+
|
|
35
|
+
Override bundled rules with a `kuat-agent-docs` git clone only when you need slides, marketing, or bleeding-edge upstream guidance (`KUAT_RULES_PATH`).
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Overview
|
|
40
|
+
|
|
41
|
+
The Kuat Design System uses a layered architecture:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
┌─────────────────────────────────────────────────────┐
|
|
45
|
+
│ Your Application │
|
|
46
|
+
├─────────────────────────────────────────────────────┤
|
|
47
|
+
│ Kuat Blocks (Header, Footer, etc.) │ ← From kuat-react/vue
|
|
48
|
+
├─────────────────────────────────────────────────────┤
|
|
49
|
+
│ Kuat Custom Components (ButtonGroup) │ ← From kuat-react/vue
|
|
50
|
+
├─────────────────────────────────────────────────────┤
|
|
51
|
+
│ shadcn Components (Button, Dialog, etc.) │ ← Installed directly
|
|
52
|
+
├─────────────────────────────────────────────────────┤
|
|
53
|
+
│ kuat-core (Design Tokens, Theme) │ ← Foundation
|
|
54
|
+
└─────────────────────────────────────────────────────┘
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Component Priority:**
|
|
58
|
+
1. **Kuat Blocks** - Pre-built compositions for common patterns
|
|
59
|
+
2. **Kuat Components** - Custom components not in shadcn (e.g., ButtonGroup)
|
|
60
|
+
3. **shadcn Components** - Standard UI components themed by kuat-core
|
|
61
|
+
4. **Custom Build** - Only when none of the above fit
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Quick Start (React)
|
|
66
|
+
|
|
67
|
+
### Step 1: Install kuat-core
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pnpm add @equal-experts/kuat-core
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Step 2: Configure Tailwind CSS
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// tailwind.config.ts
|
|
77
|
+
import type { Config } from 'tailwindcss';
|
|
78
|
+
import kuatPreset from '@equal-experts/kuat-core';
|
|
79
|
+
|
|
80
|
+
export default {
|
|
81
|
+
presets: [kuatPreset],
|
|
82
|
+
content: [
|
|
83
|
+
'./src/**/*.{js,ts,jsx,tsx}',
|
|
84
|
+
'./node_modules/@equal-experts/kuat-react/**/*.{js,ts,jsx,tsx}',
|
|
85
|
+
],
|
|
86
|
+
} satisfies Config;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Step 3: Import Design Tokens
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
// main.tsx or App.tsx
|
|
93
|
+
import '@equal-experts/kuat-core/variables.css';
|
|
94
|
+
import './styles.css'; // Your app styles
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Step 4: Initialize shadcn
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx shadcn@latest init
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
When prompted, use these settings:
|
|
104
|
+
- Style: Default
|
|
105
|
+
- Base color: Slate
|
|
106
|
+
- CSS variables: Yes
|
|
107
|
+
- Tailwind config: tailwind.config.ts
|
|
108
|
+
- Components path: src/components
|
|
109
|
+
- Utils path: src/lib/utils
|
|
110
|
+
|
|
111
|
+
### Step 5: Install shadcn Components
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Install components as needed
|
|
115
|
+
npx shadcn@latest add button
|
|
116
|
+
npx shadcn@latest add dialog
|
|
117
|
+
npx shadcn@latest add dropdown-menu
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Step 6: Install Kuat Custom Components (Optional)
|
|
121
|
+
|
|
122
|
+
If you need Kuat-specific components like ButtonGroup:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
pnpm add @equal-experts/kuat-react
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```tsx
|
|
129
|
+
// Only import custom components, not standard ones
|
|
130
|
+
import { ButtonGroup, ButtonGroupText } from '@equal-experts/kuat-react';
|
|
131
|
+
import { Button } from '@/components/ui/button'; // Your shadcn copy
|
|
132
|
+
|
|
133
|
+
function Example() {
|
|
134
|
+
return (
|
|
135
|
+
<ButtonGroup>
|
|
136
|
+
<Button>Option A</Button>
|
|
137
|
+
<Button>Option B</Button>
|
|
138
|
+
<Button>Option C</Button>
|
|
139
|
+
</ButtonGroup>
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Quick Start (Vue)
|
|
147
|
+
|
|
148
|
+
### Step 1: Install kuat-core
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
pnpm add @equal-experts/kuat-core
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Step 2: Configure Tailwind CSS
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
// tailwind.config.ts
|
|
158
|
+
import type { Config } from 'tailwindcss';
|
|
159
|
+
import kuatPreset from '@equal-experts/kuat-core';
|
|
160
|
+
|
|
161
|
+
export default {
|
|
162
|
+
presets: [kuatPreset],
|
|
163
|
+
content: [
|
|
164
|
+
'./src/**/*.{vue,js,ts}',
|
|
165
|
+
'./node_modules/@equal-experts/kuat-vue/**/*.{vue,js,ts}',
|
|
166
|
+
],
|
|
167
|
+
} satisfies Config;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Step 3: Import Design Tokens
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
// main.ts
|
|
174
|
+
import '@equal-experts/kuat-core/variables.css';
|
|
175
|
+
import './style.css';
|
|
176
|
+
import { createApp } from 'vue';
|
|
177
|
+
import App from './App.vue';
|
|
178
|
+
|
|
179
|
+
createApp(App).mount('#app');
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Step 4: Initialize shadcn-vue
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
npx shadcn-vue@latest init
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Step 5: Install shadcn-vue Components
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
npx shadcn-vue@latest add button
|
|
192
|
+
npx shadcn-vue@latest add dialog
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Step 6: Install Kuat Custom Components (Optional)
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
pnpm add @equal-experts/kuat-vue
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```vue
|
|
202
|
+
<script setup lang="ts">
|
|
203
|
+
import { ButtonGroup, ButtonGroupText } from '@equal-experts/kuat-vue';
|
|
204
|
+
import { Button } from '@/components/ui/button';
|
|
205
|
+
</script>
|
|
206
|
+
|
|
207
|
+
<template>
|
|
208
|
+
<ButtonGroup>
|
|
209
|
+
<Button>Option A</Button>
|
|
210
|
+
<Button>Option B</Button>
|
|
211
|
+
</ButtonGroup>
|
|
212
|
+
</template>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Project Structure
|
|
218
|
+
|
|
219
|
+
After setup, your project should look like:
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
your-project/
|
|
223
|
+
├── src/
|
|
224
|
+
│ ├── components/
|
|
225
|
+
│ │ └── ui/ # shadcn components (installed directly)
|
|
226
|
+
│ │ ├── button.tsx
|
|
227
|
+
│ │ ├── dialog.tsx
|
|
228
|
+
│ │ └── ...
|
|
229
|
+
│ ├── lib/
|
|
230
|
+
│ │ └── utils.ts # cn() utility from shadcn
|
|
231
|
+
│ ├── App.tsx
|
|
232
|
+
│ └── main.tsx
|
|
233
|
+
├── tailwind.config.ts # Uses kuatPreset
|
|
234
|
+
├── components.json # shadcn CLI config
|
|
235
|
+
└── package.json
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Framework Integration Guides
|
|
241
|
+
|
|
242
|
+
### Next.js (App Router)
|
|
243
|
+
|
|
244
|
+
**tailwind.config.ts**
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
import type { Config } from 'tailwindcss';
|
|
248
|
+
import kuatPreset from '@equal-experts/kuat-core';
|
|
249
|
+
|
|
250
|
+
export default {
|
|
251
|
+
presets: [kuatPreset],
|
|
252
|
+
content: [
|
|
253
|
+
'./app/**/*.{js,ts,jsx,tsx,mdx}',
|
|
254
|
+
'./components/**/*.{js,ts,jsx,tsx,mdx}',
|
|
255
|
+
],
|
|
256
|
+
} satisfies Config;
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**app/layout.tsx**
|
|
260
|
+
|
|
261
|
+
```tsx
|
|
262
|
+
import '@equal-experts/kuat-core/variables.css';
|
|
263
|
+
import './globals.css';
|
|
264
|
+
|
|
265
|
+
export default function RootLayout({
|
|
266
|
+
children,
|
|
267
|
+
}: {
|
|
268
|
+
children: React.ReactNode;
|
|
269
|
+
}) {
|
|
270
|
+
return (
|
|
271
|
+
<html lang="en">
|
|
272
|
+
<body className="bg-background text-foreground min-h-screen">
|
|
273
|
+
{children}
|
|
274
|
+
</body>
|
|
275
|
+
</html>
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Vite + React
|
|
281
|
+
|
|
282
|
+
**vite.config.ts**
|
|
283
|
+
|
|
284
|
+
```typescript
|
|
285
|
+
import { defineConfig } from 'vite';
|
|
286
|
+
import react from '@vitejs/plugin-react';
|
|
287
|
+
import tailwindcss from '@tailwindcss/vite';
|
|
288
|
+
|
|
289
|
+
export default defineConfig({
|
|
290
|
+
plugins: [react(), tailwindcss()],
|
|
291
|
+
});
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**src/main.tsx**
|
|
295
|
+
|
|
296
|
+
```tsx
|
|
297
|
+
import React from 'react';
|
|
298
|
+
import ReactDOM from 'react-dom/client';
|
|
299
|
+
import '@equal-experts/kuat-core/variables.css';
|
|
300
|
+
import './index.css';
|
|
301
|
+
import App from './App';
|
|
302
|
+
|
|
303
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
304
|
+
<React.StrictMode>
|
|
305
|
+
<App />
|
|
306
|
+
</React.StrictMode>
|
|
307
|
+
);
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Vite + Vue
|
|
311
|
+
|
|
312
|
+
**vite.config.ts**
|
|
313
|
+
|
|
314
|
+
```typescript
|
|
315
|
+
import { defineConfig } from 'vite';
|
|
316
|
+
import vue from '@vitejs/plugin-vue';
|
|
317
|
+
import tailwindcss from '@tailwindcss/vite';
|
|
318
|
+
|
|
319
|
+
export default defineConfig({
|
|
320
|
+
plugins: [vue(), tailwindcss()],
|
|
321
|
+
});
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**src/main.ts**
|
|
325
|
+
|
|
326
|
+
```typescript
|
|
327
|
+
import { createApp } from 'vue';
|
|
328
|
+
import '@equal-experts/kuat-core/variables.css';
|
|
329
|
+
import './style.css';
|
|
330
|
+
import App from './App.vue';
|
|
331
|
+
|
|
332
|
+
createApp(App).mount('#app');
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Theming
|
|
338
|
+
|
|
339
|
+
shadcn components are automatically themed when you:
|
|
340
|
+
|
|
341
|
+
1. Import `@equal-experts/kuat-core/variables.css`
|
|
342
|
+
2. Use the kuat Tailwind preset
|
|
343
|
+
|
|
344
|
+
The CSS variables from kuat-core provide:
|
|
345
|
+
- Brand colors (EE Blue, Transform Teal, etc.)
|
|
346
|
+
- Typography (Lexend, JetBrains Mono, Lora)
|
|
347
|
+
- Spacing scale (8-point grid)
|
|
348
|
+
- Border radius values
|
|
349
|
+
- Light/dark mode support
|
|
350
|
+
|
|
351
|
+
### Dark Mode
|
|
352
|
+
|
|
353
|
+
Apply the `.dark` class to your root element:
|
|
354
|
+
|
|
355
|
+
```tsx
|
|
356
|
+
<html className="dark">
|
|
357
|
+
<body>
|
|
358
|
+
<App />
|
|
359
|
+
</body>
|
|
360
|
+
</html>
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
Or toggle dynamically:
|
|
364
|
+
|
|
365
|
+
```typescript
|
|
366
|
+
document.documentElement.classList.toggle('dark');
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### Persisting User Preference
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
const THEME_KEY = 'kuat-theme';
|
|
373
|
+
|
|
374
|
+
function initTheme() {
|
|
375
|
+
const saved = localStorage.getItem(THEME_KEY);
|
|
376
|
+
|
|
377
|
+
if (saved === 'dark') {
|
|
378
|
+
document.documentElement.classList.add('dark');
|
|
379
|
+
} else if (saved === 'light') {
|
|
380
|
+
document.documentElement.classList.remove('dark');
|
|
381
|
+
} else {
|
|
382
|
+
// Use system preference
|
|
383
|
+
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
384
|
+
document.documentElement.classList.toggle('dark', prefersDark);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
function setTheme(theme: 'light' | 'dark' | 'system') {
|
|
389
|
+
localStorage.setItem(THEME_KEY, theme);
|
|
390
|
+
|
|
391
|
+
if (theme === 'dark') {
|
|
392
|
+
document.documentElement.classList.add('dark');
|
|
393
|
+
} else if (theme === 'light') {
|
|
394
|
+
document.documentElement.classList.remove('dark');
|
|
395
|
+
} else {
|
|
396
|
+
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
397
|
+
document.documentElement.classList.toggle('dark', prefersDark);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Design Token Reference
|
|
405
|
+
|
|
406
|
+
### Available CSS Variables
|
|
407
|
+
|
|
408
|
+
```css
|
|
409
|
+
/* Semantic Colors */
|
|
410
|
+
--background, --foreground
|
|
411
|
+
--primary, --primary-foreground
|
|
412
|
+
--secondary, --secondary-foreground
|
|
413
|
+
--muted, --muted-foreground
|
|
414
|
+
--accent, --accent-foreground
|
|
415
|
+
--destructive, --destructive-foreground
|
|
416
|
+
--card, --card-foreground
|
|
417
|
+
--popover, --popover-foreground
|
|
418
|
+
--border, --input, --ring
|
|
419
|
+
|
|
420
|
+
/* Sidebar Colors */
|
|
421
|
+
--sidebar, --sidebar-foreground
|
|
422
|
+
--sidebar-primary, --sidebar-primary-foreground
|
|
423
|
+
--sidebar-accent, --sidebar-accent-foreground
|
|
424
|
+
--sidebar-border, --sidebar-ring
|
|
425
|
+
|
|
426
|
+
/* Brand Colors (full palettes) */
|
|
427
|
+
--ee-blue-50 through --ee-blue-950
|
|
428
|
+
--tech-blue-50 through --tech-blue-950
|
|
429
|
+
--transform-teal-50 through --transform-teal-950
|
|
430
|
+
--equal-ember-50 through --equal-ember-950
|
|
431
|
+
|
|
432
|
+
/* Typography */
|
|
433
|
+
--font-sans, --font-serif, --font-mono
|
|
434
|
+
|
|
435
|
+
/* Layout */
|
|
436
|
+
--radius, --spacing, --tracking-normal
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### Tailwind Utility Classes
|
|
440
|
+
|
|
441
|
+
```html
|
|
442
|
+
<!-- Colors -->
|
|
443
|
+
<div class="bg-background text-foreground">
|
|
444
|
+
<div class="bg-primary text-primary-foreground">
|
|
445
|
+
<div class="bg-sidebar text-sidebar-foreground">
|
|
446
|
+
<div class="border-border">
|
|
447
|
+
|
|
448
|
+
<!-- Border Radius -->
|
|
449
|
+
<div class="rounded-sm"> <!-- Small -->
|
|
450
|
+
<div class="rounded-md"> <!-- Medium -->
|
|
451
|
+
<div class="rounded-lg"> <!-- Large -->
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
## Troubleshooting
|
|
457
|
+
|
|
458
|
+
### Components not styled correctly
|
|
459
|
+
|
|
460
|
+
1. Verify `@equal-experts/kuat-core/variables.css` is imported before other styles
|
|
461
|
+
2. Check that `kuatPreset` is in your Tailwind config `presets` array
|
|
462
|
+
3. Ensure shadcn components are in the Tailwind `content` paths
|
|
463
|
+
|
|
464
|
+
### TypeScript errors
|
|
465
|
+
|
|
466
|
+
1. Ensure `@types/react` (React) or `vue` (Vue) are installed
|
|
467
|
+
2. Set `moduleResolution` to `bundler` or `node16` in tsconfig
|
|
468
|
+
|
|
469
|
+
### Dark mode not working
|
|
470
|
+
|
|
471
|
+
1. Verify `.dark` class is applied to `<html>` or a parent element
|
|
472
|
+
2. Check that CSS variables are imported
|
|
473
|
+
|
|
474
|
+
### Build errors
|
|
475
|
+
|
|
476
|
+
1. Check Node version: Requires Node.js 18 or higher
|
|
477
|
+
2. Verify package versions: Ensure Tailwind CSS v4 is installed
|
|
478
|
+
3. Clear caches: Run `rm -rf node_modules && pnpm install`
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## Related Documentation
|
|
483
|
+
|
|
484
|
+
- [Design Rules](./design.md) - Layout and visual design
|
|
485
|
+
- [Component Decision Tree](./component-decision-tree.md) - Component selection
|
|
486
|
+
- [Component registry](./component-registry.md) - Stable IDs → package/overlay guides
|
|
487
|
+
- [consumption-architecture.md](../../../../setup/consumption-architecture.md) - Entry points and npm bundling
|
|
488
|
+
- [Examples](./examples/) - Illustrative patterns only ([DEPRECATIONS.md](./DEPRECATIONS.md))
|
|
@@ -0,0 +1,148 @@
|
|
|
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). Task-loading order for upstream: [`LOADING.md`](../../external/kuat-agent-rules/kuat-docs/rules/LOADING.md).
|
|
6
|
+
|
|
7
|
+
**Path prefix (this repo):** `external/kuat-agent-rules/kuat-docs/rules/`
|
|
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
|
+
### Rules index & loading
|
|
16
|
+
|
|
17
|
+
| Resource | Path |
|
|
18
|
+
|----------|------|
|
|
19
|
+
| Rules README | [`external/kuat-agent-rules/kuat-docs/rules/README.md`](../../external/kuat-agent-rules/kuat-docs/rules/README.md) |
|
|
20
|
+
| Task loading | [`external/kuat-agent-rules/kuat-docs/rules/LOADING.md`](../../external/kuat-agent-rules/kuat-docs/rules/LOADING.md) |
|
|
21
|
+
|
|
22
|
+
### Foundations — design
|
|
23
|
+
|
|
24
|
+
| Topic | Path |
|
|
25
|
+
|-------|------|
|
|
26
|
+
| Design language | [`.../foundations/design/design-language.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/design/design-language.md) |
|
|
27
|
+
| Colours | [`.../foundations/design/colours.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/design/colours.md) |
|
|
28
|
+
| Typography | [`.../foundations/design/typography.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/design/typography.md) |
|
|
29
|
+
| Spacing | [`.../foundations/design/spacing.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/design/spacing.md) |
|
|
30
|
+
| Borders | [`.../foundations/design/borders.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/design/borders.md) |
|
|
31
|
+
|
|
32
|
+
### Foundations — logo
|
|
33
|
+
|
|
34
|
+
| Topic | Path |
|
|
35
|
+
|-------|------|
|
|
36
|
+
| Logo | [`.../foundations/logo.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/logo.md) |
|
|
37
|
+
|
|
38
|
+
### Foundations — content
|
|
39
|
+
|
|
40
|
+
| Topic | Path |
|
|
41
|
+
|-------|------|
|
|
42
|
+
| Content index | [`.../foundations/content/README.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/content/README.md) |
|
|
43
|
+
| Voice and tone | [`.../foundations/content/voice-and-tone.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/content/voice-and-tone.md) |
|
|
44
|
+
| Writing style | [`.../foundations/content/writing-style.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/content/writing-style.md) |
|
|
45
|
+
| Formatting | [`.../foundations/content/formatting.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/content/formatting.md) |
|
|
46
|
+
| Punctuation | [`.../foundations/content/punctuation.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/content/punctuation.md) |
|
|
47
|
+
| Numbers | [`.../foundations/content/numbers.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/content/numbers.md) |
|
|
48
|
+
|
|
49
|
+
### Types — web — product
|
|
50
|
+
|
|
51
|
+
| Topic | Path |
|
|
52
|
+
|-------|------|
|
|
53
|
+
| Product design (layouts / navigation scenarios) | [`.../types/web/product/design.md`](../../external/kuat-agent-rules/kuat-docs/rules/types/web/product/design.md) |
|
|
54
|
+
| Product content | [`.../types/web/product/content/product-content.md`](../../external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/product-content.md) |
|
|
55
|
+
| Product content (directory) | [`.../types/web/product/content/`](../../external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/) |
|
|
56
|
+
|
|
57
|
+
### Types — web — marketing
|
|
58
|
+
|
|
59
|
+
| Topic | Path |
|
|
60
|
+
|-------|------|
|
|
61
|
+
| Marketing website | [`.../types/web/marketing/website.md`](../../external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/website.md) |
|
|
62
|
+
| Marketing content | [`.../types/web/marketing/content/marketing-content.md`](../../external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/marketing-content.md) |
|
|
63
|
+
| Marketing content (directory) | [`.../types/web/marketing/content/`](../../external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/) |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Kuat implementation (this monorepo)
|
|
68
|
+
|
|
69
|
+
High-level EE design language is in [`design-language.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/design/design-language.md). The sections below are **Kuat-only**: how tokens and packages map to code.
|
|
70
|
+
|
|
71
|
+
### What is Kuat?
|
|
72
|
+
|
|
73
|
+
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.
|
|
74
|
+
|
|
75
|
+
### Token architecture
|
|
76
|
+
|
|
77
|
+
**Layer 1 — Brand colours:** EE Blue, Transform Teal, Tech Blue, Equal Ember (see upstream colours doc).
|
|
78
|
+
|
|
79
|
+
**Layer 2 — Semantic tokens** (examples): `--primary`, `--secondary`, `--accent`, `--background`, `--foreground`, `--muted`, `--destructive`, `--border`, `--input`, `--ring`.
|
|
80
|
+
|
|
81
|
+
**Layer 3 — Component tokens** (examples): `--card`, `--card-foreground`, `--sidebar`, `--sidebar-foreground`, `--popover`, `--popover-foreground`.
|
|
82
|
+
|
|
83
|
+
### Theming
|
|
84
|
+
|
|
85
|
+
- **Light:** default semantic tokens.
|
|
86
|
+
- **Dark:** add `.dark` on the root; semantic tokens switch; follow upstream usage for brand colours.
|
|
87
|
+
|
|
88
|
+
### Package layout
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
@equal-experts/kuat-core/
|
|
92
|
+
├── src/variables.css
|
|
93
|
+
└── tailwind.config.ts
|
|
94
|
+
|
|
95
|
+
@equal-experts/kuat-react/ → src/components/
|
|
96
|
+
@equal-experts/kuat-vue/ → src/components/
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Integration docs
|
|
100
|
+
|
|
101
|
+
- [Integration guide](../setup/integration.md)
|
|
102
|
+
- [Kuat core integration](../setup/kuat-core-integration.md)
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Local rule documents (not mirrored above)
|
|
107
|
+
|
|
108
|
+
These files live only under `kuat-docs/rules/` and add Kuat or scenario-specific guidance:
|
|
109
|
+
|
|
110
|
+
| Area | Entry |
|
|
111
|
+
|------|--------|
|
|
112
|
+
| Layout primitives | [design/layouts.md](./design/layouts.md) |
|
|
113
|
+
| Components | [components/README.md](./components/README.md), [patterns.md](./components/patterns.md) |
|
|
114
|
+
| Accessibility | [accessibility/README.md](./accessibility/README.md) |
|
|
115
|
+
| Scenarios | [scenarios/README.md](./scenarios/README.md) |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Quick navigation
|
|
120
|
+
|
|
121
|
+
| Category | Notes |
|
|
122
|
+
|----------|--------|
|
|
123
|
+
| **EE canonical** | Tables above → `external/kuat-agent-rules` |
|
|
124
|
+
| **Kuat tokens & packages** | Section *Kuat implementation* |
|
|
125
|
+
| **[Design — layouts](./design/layouts.md)** | Kuat layout primitives + upstream scenario links |
|
|
126
|
+
| **[Accessibility](./accessibility/)** | WCAG-oriented local guides |
|
|
127
|
+
| **[Components](./components/)** | Naming, variants, patterns |
|
|
128
|
+
| **[Scenarios](./scenarios/)** | Applied flows (auth, dashboards, …) |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Implementation examples
|
|
133
|
+
|
|
134
|
+
Code samples are not in this file:
|
|
135
|
+
|
|
136
|
+
- [examples/react/](../examples/react/)
|
|
137
|
+
- [examples/vue/](../examples/vue/)
|
|
138
|
+
- [examples/css/](../examples/css/)
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## For AI agents
|
|
143
|
+
|
|
144
|
+
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/...`).
|
|
145
|
+
2. **Design tokens / brand colour decisions:** [`foundations/design/colours.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/design/colours.md) (and spacing/typography/borders as needed).
|
|
146
|
+
3. **Content voice / UX copy:** [`foundations/content/voice-and-tone.md`](../../external/kuat-agent-rules/kuat-docs/rules/foundations/content/voice-and-tone.md) plus product or marketing content docs above.
|
|
147
|
+
4. **Layout structure in code:** [design/layouts.md](./design/layouts.md).
|
|
148
|
+
5. **Components:** [components/patterns.md](./components/patterns.md) + relevant `examples/{framework}/`.
|