ui-ux-master 1.1.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.
Files changed (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +198 -0
  3. package/SKILL.md +717 -0
  4. package/agent-templates/antigravity/AGENTS.append.md +15 -0
  5. package/agent-templates/claude/commands/ui-ux-master.md +25 -0
  6. package/agent-templates/codex/AGENTS.append.md +15 -0
  7. package/agent-templates/cursor/rules/ui-ux-master.mdc +10 -0
  8. package/agent-templates/gemini/GEMINI.append.md +9 -0
  9. package/agent-templates/universal/ui-ux-master-trigger.md +18 -0
  10. package/agent-templates/windsurf/rules/ui-ux-master.md +17 -0
  11. package/bin/ui-ux-master.mjs +192 -0
  12. package/docs/slash-command-compatibility.md +58 -0
  13. package/package.json +55 -0
  14. package/references/accessibility-advanced-patterns.md +43 -0
  15. package/references/competitive-landscape.md +47 -0
  16. package/references/content-design-and-i18n.md +53 -0
  17. package/references/data-visualization-dashboard-ux.md +46 -0
  18. package/references/design-system-playbook.md +133 -0
  19. package/references/ethical-inclusive-design.md +52 -0
  20. package/references/platform-guidelines.md +59 -0
  21. package/references/service-design-journey-mapping.md +39 -0
  22. package/references/top-100-brand-website-analysis.md +302 -0
  23. package/references/ui-ux-complete-checklist.md +214 -0
  24. package/references/ui-ux-curriculum-and-standards.md +40 -0
  25. package/references/ui-ux-frontend-implementation-rules.md +378 -0
  26. package/references/ui-ux-memory-workflow.md +175 -0
  27. package/references/usability-heuristics.md +65 -0
  28. package/references/ux-measurement-quality-gates.md +58 -0
  29. package/references/ux-research-methods.md +99 -0
  30. package/references/wcag-aa-quick-reference.md +85 -0
  31. package/scripts/build_deployment_zip.py +42 -0
  32. package/scripts/validate_skill.py +303 -0
  33. package/templates/component-spec.md +127 -0
  34. package/templates/design-system-spec.md +121 -0
  35. package/templates/top-brand-frontend-spec.md +133 -0
  36. package/templates/ui-ux-audit-report.md +146 -0
  37. package/templates/ui-ux-brief.md +86 -0
  38. package/templates/ui-ux-memory.md +204 -0
  39. package/tests/install-smoke.test.mjs +71 -0
@@ -0,0 +1,303 @@
1
+ #!/usr/bin/env python3
2
+ """Validate the UI/UX skill package.
3
+
4
+ Dependency-free by design so the package can be checked on a fresh machine.
5
+ Use --release for stricter deployment packaging checks.
6
+ """
7
+ from __future__ import annotations
8
+
9
+ import argparse
10
+ import json
11
+ import re
12
+ import sys
13
+ from pathlib import Path
14
+
15
+ ROOT = Path(__file__).resolve().parents[1]
16
+ SKILL = ROOT / "SKILL.md"
17
+ PACKAGE = ROOT / "package.json"
18
+
19
+ REQUIRED = [
20
+ "README.md",
21
+ "LICENSE",
22
+ "package.json",
23
+ "bin/ui-ux-master.mjs",
24
+ "docs/slash-command-compatibility.md",
25
+ "agent-templates/claude/commands/ui-ux-master.md",
26
+ "agent-templates/universal/ui-ux-master-trigger.md",
27
+ "agent-templates/codex/AGENTS.append.md",
28
+ "agent-templates/windsurf/rules/ui-ux-master.md",
29
+ "agent-templates/antigravity/AGENTS.append.md",
30
+ "agent-templates/gemini/GEMINI.append.md",
31
+ "agent-templates/cursor/rules/ui-ux-master.mdc",
32
+ "references/ui-ux-complete-checklist.md",
33
+ "references/ui-ux-frontend-implementation-rules.md",
34
+ "references/ui-ux-memory-workflow.md",
35
+ "references/wcag-aa-quick-reference.md",
36
+ "references/design-system-playbook.md",
37
+ "references/top-100-brand-website-analysis.md",
38
+ "references/ux-research-methods.md",
39
+ "references/usability-heuristics.md",
40
+ "references/platform-guidelines.md",
41
+ "references/content-design-and-i18n.md",
42
+ "references/ux-measurement-quality-gates.md",
43
+ "references/ethical-inclusive-design.md",
44
+ "references/service-design-journey-mapping.md",
45
+ "references/data-visualization-dashboard-ux.md",
46
+ "references/accessibility-advanced-patterns.md",
47
+ "references/ui-ux-curriculum-and-standards.md",
48
+ "references/competitive-landscape.md",
49
+ "templates/ui-ux-brief.md",
50
+ "templates/ui-ux-memory.md",
51
+ "templates/ui-ux-audit-report.md",
52
+ "templates/component-spec.md",
53
+ "templates/design-system-spec.md",
54
+ "templates/top-brand-frontend-spec.md",
55
+ "scripts/build_deployment_zip.py",
56
+ "tests/install-smoke.test.mjs",
57
+ ]
58
+
59
+ REQUIRED_PHRASES = [
60
+ "Information Architecture",
61
+ "User Flows",
62
+ "Accessibility",
63
+ "Design Systems",
64
+ "Responsive",
65
+ "Handoff",
66
+ "WCAG",
67
+ "Screen State Checklist",
68
+ "Top-Brand Frontend Method",
69
+ "UI/UX memory",
70
+ "research",
71
+ "heuristic",
72
+ "platform",
73
+ "content design",
74
+ "Internationalization",
75
+ "Measurement and Quality Gates",
76
+ "Ethics",
77
+ "privacy",
78
+ "/ui-ux-master",
79
+ "Cross-Agent Activation",
80
+ ]
81
+
82
+ REQUIRED_HEADINGS = {
83
+ "README.md": ["## Install with npm", "## Supported Agents", "## Competitive Positioning", "## Validation and Testing", "## Deployment Readiness Checklist"],
84
+ "docs/slash-command-compatibility.md": ["## What `/ui-ux-master` Does", "## Native Slash Commands vs Text Triggers", "## Supported Agents"],
85
+ "references/ux-research-methods.md": ["## Research Decision Tree", "## Research Plan Template", "## Evidence Confidence Levels"],
86
+ "references/usability-heuristics.md": ["## Nielsen's 10 Usability Heuristics", "## Severity Rating"],
87
+ "references/platform-guidelines.md": ["## Web App", "## iOS / Apple Platforms", "## Android / Material", "## Cross-Platform Rule"],
88
+ "references/content-design-and-i18n.md": ["## Content Design Principles", "## Internationalization Checklist"],
89
+ "references/ux-measurement-quality-gates.md": ["## Metric Selection", "## Quality Gate Template"],
90
+ "references/ethical-inclusive-design.md": ["## Dark Pattern Checks", "## Privacy UX", "## Inclusive Design"],
91
+ "references/service-design-journey-mapping.md": ["## Journey Map Elements", "## Service Blueprint Elements"],
92
+ "references/data-visualization-dashboard-ux.md": ["## Dashboard Principles", "## Chart Selection", "## Tables and Data Grids"],
93
+ "references/accessibility-advanced-patterns.md": ["## Complex Widget Checklist", "## Testing Matrix"],
94
+ "references/ui-ux-curriculum-and-standards.md": ["## Beginner Foundations", "## Intermediate Practice", "## Advanced Practice"],
95
+ "references/competitive-landscape.md": ["## What Existing Tools Do Well", "## Gaps UI/UX Master Must Beat", "## Strategy to Stay Ahead"],
96
+ "templates/ui-ux-brief.md": ["## Research and Evidence Plan", "## Constraints", "## Deliverables Needed"],
97
+ "templates/ui-ux-audit-report.md": ["## Heuristic Findings", "## Measured Evidence and Quality Gates"],
98
+ "templates/component-spec.md": ["## Acceptance Criteria and Test Matrix"],
99
+ "templates/design-system-spec.md": ["## Governance"],
100
+ "templates/top-brand-frontend-spec.md": ["## 11. Quality Gates", "## 12. Do Not Copy"],
101
+ }
102
+
103
+
104
+ def fail(message: str) -> None:
105
+ print(f"FAIL: {message}")
106
+ sys.exit(1)
107
+
108
+
109
+ def warn(message: str) -> None:
110
+ print(f"WARN: {message}")
111
+
112
+
113
+ def parse_frontmatter(content: str) -> tuple[dict[str, str], str]:
114
+ if not content.startswith("---\n"):
115
+ fail("SKILL.md must start with YAML frontmatter at byte 0")
116
+ end_marker = content.find("\n---\n", 4)
117
+ if end_marker == -1:
118
+ fail("SKILL.md frontmatter is not closed")
119
+ frontmatter_text = content[4:end_marker]
120
+ body = content[end_marker + 5 :]
121
+ if not body.strip():
122
+ fail("SKILL.md body is empty")
123
+ frontmatter: dict[str, str] = {}
124
+ for raw_line in frontmatter_text.splitlines():
125
+ if not raw_line or raw_line.startswith(" ") or raw_line.lstrip().startswith("#"):
126
+ continue
127
+ if ":" in raw_line:
128
+ key, value = raw_line.split(":", 1)
129
+ frontmatter[key.strip()] = value.strip().strip('"').strip("'")
130
+ return frontmatter, body
131
+
132
+
133
+ def skill_version() -> str:
134
+ fm, _ = parse_frontmatter(SKILL.read_text(encoding="utf-8"))
135
+ return fm.get("version", "")
136
+
137
+
138
+ def check_required_files() -> None:
139
+ for rel in REQUIRED:
140
+ path = ROOT / rel
141
+ if not path.exists():
142
+ fail(f"missing supporting file: {rel}")
143
+ text = path.read_text(encoding="utf-8")
144
+ min_len = 150 if rel.endswith((".json", ".mjs")) else 200
145
+ if len(text.strip()) < min_len:
146
+ fail(f"supporting file too small or empty: {rel}")
147
+
148
+
149
+ def check_required_headings() -> None:
150
+ for rel, headings in REQUIRED_HEADINGS.items():
151
+ text = (ROOT / rel).read_text(encoding="utf-8")
152
+ for heading in headings:
153
+ if heading not in text:
154
+ fail(f"{rel} missing heading: {heading}")
155
+
156
+
157
+ def check_skill_frontmatter_and_body() -> None:
158
+ if not SKILL.exists():
159
+ fail("SKILL.md is missing")
160
+ content = SKILL.read_text(encoding="utf-8")
161
+ fm, body = parse_frontmatter(content)
162
+ for key in ["name", "description", "version", "author", "license", "metadata"]:
163
+ if key not in content.split("---", 2)[1]:
164
+ fail(f"frontmatter missing {key}")
165
+ name = fm.get("name", "")
166
+ if not re.fullmatch(r"[a-z0-9][a-z0-9-]{0,63}", name):
167
+ fail("name must be lowercase hyphenated and <=64 chars")
168
+ description = fm.get("description", "")
169
+ if len(description) > 1024:
170
+ fail("description must be <=1024 chars")
171
+ if not description.startswith("Use when"):
172
+ fail('description should start with "Use when"')
173
+ if len(content) > 100_000:
174
+ fail("SKILL.md exceeds 100,000 characters")
175
+ if len(content) > 45_000:
176
+ warn("SKILL.md is getting large; keep detailed material in references/")
177
+ lower_body = body.lower()
178
+ for phrase in REQUIRED_PHRASES:
179
+ if phrase.lower() not in lower_body:
180
+ fail(f"SKILL.md missing required phrase: {phrase}")
181
+
182
+
183
+ def check_package_json() -> None:
184
+ try:
185
+ data = json.loads(PACKAGE.read_text(encoding="utf-8"))
186
+ except Exception as exc:
187
+ fail(f"package.json is invalid JSON: {exc}")
188
+ for key in ["name", "version", "description", "type", "bin", "files", "scripts", "license", "engines"]:
189
+ if key not in data:
190
+ fail(f"package.json missing {key}")
191
+ if data["name"] != "ui-ux-master":
192
+ fail("package.json name must be ui-ux-master")
193
+ if data["version"] != skill_version():
194
+ fail("package.json version must match SKILL.md version")
195
+ if data.get("license") != "MIT":
196
+ fail("package.json license must be MIT")
197
+ if data.get("bin", {}).get("ui-ux-master") != "./bin/ui-ux-master.mjs":
198
+ fail("package.json bin.ui-ux-master must point to ./bin/ui-ux-master.mjs")
199
+ for script in ["validate", "test", "prepack"]:
200
+ if script not in data.get("scripts", {}):
201
+ fail(f"package.json scripts missing {script}")
202
+ required_files = ["SKILL.md", "references/", "templates/", "agent-templates/", "docs/", "bin/", "scripts/", "tests/"]
203
+ for item in required_files:
204
+ if item not in data.get("files", []):
205
+ fail(f"package.json files missing {item}")
206
+
207
+
208
+ def check_bin_installer() -> None:
209
+ text = (ROOT / "bin/ui-ux-master.mjs").read_text(encoding="utf-8")
210
+ if not text.startswith("#!/usr/bin/env node"):
211
+ fail("bin/ui-ux-master.mjs must have node shebang")
212
+ for phrase in ["install", "doctor", "uninstall", "--dry-run", "fileURLToPath", "/ui-ux-master", "copyProjectSkillAssets", ".ui-ux-master"]:
213
+ if phrase not in text:
214
+ fail(f"bin installer missing {phrase}")
215
+ forbidden = ["C:\\", "C:/xampp", "C:/Users", "/home/"]
216
+ for bad in forbidden:
217
+ if bad in text:
218
+ fail(f"bin installer contains local absolute path: {bad}")
219
+
220
+
221
+ def check_agent_templates() -> None:
222
+ template_files = [rel for rel in REQUIRED if rel.startswith("agent-templates/") or rel.startswith("docs/")]
223
+ for rel in template_files:
224
+ text = (ROOT / rel).read_text(encoding="utf-8")
225
+ for phrase in ["/ui-ux-master", "UI/UX", "memory", ".ui-ux-master"]:
226
+ if phrase not in text:
227
+ fail(f"{rel} missing required trigger phrase: {phrase}")
228
+ for bad in ["C:\\", "C:/xampp", "C:/Users", "/workspace"]:
229
+ if bad in text:
230
+ fail(f"{rel} contains local absolute path: {bad}")
231
+ docs = (ROOT / "docs/slash-command-compatibility.md").read_text(encoding="utf-8")
232
+ for agent in ["Claude", "Codex", "Windsurf", "Antigravity", "Gemini", "Cursor", "native slash"]:
233
+ if agent not in docs:
234
+ fail(f"slash compatibility docs missing {agent}")
235
+
236
+
237
+ def check_referenced_files_exist() -> None:
238
+ content = SKILL.read_text(encoding="utf-8")
239
+ refs = sorted(set(re.findall(r"`((?:references|templates|agent-templates|docs|bin|scripts)/[^`]+?\.(?:md|mjs|py)|README\.md)`", content)))
240
+ for rel in refs:
241
+ if rel in {"docs/ui-ux-memory.md", "docs/design/ui-ux-memory.md", "design/ui-ux-memory.md"}:
242
+ continue
243
+ if not (ROOT / rel).exists():
244
+ fail(f"SKILL.md references missing file: {rel}")
245
+
246
+
247
+ def check_markdown_links() -> None:
248
+ for path in [ROOT / rel for rel in REQUIRED if rel.endswith(".md")]:
249
+ text = path.read_text(encoding="utf-8")
250
+ for match in re.findall(r"\[[^\]]+\]\(([^)]+)\)", text):
251
+ if match.startswith(("http://", "https://", "mailto:", "#")):
252
+ continue
253
+ target = (path.parent / match.split("#", 1)[0]).resolve()
254
+ if not target.exists():
255
+ fail(f"broken local markdown link in {path.relative_to(ROOT)}: {match}")
256
+
257
+
258
+ def check_release_artifacts(strict: bool) -> None:
259
+ bad_patterns = [
260
+ "**/__pycache__",
261
+ "**/*.pyc",
262
+ "**/.DS_Store",
263
+ "**/Thumbs.db",
264
+ "graphify-out/cache",
265
+ "node_modules",
266
+ "coverage",
267
+ ".nyc_output",
268
+ "*.tgz",
269
+ "npm-debug.log*",
270
+ ]
271
+ found: list[str] = []
272
+ for pattern in bad_patterns:
273
+ for path in ROOT.glob(pattern):
274
+ found.append(str(path.relative_to(ROOT)))
275
+ if found:
276
+ message = "release artifacts found: " + ", ".join(sorted(found)[:20])
277
+ if strict:
278
+ fail(message)
279
+ warn(message)
280
+
281
+
282
+ def main() -> None:
283
+ parser = argparse.ArgumentParser()
284
+ parser.add_argument("--release", action="store_true", help="run stricter deployment packaging checks")
285
+ args = parser.parse_args()
286
+ check_skill_frontmatter_and_body()
287
+ check_required_files()
288
+ check_required_headings()
289
+ check_package_json()
290
+ check_bin_installer()
291
+ check_agent_templates()
292
+ check_referenced_files_exist()
293
+ check_markdown_links()
294
+ check_release_artifacts(strict=args.release)
295
+ print("PASS: UI/UX skill package is valid")
296
+ print(f"Root: {ROOT}")
297
+ print(f"Files checked: {1 + len(REQUIRED)}")
298
+ if args.release:
299
+ print("Release mode: PASS")
300
+
301
+
302
+ if __name__ == "__main__":
303
+ main()
@@ -0,0 +1,127 @@
1
+ # Component Spec
2
+
3
+ ## Component Name
4
+
5
+ ## Purpose
6
+
7
+ What user problem does this component solve?
8
+
9
+ ## Platform and Context
10
+
11
+ - Platform(s): web / iOS / Android / desktop / email / kiosk / other:
12
+ - Existing component to reuse:
13
+ - User task:
14
+ - Accessibility risk level:
15
+
16
+ ## Anatomy
17
+
18
+ - Container:
19
+ - Header/title:
20
+ - Body/content:
21
+ - Leading icon/media:
22
+ - Trailing action:
23
+ - Supporting text:
24
+ - Error/help text:
25
+
26
+ ## Variants
27
+
28
+ - Default:
29
+ - Primary:
30
+ - Secondary:
31
+ - Destructive:
32
+ - Ghost/tertiary:
33
+ - Custom variants:
34
+
35
+ ## Sizes
36
+
37
+ - Small:
38
+ - Medium:
39
+ - Large:
40
+ - Touch target minimum:
41
+
42
+ ## States
43
+
44
+ - Default:
45
+ - Hover:
46
+ - Focus-visible:
47
+ - Active/pressed:
48
+ - Disabled:
49
+ - Loading:
50
+ - Selected/current:
51
+ - Error:
52
+ - Success:
53
+ - Empty/no data:
54
+ - Permission/offline if applicable:
55
+
56
+ ## Behavior
57
+
58
+ - Click/tap:
59
+ - Keyboard:
60
+ - Focus management:
61
+ - Open/close if applicable:
62
+ - Validation if applicable:
63
+ - Async behavior:
64
+ - Escape/back behavior:
65
+
66
+ ## Accessibility
67
+
68
+ - Semantic element/role:
69
+ - Accessible name:
70
+ - ARIA attributes if needed:
71
+ - Keyboard support:
72
+ - Focus indicator:
73
+ - Contrast requirements:
74
+ - Screen reader notes:
75
+ - Reduced motion behavior:
76
+ - Complex-widget pattern reference:
77
+
78
+ ## Content Guidelines
79
+
80
+ - Label style:
81
+ - Length limits:
82
+ - Tone:
83
+ - Examples:
84
+ - Avoid:
85
+ - Localization/text expansion notes:
86
+
87
+ ## Responsive Behavior
88
+
89
+ - Mobile:
90
+ - Tablet:
91
+ - Desktop:
92
+ - Wide:
93
+
94
+ ## Tokens Used
95
+
96
+ - Color:
97
+ - Typography:
98
+ - Spacing:
99
+ - Radius:
100
+ - Elevation:
101
+ - Motion:
102
+
103
+ ## Implementation Notes
104
+
105
+ - Props/API:
106
+ - Data requirements:
107
+ - Events/analytics:
108
+ - Error handling:
109
+ - Tests:
110
+
111
+ ## Acceptance Criteria and Test Matrix
112
+
113
+ | Requirement | Test | Pass Criteria |
114
+ |---|---|---|
115
+ | Default behavior | | |
116
+ | Keyboard behavior | | |
117
+ | Screen-reader behavior | | |
118
+ | Responsive behavior | | |
119
+ | Error/loading/empty states | | |
120
+ | Localization/text expansion | | |
121
+ | Visual regression | | |
122
+
123
+ ## Usage Examples
124
+
125
+ ### Good
126
+
127
+ ### Bad
@@ -0,0 +1,121 @@
1
+ # Design System Spec
2
+
3
+ ## System Overview
4
+
5
+ - Product:
6
+ - Brand personality:
7
+ - Platforms:
8
+ - Accessibility target:
9
+ - Tech stack:
10
+ - Version:
11
+ - Owners:
12
+
13
+ ## Foundations
14
+
15
+ ### Color Tokens
16
+
17
+ | Token | Value | Usage |
18
+ |---|---|---|
19
+ | color.background | | Page background |
20
+ | color.surface | | Cards/panels |
21
+ | color.text.primary | | Main text |
22
+ | color.text.secondary | | Secondary text |
23
+ | color.border | | Default borders |
24
+ | color.primary | | Primary actions |
25
+ | color.danger | | Destructive/status |
26
+ | color.focus | | Focus indicator |
27
+
28
+ ### Typography Tokens
29
+
30
+ | Token | Size | Line height | Weight | Usage |
31
+ |---|---:|---:|---:|---|
32
+ | text.h1 | | | | |
33
+ | text.h2 | | | | |
34
+ | text.body | | | | |
35
+ | text.label | | | | |
36
+ | text.caption | | | | |
37
+
38
+ ### Spacing Tokens
39
+
40
+ | Token | Value | Usage |
41
+ |---|---:|---|
42
+ | space.1 | 4px | Tight gaps |
43
+ | space.2 | 8px | Small gaps |
44
+ | space.3 | 12px | Component internals |
45
+ | space.4 | 16px | Default gaps |
46
+ | space.6 | 24px | Section gaps |
47
+ | space.8 | 32px | Page/module gaps |
48
+
49
+ ### Radius, Elevation, Motion
50
+
51
+ | Token | Value | Usage |
52
+ |---|---|---|
53
+ | radius.sm | | |
54
+ | radius.md | | |
55
+ | radius.lg | | |
56
+ | shadow.sm | | |
57
+ | shadow.md | | |
58
+ | motion.fast | 120ms | Simple feedback |
59
+ | motion.base | 180ms | Default transition |
60
+
61
+ ### Content, Localization, and Data Visualization Tokens
62
+
63
+ - Voice/tone rules:
64
+ - Error/empty/success copy patterns:
65
+ - Locale and RTL rules:
66
+ - Number/date/currency formats:
67
+ - Chart color semantics:
68
+ - Data density options:
69
+
70
+ ## Components
71
+
72
+ For each component, include purpose, anatomy, variants, sizes, states, accessibility, content rules, responsive behavior, platform variants, acceptance criteria, and examples.
73
+
74
+ ### Button
75
+
76
+ ### Input
77
+
78
+ ### Select/Combobox
79
+
80
+ ### Checkbox/Radio/Switch
81
+
82
+ ### Modal/Dialog
83
+
84
+ ### Toast/Alert
85
+
86
+ ### Card
87
+
88
+ ### Table/Data Grid
89
+
90
+ ### Navigation
91
+
92
+ ### Empty State
93
+
94
+ ### Chart/Data Visualization
95
+
96
+ ## Patterns
97
+
98
+ - Onboarding:
99
+ - Search/filter:
100
+ - Create/edit forms:
101
+ - Destructive actions:
102
+ - Permissions:
103
+ - Loading and error recovery:
104
+ - Notifications:
105
+ - Checkout/payment if relevant:
106
+ - Dashboard drill-down if relevant:
107
+ - AI disclosure if relevant:
108
+
109
+ ## Governance
110
+
111
+ - Contribution process:
112
+ - Naming conventions:
113
+ - Versioning:
114
+ - Changelog:
115
+ - Deprecation process:
116
+ - Accessibility review process:
117
+ - Content/i18n review process:
118
+ - Platform variant review process:
119
+ - Token release process:
120
+ - Visual regression process:
121
+ - Owner/approver:
@@ -0,0 +1,133 @@
1
+ # Top-Brand Frontend Spec Template
2
+
3
+ Use this when the user wants a frontend that feels as polished as leading global brands without copying any single brand exactly.
4
+
5
+ ## 1. Product Context
6
+
7
+ - Product name:
8
+ - Category:
9
+ - Primary user:
10
+ - Primary task:
11
+ - Business goal:
12
+ - Platform:
13
+ - Evidence confidence:
14
+
15
+ ## 2. Brand-Inspiration Blend
16
+
17
+ Choose 2-3 compatible methods from `references/top-100-brand-website-analysis.md`.
18
+
19
+ - Primary method:
20
+ - Secondary method:
21
+ - Optional accent method:
22
+
23
+ Example blends:
24
+
25
+ - Premium SaaS: Apple Product Cinema + Stripe/Adobe ecosystem clarity + IBM technical authority.
26
+ - Ecommerce marketplace: Amazon utility + Airbnb card discovery + Target friendly retail.
27
+ - Luxury product: Chanel restraint + Cartier detail + Apple product cinema.
28
+ - Developer tool: IBM/NVIDIA technical authority + Vercel minimal precision + Linear dashboard discipline.
29
+ - Food ordering: McDonald's/KFC direct ordering + Domino's tracking utility + Burger King playful brand.
30
+
31
+ ## 3. UX Structure
32
+
33
+ - Primary entry point:
34
+ - Main CTA:
35
+ - Secondary CTA:
36
+ - Navigation model:
37
+ - Key sections:
38
+ 1.
39
+ 2.
40
+ 3.
41
+ 4.
42
+ 5.
43
+
44
+ ## 4. Layout Rules
45
+
46
+ - Hero layout:
47
+ - Grid system:
48
+ - Card style:
49
+ - Section rhythm:
50
+ - Sticky/persistent elements:
51
+ - Mobile behavior:
52
+ - Platform-specific behavior:
53
+
54
+ ## 5. Visual Language
55
+
56
+ - Brand personality:
57
+ - Color strategy:
58
+ - Typography strategy:
59
+ - Spacing density:
60
+ - Radius/elevation:
61
+ - Icon/imagery style:
62
+ - Motion style:
63
+
64
+ ## 6. Components
65
+
66
+ - Header/nav:
67
+ - Hero:
68
+ - CTA buttons:
69
+ - Cards:
70
+ - Forms/search:
71
+ - Tables/lists if needed:
72
+ - Testimonials/proof:
73
+ - Pricing/comparison if needed:
74
+ - Footer:
75
+
76
+ ## 7. States
77
+
78
+ - Loading:
79
+ - Empty:
80
+ - Error:
81
+ - Success:
82
+ - Disabled:
83
+ - Hover/focus/active:
84
+ - Mobile menu:
85
+ - Offline/permission/partial data if relevant:
86
+
87
+ ## 8. Accessibility
88
+
89
+ - Semantic structure:
90
+ - Keyboard behavior:
91
+ - Focus states:
92
+ - Contrast:
93
+ - Reduced motion:
94
+ - Labels and error messages:
95
+ - Complex widget behavior:
96
+
97
+ ## 9. Copy System
98
+
99
+ - H1:
100
+ - Value proposition:
101
+ - Primary CTA label:
102
+ - Secondary CTA label:
103
+ - Proof line:
104
+ - Empty-state copy:
105
+ - Error copy:
106
+ - Localization/text expansion notes:
107
+
108
+ ## 10. Implementation Notes
109
+
110
+ - Existing framework/components:
111
+ - CSS approach:
112
+ - Token names:
113
+ - Data requirements:
114
+ - Analytics events:
115
+ - QA checks:
116
+
117
+ ## 11. Quality Gates
118
+
119
+ - Primary task success criteria:
120
+ - Accessibility gate:
121
+ - Responsive/platform gate:
122
+ - Performance perception gate:
123
+ - Content/i18n gate:
124
+ - Ethics/privacy gate:
125
+
126
+ ## 12. Do Not Copy
127
+
128
+ - Do not copy brand logos.
129
+ - Do not copy exact trademarked color combinations unless the user owns the brand.
130
+ - Do not copy proprietary images or illustrations.
131
+ - Do not copy exact page layouts pixel-for-pixel.
132
+ - Extract reusable principles instead: hierarchy, spacing, structure, behavior, tone.
133
+ - Verify current brand/site claims before citing them as facts.