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,146 @@
1
+ # UI/UX Audit Report
2
+
3
+ ## Executive Summary
4
+
5
+ - Overall score:
6
+ - Top strengths:
7
+ - Top risks:
8
+ - Highest-impact recommendation:
9
+ - Evidence confidence: high / medium / low:
10
+
11
+ ## Scope
12
+
13
+ - Screens/pages reviewed:
14
+ - User goal reviewed:
15
+ - Devices/viewports reviewed:
16
+ - Platform conventions reviewed:
17
+ - Evidence used:
18
+
19
+ ## Scorecard
20
+
21
+ | Area | Score 1-5 | Evidence Confidence | Notes |
22
+ |---|---:|---|---|
23
+ | Clarity | | | |
24
+ | Hierarchy | | | |
25
+ | Flow | | | |
26
+ | Content design | | | |
27
+ | Accessibility | | | |
28
+ | Consistency | | | |
29
+ | Responsiveness | | | |
30
+ | Feedback/states | | | |
31
+ | Trust | | | |
32
+ | Platform fit | | | |
33
+ | Internationalization/content resilience | | | |
34
+ | Ethics/privacy/dark-pattern risk | | | |
35
+ | Performance perception | | | |
36
+ | Conversion/task success | | | |
37
+ | Data visualization/dashboard UX if applicable | | | |
38
+ | Implementation readiness | | | |
39
+
40
+ ## Heuristic Findings
41
+
42
+ | Location | Heuristic/Principle | Severity | Evidence | Recommendation |
43
+ |---|---|---|---|---|
44
+ | | | | | |
45
+
46
+ ## Severity-Ranked Findings
47
+
48
+ ### Critical
49
+
50
+ 1. Finding:
51
+ - Heuristic/WCAG/platform rule:
52
+ - Evidence:
53
+ - Evidence confidence:
54
+ - Impact:
55
+ - Recommendation:
56
+ - Acceptance criteria:
57
+
58
+ ### High
59
+
60
+ 1. Finding:
61
+ - Heuristic/WCAG/platform rule:
62
+ - Evidence:
63
+ - Evidence confidence:
64
+ - Impact:
65
+ - Recommendation:
66
+ - Acceptance criteria:
67
+
68
+ ### Medium
69
+
70
+ 1. Finding:
71
+ - Heuristic/WCAG/platform rule:
72
+ - Evidence:
73
+ - Evidence confidence:
74
+ - Impact:
75
+ - Recommendation:
76
+ - Acceptance criteria:
77
+
78
+ ### Low
79
+
80
+ 1. Finding:
81
+ - Heuristic/WCAG/platform rule:
82
+ - Evidence:
83
+ - Evidence confidence:
84
+ - Impact:
85
+ - Recommendation:
86
+ - Acceptance criteria:
87
+
88
+ ## Measured Evidence and Quality Gates
89
+
90
+ - Primary task success metric:
91
+ - Accessibility gate:
92
+ - Responsive/platform gate:
93
+ - Performance perception gate:
94
+ - Analytics/events needed:
95
+ - Usability validation recommended:
96
+
97
+ ## Quick Wins
98
+
99
+ - [ ] Quick win 1:
100
+ - [ ] Quick win 2:
101
+ - [ ] Quick win 3:
102
+
103
+ ## Recommended Revised Structure
104
+
105
+ - Header/nav:
106
+ - Main content:
107
+ - Primary CTA:
108
+ - Secondary actions:
109
+ - Supporting content:
110
+ - Footer/persistent actions:
111
+
112
+ ## Copy Improvements
113
+
114
+ | Current | Suggested | Reason |
115
+ |---|---|---|
116
+ | | | |
117
+
118
+ ## Accessibility Fixes
119
+
120
+ - [ ] Contrast:
121
+ - [ ] Keyboard:
122
+ - [ ] Focus:
123
+ - [ ] Labels:
124
+ - [ ] Semantics:
125
+ - [ ] Motion:
126
+ - [ ] Complex widgets/ARIA:
127
+
128
+ ## Responsive and Platform Fixes
129
+
130
+ - Mobile:
131
+ - Tablet:
132
+ - Desktop:
133
+ - Wide:
134
+ - Native/platform convention issues:
135
+
136
+ ## QA Checklist
137
+
138
+ - [ ] Main user task succeeds.
139
+ - [ ] Keyboard-only task succeeds.
140
+ - [ ] Screen reader labels are meaningful.
141
+ - [ ] Loading, empty, error, success states are present.
142
+ - [ ] Mobile layout works at 320px.
143
+ - [ ] Text contrast meets WCAG AA.
144
+ - [ ] Platform conventions are respected.
145
+ - [ ] Content survives expected localization/text expansion.
146
+ - [ ] No dark patterns or unclear privacy/permission prompts remain.
@@ -0,0 +1,86 @@
1
+ # UI/UX Brief
2
+
3
+ ## Project
4
+
5
+ - Product/project name:
6
+ - Platform: web / iOS / Android / desktop / email / kiosk / TV / wearable / other:
7
+ - Existing URL/app/repo:
8
+ - Stage: idea / MVP / beta / production / redesign
9
+ - UI/UX memory location if available:
10
+
11
+ ## Goal
12
+
13
+ - Primary user goal:
14
+ - Business goal:
15
+ - Success metric:
16
+ - Guardrail metric:
17
+ - Deadline or scope limit:
18
+
19
+ ## Users
20
+
21
+ - Primary users:
22
+ - Secondary users:
23
+ - User jobs-to-be-done:
24
+ - Context of use:
25
+ - Accessibility needs:
26
+ - Device, input, bandwidth, stress, and environment constraints:
27
+
28
+ ## Current Problem
29
+
30
+ - What is not working now:
31
+ - Evidence: analytics, support tickets, screenshots, feedback, stakeholder opinion:
32
+ - Research confidence: high / medium / low / assumption only:
33
+ - Main friction points:
34
+ - Unknowns that require research:
35
+
36
+ ## Research and Evidence Plan
37
+
38
+ - Research objective:
39
+ - Method: interview / survey / analytics / usability test / card sort / tree test / heuristic review / accessibility test / other:
40
+ - Participants or evidence source:
41
+ - Consent/privacy notes:
42
+ - Expected output:
43
+
44
+ ## Constraints
45
+
46
+ - Brand/design system:
47
+ - Tech stack:
48
+ - Devices/browsers:
49
+ - Platform conventions to follow:
50
+ - Compliance/legal:
51
+ - Ethics/privacy/safety risks:
52
+ - Content/localization: locales, languages, RTL, reading level, legal copy:
53
+ - Must keep:
54
+ - Must avoid:
55
+
56
+ ## Competitive/Reference Direction
57
+
58
+ - Products liked:
59
+ - Products disliked:
60
+ - Desired personality:
61
+ - What to extract as method, not copy:
62
+
63
+ ## Deliverables Needed
64
+
65
+ - UX strategy:
66
+ - IA/site map:
67
+ - User flows:
68
+ - Journey map/service blueprint:
69
+ - Wireframes:
70
+ - Visual direction:
71
+ - Prototype:
72
+ - Design system:
73
+ - Accessibility audit:
74
+ - Usability test plan:
75
+ - Developer handoff:
76
+ - Measurement/quality gates:
77
+
78
+ ## Assumptions
79
+
80
+ - Assumption 1:
81
+ - Assumption 2:
82
+
83
+ ## Open Questions
84
+
85
+ - Question 1:
86
+ - Question 2:
@@ -0,0 +1,204 @@
1
+ # UI/UX Memory
2
+
3
+ This file stores stable UI/UX and branding decisions for this application. Read this before creating or modifying frontend. Update it only with durable design-system decisions.
4
+
5
+ ## Product Summary
6
+
7
+ - Product name:
8
+ - Product type:
9
+ - Primary platform:
10
+ - One-sentence promise:
11
+
12
+ ## Target Users and Jobs
13
+
14
+ - Primary users:
15
+ - Primary job-to-be-done:
16
+ - Secondary users/jobs:
17
+ - Main success moment:
18
+
19
+ ## Brand Personality
20
+
21
+ - Personality keywords:
22
+ - Trust level needed:
23
+ - Emotional tone:
24
+ - Should feel like:
25
+ - Should not feel like:
26
+
27
+ ## Design Method Blend
28
+
29
+ Use methods from `top-100-brand-website-analysis.md`.
30
+
31
+ - Primary method:
32
+ - Supporting method 1:
33
+ - Supporting method 2:
34
+ - Rationale:
35
+
36
+ ## Existing Branding Baseline
37
+
38
+ - Logo/wordmark:
39
+ - Current color scheme:
40
+ - Current fonts:
41
+ - Current layout style:
42
+ - Current component style:
43
+ - Current tone of voice:
44
+ - Screens/components used as baseline:
45
+
46
+ ## Design Tokens
47
+
48
+ ### Colors
49
+
50
+ | Token | Value | Usage |
51
+ |---|---|---|
52
+ | color.background | | |
53
+ | color.surface | | |
54
+ | color.surface-muted | | |
55
+ | color.text-primary | | |
56
+ | color.text-secondary | | |
57
+ | color.border | | |
58
+ | color.primary | | |
59
+ | color.primary-hover | | |
60
+ | color.secondary | | |
61
+ | color.success | | |
62
+ | color.warning | | |
63
+ | color.danger | | |
64
+ | color.focus | | |
65
+
66
+ ### Typography
67
+
68
+ | Token | Value | Usage |
69
+ |---|---|---|
70
+ | font.primary | | |
71
+ | font.mono | | |
72
+ | text.display | | |
73
+ | text.h1 | | |
74
+ | text.h2 | | |
75
+ | text.h3 | | |
76
+ | text.body | | |
77
+ | text.body-sm | | |
78
+ | text.label | | |
79
+ | text.caption | | |
80
+
81
+ ### Spacing and Layout
82
+
83
+ - Spacing scale:
84
+ - Container max width:
85
+ - Page padding:
86
+ - Section spacing:
87
+ - Grid columns/gaps:
88
+ - Mobile layout rules:
89
+
90
+ ### Shape, Elevation, Motion
91
+
92
+ - Radius scale:
93
+ - Shadow/elevation style:
94
+ - Border style:
95
+ - Motion duration/easing:
96
+ - Reduced motion behavior:
97
+
98
+ ## Component Rules
99
+
100
+ ### Buttons
101
+
102
+ - Primary:
103
+ - Secondary:
104
+ - Tertiary/ghost:
105
+ - Destructive:
106
+ - Disabled/loading:
107
+
108
+ ### Forms
109
+
110
+ - Input style:
111
+ - Label style:
112
+ - Helper text:
113
+ - Validation style:
114
+ - Error copy style:
115
+
116
+ ### Cards/Panels
117
+
118
+ - Card structure:
119
+ - Padding:
120
+ - Border/elevation:
121
+ - Hover/focus behavior:
122
+
123
+ ### Navigation
124
+
125
+ - Header/sidebar style:
126
+ - Current state:
127
+ - Mobile behavior:
128
+
129
+ ### Tables/Lists
130
+
131
+ - Density:
132
+ - Sorting/filtering:
133
+ - Empty/loading/error:
134
+ - Mobile behavior:
135
+
136
+ ### Modals/Drawers/Popovers
137
+
138
+ - Usage rule:
139
+ - Focus behavior:
140
+ - Close behavior:
141
+ - Mobile behavior:
142
+
143
+ ## Interaction and State Rules
144
+
145
+ - Loading:
146
+ - Empty:
147
+ - Error:
148
+ - Success:
149
+ - Disabled:
150
+ - Permission denied:
151
+ - Offline/network:
152
+ - Hover/focus/active:
153
+
154
+ ## Accessibility Rules
155
+
156
+ - WCAG target:
157
+ - Focus indicator:
158
+ - Contrast requirements:
159
+ - Keyboard rules:
160
+ - Screen reader rules:
161
+ - Touch target rules:
162
+ - Motion rules:
163
+
164
+ ## Content and Microcopy Voice
165
+
166
+ - Voice:
167
+ - CTA style:
168
+ - Error style:
169
+ - Empty-state style:
170
+ - Confirmation style:
171
+ - Words to use:
172
+ - Words to avoid:
173
+
174
+ ## Responsive Rules
175
+
176
+ - 320px:
177
+ - 375px:
178
+ - 768px:
179
+ - 1024px:
180
+ - 1440px:
181
+
182
+ ## Do / Don't
183
+
184
+ ### Do
185
+
186
+ -
187
+
188
+ ### Don't
189
+
190
+ -
191
+
192
+ ## Local Exceptions
193
+
194
+ Use this only for intentional one-off deviations.
195
+
196
+ | Area | Exception | Reason | Date |
197
+ |---|---|---|---|
198
+ | | | | |
199
+
200
+ ## Design Decision Change Log
201
+
202
+ | Date | Decision | Reason | Scope |
203
+ |---|---|---|---|
204
+ | | | | |
@@ -0,0 +1,71 @@
1
+ import assert from 'node:assert/strict';
2
+ import fs from 'node:fs';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import { execFileSync } from 'node:child_process';
6
+ import test from 'node:test';
7
+
8
+ const root = path.resolve(import.meta.dirname, '..');
9
+ const bin = path.join(root, 'bin', 'ui-ux-master.mjs');
10
+ const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8'));
11
+ const templates = [
12
+ 'agent-templates/claude/commands/ui-ux-master.md',
13
+ 'agent-templates/universal/ui-ux-master-trigger.md',
14
+ 'agent-templates/codex/AGENTS.append.md',
15
+ 'agent-templates/windsurf/rules/ui-ux-master.md',
16
+ 'agent-templates/antigravity/AGENTS.append.md',
17
+ 'agent-templates/gemini/GEMINI.append.md',
18
+ 'agent-templates/cursor/rules/ui-ux-master.mdc',
19
+ ];
20
+
21
+ function run(args, cwd = root) {
22
+ return execFileSync(process.execPath, [bin, ...args], { cwd, encoding: 'utf8' });
23
+ }
24
+
25
+ test('package exposes ui-ux-master bin', () => {
26
+ assert.equal(pkg.bin['ui-ux-master'], './bin/ui-ux-master.mjs');
27
+ assert.ok(fs.existsSync(bin));
28
+ assert.ok(fs.readFileSync(bin, 'utf8').startsWith('#!/usr/bin/env node'));
29
+ });
30
+
31
+ test('agent templates include trigger and avoid local absolute paths', () => {
32
+ for (const rel of templates) {
33
+ const text = fs.readFileSync(path.join(root, rel), 'utf8');
34
+ assert.match(text, /\/ui-ux-master/);
35
+ assert.match(text, /\.ui-ux-master\/SKILL\.md|\.ui-ux-master\/|\.ui-ux-master/);
36
+ assert.match(text, /UI\/UX|ui-ux-master/i);
37
+ assert.doesNotMatch(text, /C:\\|C:\/xampp|C:\/Users|\/workspace/);
38
+ }
39
+ });
40
+
41
+ test('cli help doctor and where work', () => {
42
+ assert.match(run(['--help']), /ui-ux-master install/);
43
+ assert.match(run(['where']).trim(), /UI-UX Skills|ui-ux-master/i);
44
+ assert.match(run(['doctor', '--dry-run']), /trigger: \/ui-ux-master/);
45
+ });
46
+
47
+ test('project install dry-run does not write', () => {
48
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'ui-ux-master-dry-'));
49
+ fs.writeFileSync(path.join(dir, 'package.json'), '{}');
50
+ const out = run(['install', '--project', '--dry-run', '--dir', dir]);
51
+ assert.match(out, /dry-run/);
52
+ assert.equal(fs.existsSync(path.join(dir, 'AGENTS.md')), false);
53
+ });
54
+
55
+ test('project install writes expected files and is idempotent', () => {
56
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'ui-ux-master-install-'));
57
+ fs.writeFileSync(path.join(dir, 'package.json'), '{}');
58
+ run(['install', '--project', '--dir', dir]);
59
+ run(['install', '--project', '--dir', dir]);
60
+ assert.ok(fs.existsSync(path.join(dir, '.ui-ux-master', 'SKILL.md')));
61
+ assert.ok(fs.existsSync(path.join(dir, '.ui-ux-master', 'references', 'ui-ux-memory-workflow.md')));
62
+ assert.ok(fs.existsSync(path.join(dir, '.ui-ux-master', 'templates', 'ui-ux-memory.md')));
63
+ assert.ok(fs.existsSync(path.join(dir, '.claude', 'commands', 'ui-ux-master.md')));
64
+ assert.ok(fs.existsSync(path.join(dir, 'AGENTS.md')));
65
+ assert.ok(fs.existsSync(path.join(dir, '.windsurf', 'rules', 'ui-ux-master.md')));
66
+ assert.ok(fs.existsSync(path.join(dir, 'GEMINI.md')));
67
+ const agents = fs.readFileSync(path.join(dir, 'AGENTS.md'), 'utf8');
68
+ assert.equal((agents.match(/ui-ux-master:start/g) || []).length, 1);
69
+ assert.match(agents, /\.ui-ux-master\/SKILL\.md/);
70
+ assert.match(agents, /\/ui-ux-master/);
71
+ });