oxycode-skills 1.0.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 (30) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +143 -0
  3. package/index.js +17 -0
  4. package/package.json +49 -0
  5. package/skills/anti-slop/README.md +106 -0
  6. package/skills/anti-slop/SKILL.md +311 -0
  7. package/skills/anti-slop/examples/before-after.md +380 -0
  8. package/skills/anti-slop/references/quality-rubric.md +313 -0
  9. package/skills/anti-slop/references/slop-patterns.md +433 -0
  10. package/skills/component-architect/README.md +186 -0
  11. package/skills/component-architect/SKILL.md +644 -0
  12. package/skills/component-architect/examples/component-patterns.md +569 -0
  13. package/skills/component-architect/references/atomic-design.md +516 -0
  14. package/skills/design-audit/README.md +114 -0
  15. package/skills/design-audit/SKILL.md +305 -0
  16. package/skills/design-audit/examples/audit-report.md +424 -0
  17. package/skills/design-audit/references/scoring-rubric.md +498 -0
  18. package/skills/design-md/README.md +106 -0
  19. package/skills/design-md/SKILL.md +262 -0
  20. package/skills/design-md/examples/bad-design.md +195 -0
  21. package/skills/design-md/examples/good-design.md +250 -0
  22. package/skills/design-md/references/design-md-spec.md +267 -0
  23. package/skills/design-md/scripts/validate.sh +134 -0
  24. package/skills/ui-builder/README.md +169 -0
  25. package/skills/ui-builder/SKILL.md +357 -0
  26. package/skills/ui-builder/examples/dashboard.md +323 -0
  27. package/skills/ui-builder/examples/landing-page.md +396 -0
  28. package/skills/ui-builder/references/component-patterns.md +396 -0
  29. package/skills/ui-builder/references/layout-system.md +423 -0
  30. package/skills/ui-builder/references/polish-checklist.md +221 -0
@@ -0,0 +1,380 @@
1
+ # Before & After: AI Slop vs Vercel-Quality
2
+
3
+ ## Example 1: Hero Section
4
+
5
+ ### ❌ Before (AI Slop)
6
+ ```tsx
7
+ <div className="min-h-screen bg-gradient-to-br from-purple-900 via-blue-900 to-indigo-900 flex items-center justify-center p-8">
8
+ <div className="bg-white/10 backdrop-blur-lg rounded-3xl p-8 text-center max-w-md border border-white/20">
9
+ <div className="w-20 h-20 bg-gradient-to-br from-purple-500 to-blue-500 rounded-full flex items-center justify-center mx-auto mb-6">
10
+ <Star className="w-10 h-10 text-white" />
11
+ </div>
12
+ <h1 className="text-4xl font-bold text-white mb-4 tracking-tight">
13
+ Welcome to the Future
14
+ </h1>
15
+ <p className="text-purple-200 mb-8 leading-relaxed">
16
+ Experience the next generation of innovation
17
+ </p>
18
+ <button className="bg-gradient-to-r from-purple-500 to-blue-500 text-white px-8 py-4 rounded-full text-lg font-semibold hover:scale-110 transition-transform duration-500 shadow-xl hover:shadow-2xl">
19
+ Get Started Free
20
+ </button>
21
+ </div>
22
+ </div>
23
+ ```
24
+
25
+ **Issues:**
26
+ - ❌ Purple/blue gradient background
27
+ - ❌ Backdrop blur glassmorphism
28
+ - ❌ Centered everything
29
+ - ❌ Rainbow gradient button
30
+ - ❌ Hover scale animation
31
+ - ❌ Oversized border radius (3xl, full)
32
+ - ❌ Generic "Welcome to the Future"
33
+
34
+ ### ✅ After (Vercel-Quality)
35
+ ```tsx
36
+ <div className="min-h-screen bg-zinc-950 flex items-center justify-center px-6">
37
+ <div className="max-w-2xl">
38
+ <div className="inline-flex items-center gap-2 px-3 py-1 bg-zinc-900 border border-zinc-800 rounded-full text-sm text-zinc-400 mb-6">
39
+ <span className="w-2 h-2 bg-green-500 rounded-full animate-pulse" />
40
+ Now in public beta
41
+ </div>
42
+
43
+ <h1 className="text-4xl sm:text-5xl font-semibold text-zinc-100 tracking-tight">
44
+ Build faster with modern tools
45
+ </h1>
46
+
47
+ <p className="mt-6 text-lg text-zinc-400 max-w-xl">
48
+ The all-in-one platform that helps teams ship products faster.
49
+ Automate your workflow and focus on what matters.
50
+ </p>
51
+
52
+ <div className="mt-10 flex flex-col sm:flex-row items-start gap-4">
53
+ <button className="px-6 py-3 text-sm font-medium text-zinc-900 bg-zinc-100 rounded-lg hover:bg-white transition-colors">
54
+ Start for free
55
+ </button>
56
+ <button className="px-6 py-3 text-sm font-medium text-zinc-400 hover:text-zinc-100 transition-colors">
57
+ Learn more →
58
+ </button>
59
+ </div>
60
+
61
+ <p className="mt-4 text-sm text-zinc-500">
62
+ No credit card required • 14-day free trial
63
+ </p>
64
+ </div>
65
+ </div>
66
+ ```
67
+
68
+ **Improvements:**
69
+ - ✅ Solid zinc background
70
+ - ✅ No glassmorphism
71
+ - ✅ Left-aligned text
72
+ - ✅ Solid color button
73
+ - ✅ Subtle hover effect
74
+ - ✅ Appropriate border radius
75
+ - ✅ Realistic content
76
+
77
+ ---
78
+
79
+ ## Example 2: Card Component
80
+
81
+ ### ❌ Before (AI Slop)
82
+ ```tsx
83
+ <div className="bg-gradient-to-br from-white to-gray-50 p-8 rounded-3xl shadow-2xl hover:shadow-3xl hover:scale-105 transition-all duration-500 border border-gray-100">
84
+ <div className="w-16 h-16 bg-gradient-to-br from-purple-500 to-blue-500 rounded-2xl flex items-center justify-center mb-6">
85
+ <Zap className="w-8 h-8 text-white" />
86
+ </div>
87
+ <h3 className="text-2xl font-bold text-gray-900 mb-3 text-center">
88
+ Lightning Fast
89
+ </h3>
90
+ <p className="text-gray-500 text-center leading-relaxed mb-6">
91
+ Built for speed with modern technologies
92
+ </p>
93
+ <button className="w-full bg-gradient-to-r from-purple-500 to-blue-500 text-white py-3 rounded-xl font-medium hover:from-purple-600 hover:to-blue-600 transition-all">
94
+ Learn More
95
+ </button>
96
+ </div>
97
+ ```
98
+
99
+ **Issues:**
100
+ - ❌ Gradient background
101
+ - ❌ Shadow overload (2xl, 3xl)
102
+ - ❌ Hover scale + shadow
103
+ - ❌ Gradient icon background
104
+ - ❌ Gradient button
105
+ - ❌ Centered text
106
+ - ❌ Oversized radius (3xl, 2xl, xl)
107
+
108
+ ### ✅ After (Vercel-Quality)
109
+ ```tsx
110
+ <div className="bg-white border border-zinc-200 rounded-lg p-6">
111
+ <div className="w-10 h-10 bg-zinc-900 rounded-lg flex items-center justify-center">
112
+ <Zap className="w-5 h-5 text-white" />
113
+ </div>
114
+
115
+ <h3 className="mt-4 text-lg font-semibold text-zinc-900">
116
+ Lightning Fast
117
+ </h3>
118
+
119
+ <p className="mt-2 text-sm text-zinc-500">
120
+ Built for speed with modern technologies
121
+ </p>
122
+
123
+ <button className="mt-4 w-full px-4 py-2 text-sm font-medium text-white bg-zinc-900 rounded-lg hover:bg-zinc-800 transition-colors">
124
+ Learn More
125
+ </button>
126
+ </div>
127
+ ```
128
+
129
+ **Improvements:**
130
+ - ✅ Solid background
131
+ - ✅ Border instead of shadow
132
+ - ✅ No hover transform
133
+ - ✅ Solid icon background
134
+ - ✅ Solid button
135
+ - ✅ Left-aligned text
136
+ - ✅ Appropriate radius (lg)
137
+
138
+ ---
139
+
140
+ ## Example 3: Navigation
141
+
142
+ ### ❌ Before (AI Slop)
143
+ ```tsx
144
+ <nav className="bg-white/80 backdrop-blur-xl border-b border-gray-100 sticky top-0 z-50">
145
+ <div className="max-w-7xl mx-auto px-8 py-4 flex items-center justify-between">
146
+ <div className="flex items-center gap-3">
147
+ <div className="w-10 h-10 bg-gradient-to-br from-purple-500 to-blue-500 rounded-xl flex items-center justify-center">
148
+ <span className="text-white font-bold">A</span>
149
+ </div>
150
+ <span className="text-2xl font-bold bg-gradient-to-r from-purple-600 to-blue-600 bg-clip-text text-transparent">
151
+ AppName
152
+ </span>
153
+ </div>
154
+
155
+ <div className="hidden md:flex items-center gap-8">
156
+ <a href="#" className="text-gray-600 hover:text-purple-600 transition-colors font-medium">
157
+ Features
158
+ </a>
159
+ <a href="#" className="text-gray-600 hover:text-purple-600 transition-colors font-medium">
160
+ Pricing
161
+ </a>
162
+ <a href="#" className="text-gray-600 hover:text-purple-600 transition-colors font-medium">
163
+ About
164
+ </a>
165
+ </div>
166
+
167
+ <button className="bg-gradient-to-r from-purple-500 to-blue-500 text-white px-6 py-2 rounded-full font-medium hover:scale-105 transition-transform">
168
+ Sign Up
169
+ </button>
170
+ </div>
171
+ </nav>
172
+ ```
173
+
174
+ **Issues:**
175
+ - ❌ Backdrop blur
176
+ - ❌ Gradient logo
177
+ - ❌ Gradient text
178
+ - ❌ Gradient button
179
+ - ❌ Hover scale
180
+ - ❌ Purple hover colors
181
+ - ❌ Oversized radius (xl, full)
182
+
183
+ ### ✅ After (Vercel-Quality)
184
+ ```tsx
185
+ <nav className="sticky top-0 z-50 border-b border-zinc-200 bg-white">
186
+ <div className="max-w-7xl mx-auto px-6 h-16 flex items-center justify-between">
187
+ <div className="flex items-center gap-2">
188
+ <div className="w-8 h-8 bg-zinc-900 rounded-lg flex items-center justify-center">
189
+ <span className="text-white text-sm font-bold">A</span>
190
+ </div>
191
+ <span className="text-xl font-bold text-zinc-900">AppName</span>
192
+ </div>
193
+
194
+ <div className="hidden md:flex items-center gap-8">
195
+ <a href="#" className="text-sm text-zinc-600 hover:text-zinc-900 transition-colors">
196
+ Features
197
+ </a>
198
+ <a href="#" className="text-sm text-zinc-600 hover:text-zinc-900 transition-colors">
199
+ Pricing
200
+ </a>
201
+ <a href="#" className="text-sm text-zinc-600 hover:text-zinc-900 transition-colors">
202
+ About
203
+ </a>
204
+ </div>
205
+
206
+ <button className="px-4 py-2 text-sm font-medium text-white bg-zinc-900 rounded-lg hover:bg-zinc-800 transition-colors">
207
+ Sign Up
208
+ </button>
209
+ </div>
210
+ </nav>
211
+ ```
212
+
213
+ **Improvements:**
214
+ - ✅ No backdrop blur
215
+ - ✅ Solid logo
216
+ - ✅ Regular text
217
+ - ✅ Solid button
218
+ - ✅ Subtle hover
219
+ - ✅ Zinc hover colors
220
+ - ✅ Appropriate radius (lg)
221
+
222
+ ---
223
+
224
+ ## Example 4: Pricing Card
225
+
226
+ ### ❌ Before (AI Slop)
227
+ ```tsx
228
+ <div className="bg-gradient-to-br from-purple-600 to-blue-600 p-8 rounded-3xl text-white relative overflow-hidden">
229
+ <div className="absolute top-0 right-0 w-32 h-32 bg-white/10 rounded-full -mr-16 -mt-16" />
230
+ <div className="absolute bottom-0 left-0 w-24 h-24 bg-white/10 rounded-full -ml-12 -mb-12" />
231
+
232
+ <span className="inline-block px-4 py-1 bg-white/20 rounded-full text-sm font-medium mb-4">
233
+ Most Popular
234
+ </span>
235
+
236
+ <h3 className="text-2xl font-bold mb-2">Pro Plan</h3>
237
+ <p className="text-purple-100 mb-6">Perfect for growing teams</p>
238
+
239
+ <div className="mb-6">
240
+ <span className="text-5xl font-bold">$29</span>
241
+ <span className="text-purple-200">/month</span>
242
+ </div>
243
+
244
+ <ul className="space-y-3 mb-8">
245
+ <li className="flex items-center gap-3">
246
+ <Check className="w-5 h-5 text-green-300" />
247
+ <span>10,000 API calls</span>
248
+ </li>
249
+ <li className="flex items-center gap-3">
250
+ <Check className="w-5 h-5 text-green-300" />
251
+ <span>Advanced analytics</span>
252
+ </li>
253
+ </ul>
254
+
255
+ <button className="w-full bg-white text-purple-600 py-3 rounded-xl font-semibold hover:scale-105 transition-transform">
256
+ Get Started
257
+ </button>
258
+ </div>
259
+ ```
260
+
261
+ **Issues:**
262
+ - ❌ Gradient background
263
+ - ❌ Decorative circles (fake depth)
264
+ - ❌ Gradient text
265
+ - ❌ Hover scale
266
+ - ❌ Oversized radius (3xl, xl)
267
+ - ❌ Too many visual effects
268
+
269
+ ### ✅ After (Vercel-Quality)
270
+ ```tsx
271
+ <div className="bg-zinc-900 p-8 rounded-xl text-white relative">
272
+ <div className="absolute -top-3 left-1/2 -translate-x-1/2 px-3 py-1 bg-zinc-900 text-white text-xs font-medium rounded-full border border-zinc-700">
273
+ Most popular
274
+ </div>
275
+
276
+ <h3 className="text-lg font-semibold">Pro Plan</h3>
277
+ <p className="mt-2 text-sm text-zinc-400">For growing teams</p>
278
+
279
+ <div className="mt-6">
280
+ <span className="text-4xl font-bold">$29</span>
281
+ <span className="text-zinc-400">/month</span>
282
+ </div>
283
+
284
+ <ul className="mt-8 space-y-4">
285
+ <li className="flex items-center gap-3 text-sm text-zinc-300">
286
+ <Check className="w-5 h-5 text-green-400" />
287
+ 10,000 API calls
288
+ </li>
289
+ <li className="flex items-center gap-3 text-sm text-zinc-300">
290
+ <Check className="w-5 h-5 text-green-400" />
291
+ Advanced analytics
292
+ </li>
293
+ </ul>
294
+
295
+ <button className="mt-8 w-full py-2 text-sm font-medium text-zinc-900 bg-white rounded-lg hover:bg-zinc-100 transition-colors">
296
+ Get started
297
+ </button>
298
+ </div>
299
+ ```
300
+
301
+ **Improvements:**
302
+ - ✅ Solid background
303
+ - ✅ No decorative elements
304
+ - ✅ Regular text
305
+ - ✅ Subtle hover
306
+ - ✅ Appropriate radius (xl, lg)
307
+ - ✅ Clean, minimal design
308
+
309
+ ---
310
+
311
+ ## Example 5: Stats Card
312
+
313
+ ### ❌ Before (AI Slop)
314
+ ```tsx
315
+ <div className="bg-gradient-to-br from-white to-gray-50 p-6 rounded-2xl shadow-xl border border-gray-100">
316
+ <div className="flex items-center justify-between mb-4">
317
+ <div className="w-12 h-12 bg-gradient-to-br from-green-400 to-emerald-500 rounded-xl flex items-center justify-center">
318
+ <TrendingUp className="w-6 h-6 text-white" />
319
+ </div>
320
+ <span className="text-green-500 font-semibold text-sm bg-green-50 px-3 py-1 rounded-full">
321
+ +12%
322
+ </span>
323
+ </div>
324
+ <h4 className="text-gray-500 text-sm font-medium mb-1">Total Revenue</h4>
325
+ <p className="text-3xl font-bold text-gray-900">$45,678</p>
326
+ </div>
327
+ ```
328
+
329
+ **Issues:**
330
+ - ❌ Gradient background
331
+ - ❌ Shadow overload
332
+ - ❌ Gradient icon
333
+ - ❌ Oversized radius (2xl, xl)
334
+ - ❌ Centered layout
335
+
336
+ ### ✅ After (Vercel-Quality)
337
+ ```tsx
338
+ <div className="bg-white border border-zinc-200 rounded-lg p-6">
339
+ <div className="flex items-center justify-between">
340
+ <p className="text-sm font-medium text-zinc-500">Total Revenue</p>
341
+ <span className="text-xs font-medium text-green-700 bg-green-100 px-2 py-1 rounded-full">
342
+ +12%
343
+ </span>
344
+ </div>
345
+ <p className="mt-2 text-3xl font-bold text-zinc-900">$45,678</p>
346
+ </div>
347
+ ```
348
+
349
+ **Improvements:**
350
+ - ✅ Solid background
351
+ - ✅ Border instead of shadow
352
+ - ✅ No gradient icon
353
+ - ✅ Appropriate radius (lg)
354
+ - ✅ Left-aligned content
355
+
356
+ ---
357
+
358
+ ## Summary
359
+
360
+ ### Key Differences
361
+
362
+ | Aspect | AI Slop | Vercel-Quality |
363
+ |--------|---------|----------------|
364
+ | Background | Gradients | Solid colors |
365
+ | Shadows | Heavy (xl, 2xl) | None or subtle |
366
+ | Radius | 3xl, 2xl | lg, xl |
367
+ | Hover | scale, heavy transition | colors, subtle |
368
+ | Colors | Purple, blue, rainbow | Zinc, semantic |
369
+ | Text | Centered | Left-aligned |
370
+ | Content | Generic | Realistic |
371
+
372
+ ### Rules to Remember
373
+
374
+ 1. **No gradients** — Use solid colors
375
+ 2. **No heavy shadows** — Use borders
376
+ 3. **No oversized radius** — Use lg or xl
377
+ 4. **No hover transforms** — Use color changes
378
+ 5. **No rainbow colors** — Use zinc palette
379
+ 6. **No centered everything** — Use left alignment
380
+ 7. **No generic content** — Use realistic data
@@ -0,0 +1,313 @@
1
+ # Quality Rubric
2
+
3
+ ## Overview
4
+
5
+ This rubric defines the criteria for evaluating UI code quality. Use this to score UI components and identify areas for improvement.
6
+
7
+ ---
8
+
9
+ ## Scoring Dimensions
10
+
11
+ ### 1. Visual Design (25 points)
12
+
13
+ | Criteria | Points | Description |
14
+ |----------|--------|-------------|
15
+ | Color System | 5 | Uses design tokens, proper hierarchy, no random colors |
16
+ | Typography | 5 | Consistent scale, proper weights, readable |
17
+ | Spacing | 5 | Consistent scale, proper padding/margins |
18
+ | Layout | 5 | Grid/flex used correctly, responsive |
19
+ | Visual Hierarchy | 5 | Clear focal points, proper size/weight contrast |
20
+
21
+ ### 2. Code Quality (25 points)
22
+
23
+ | Criteria | Points | Description |
24
+ |----------|--------|-------------|
25
+ | TypeScript | 5 | Proper types, no `any` |
26
+ | Component Structure | 5 | Single responsibility, reusable |
27
+ | Naming | 5 | Clear, descriptive names |
28
+ | Imports | 5 | Organized, no unused imports |
29
+ | Comments | 5 | Useful comments where needed |
30
+
31
+ ### 3. Accessibility (25 points)
32
+
33
+ | Criteria | Points | Description |
34
+ |----------|--------|-------------|
35
+ | Semantic HTML | 5 | Proper elements (nav, section, article) |
36
+ | ARIA Attributes | 5 | Labels, roles, states |
37
+ | Keyboard Navigation | 5 | Focusable, logical tab order |
38
+ | Color Contrast | 5 | 4.5:1 for text, 3:1 for UI |
39
+ | Screen Reader | 5 | Readable by assistive technology |
40
+
41
+ ### 4. Performance (25 points)
42
+
43
+ | Criteria | Points | Description |
44
+ |----------|--------|-------------|
45
+ | Bundle Size | 5 | No unnecessary imports |
46
+ | Rendering | 5 | No layout shifts |
47
+ | Images | 5 | Optimized, lazy loaded |
48
+ | Code Splitting | 5 | Dynamic imports where needed |
49
+ | Caching | 5 | Proper cache headers |
50
+
51
+ ---
52
+
53
+ ## Scoring Guide
54
+
55
+ ### 90-100: Excellent (Vercel-Quality)
56
+ - Production-ready code
57
+ - No AI slop patterns
58
+ - Excellent accessibility
59
+ - Optimized performance
60
+ - Clean, maintainable code
61
+
62
+ ### 70-89: Good
63
+ - Minor improvements needed
64
+ - Mostly follows best practices
65
+ - Good accessibility
66
+ - Acceptable performance
67
+
68
+ ### 50-69: Average
69
+ - Several issues to fix
70
+ - Some AI slop patterns
71
+ - Accessibility issues
72
+ - Performance concerns
73
+
74
+ ### 30-49: Poor
75
+ - Many issues to fix
76
+ - Significant AI slop
77
+ - Poor accessibility
78
+ - Performance problems
79
+
80
+ ### 0-29: Terrible
81
+ - Complete rewrite needed
82
+ - Pure AI slop
83
+ - No accessibility
84
+ - Major performance issues
85
+
86
+ ---
87
+
88
+ ## Detailed Criteria
89
+
90
+ ### Visual Design
91
+
92
+ #### Color System (5 points)
93
+ - **5**: Uses design tokens, proper hierarchy, semantic colors only
94
+ - **4**: Mostly uses tokens, minor inconsistencies
95
+ - **3**: Some hardcoded values, inconsistent hierarchy
96
+ - **2**: Many hardcoded values, random colors
97
+ - **1**: Pure AI slop (purple gradients, rainbow colors)
98
+
99
+ #### Typography (5 points)
100
+ - **5**: Consistent scale, proper weights, readable line heights
101
+ - **4**: Mostly consistent, minor issues
102
+ - **3**: Inconsistent sizes/weights
103
+ - **2**: Poor readability
104
+ - **1**: Random sizes, no hierarchy
105
+
106
+ #### Spacing (5 points)
107
+ - **5**: Consistent scale (4, 8, 16, 24, 32)
108
+ - **4**: Mostly consistent
109
+ - **3**: Some inconsistent spacing
110
+ - **2**: Random spacing values
111
+ - **1**: No spacing system
112
+
113
+ #### Layout (5 points)
114
+ - **5**: Proper grid/flex, responsive, clean
115
+ - **4**: Mostly correct, minor issues
116
+ - **3**: Some layout problems
117
+ - **2**: Broken on mobile
118
+ - **1**: Complete layout chaos
119
+
120
+ #### Visual Hierarchy (5 points)
121
+ - **5**: Clear focal points, proper contrast
122
+ - **4**: Good hierarchy, minor issues
123
+ - **3**: Some confusion in hierarchy
124
+ - **2**: Poor hierarchy
125
+ - **1**: No visual hierarchy
126
+
127
+ ---
128
+
129
+ ### Code Quality
130
+
131
+ #### TypeScript (5 points)
132
+ - **5**: Proper types, no `any`, interfaces defined
133
+ - **4**: Mostly typed, minor issues
134
+ - **3**: Some `any` types
135
+ - **2**: Many untyped values
136
+ - **1**: No TypeScript usage
137
+
138
+ #### Component Structure (5 points)
139
+ - **5**: Single responsibility, reusable, composable
140
+ - **4**: Mostly well-structured
141
+ - **3**: Some monolithic components
142
+ - **2**: Poor structure
143
+ - **1**: One giant component
144
+
145
+ #### Naming (5 points)
146
+ - **5**: Clear, descriptive, follows conventions
147
+ - **4**: Mostly clear
148
+ - **3**: Some unclear names
149
+ - **2**: Poor naming
150
+ - **1**: Cryptic names
151
+
152
+ #### Imports (5 points)
153
+ - **5**: Organized, no unused, proper aliases
154
+ - **4**: Mostly organized
155
+ - **3**: Some messiness
156
+ - **2**: Many unused imports
157
+ - **1**: Complete chaos
158
+
159
+ #### Comments (5 points)
160
+ - **5**: Useful comments where needed
161
+ - **4**: Mostly helpful
162
+ - **3**: Some unnecessary comments
163
+ - **2**: Missing important comments
164
+ - **1**: No comments or spam comments
165
+
166
+ ---
167
+
168
+ ### Accessibility
169
+
170
+ #### Semantic HTML (5 points)
171
+ - **5**: Proper elements (nav, section, article, main)
172
+ - **4**: Mostly semantic
173
+ - **3**: Some divs where elements needed
174
+ - **2**: Many accessibility issues
175
+ - **1**: All divs, no semantics
176
+
177
+ #### ARIA Attributes (5 points)
178
+ - **5**: Proper labels, roles, states
179
+ - **4**: Mostly complete
180
+ - **3**: Some missing attributes
181
+ - **2**: Many missing attributes
182
+ - **1**: No ARIA usage
183
+
184
+ #### Keyboard Navigation (5 points)
185
+ - **5**: All interactive elements focusable, logical order
186
+ - **4**: Mostly keyboard accessible
187
+ - **3**: Some issues
188
+ - **2**: Many keyboard traps
189
+ - **1**: Not keyboard accessible
190
+
191
+ #### Color Contrast (5 points)
192
+ - **5**: All text 4.5:1, UI 3:1
193
+ - **4**: Mostly compliant
194
+ - **3**: Some contrast issues
195
+ - **2**: Many contrast issues
196
+ - **1**: Poor contrast
197
+
198
+ #### Screen Reader (5 points)
199
+ - **5**: Readable by assistive technology
200
+ - **4**: Mostly readable
201
+ - **3**: Some issues
202
+ - **2**: Many issues
203
+ - **1**: Not screen reader accessible
204
+
205
+ ---
206
+
207
+ ### Performance
208
+
209
+ #### Bundle Size (5 points)
210
+ - **5**: No unnecessary imports, tree shaking
211
+ - **4**: Mostly optimized
212
+ - **3**: Some large imports
213
+ - **2**: Many unnecessary imports
214
+ - **1**: Huge bundle
215
+
216
+ #### Rendering (5 points)
217
+ - **5**: No layout shifts, proper loading
218
+ - **4**: Mostly stable
219
+ - **3**: Some layout shifts
220
+ - **2**: Many layout shifts
221
+ - **1**: Constant layout shifts
222
+
223
+ #### Images (5 points)
224
+ - **5**: Optimized, lazy loaded, responsive
225
+ - **4**: Mostly optimized
226
+ - **3**: Some issues
227
+ - **2**: Many issues
228
+ - **1**: Unoptimized images
229
+
230
+ #### Code Splitting (5 points)
231
+ - **5**: Dynamic imports where needed
232
+ - **4**: Mostly split
233
+ - **3**: Some large chunks
234
+ - **2**: No code splitting
235
+ - **1**: One giant bundle
236
+
237
+ #### Caching (5 points)
238
+ - **5**: Proper cache headers
239
+ - **4**: Mostly cached
240
+ - **3**: Some caching issues
241
+ - **2**: No caching
242
+ - **1**: Cache busting issues
243
+
244
+ ---
245
+
246
+ ## Usage
247
+
248
+ ### Step 1: Score Each Dimension
249
+ Rate the UI code on each of the 4 dimensions (Visual Design, Code Quality, Accessibility, Performance).
250
+
251
+ ### Step 2: Calculate Total
252
+ Add up all scores to get a total out of 100.
253
+
254
+ ### Step 3: Identify Issues
255
+ Note specific issues in each dimension.
256
+
257
+ ### Step 4: Prioritize Fixes
258
+ Fix high-impact issues first:
259
+ 1. Accessibility issues (legal risk)
260
+ 2. Visual design issues (user experience)
261
+ 3. Code quality issues (maintainability)
262
+ 4. Performance issues (user experience)
263
+
264
+ ### Step 5: Re-score
265
+ After fixes, re-score to verify improvement.
266
+
267
+ ---
268
+
269
+ ## Example Scoring
270
+
271
+ ### Component: Stats Card
272
+
273
+ **Visual Design: 22/25**
274
+ - Color System: 5/5 (uses design tokens)
275
+ - Typography: 4/5 (slight inconsistency)
276
+ - Spacing: 5/5 (consistent scale)
277
+ - Layout: 4/5 (minor responsive issue)
278
+ - Visual Hierarchy: 4/5 (good but could be better)
279
+
280
+ **Code Quality: 23/25**
281
+ - TypeScript: 5/5 (proper types)
282
+ - Component Structure: 5/5 (single responsibility)
283
+ - Naming: 4/5 (mostly clear)
284
+ - Imports: 5/5 (organized)
285
+ - Comments: 4/5 (useful but sparse)
286
+
287
+ **Accessibility: 20/25**
288
+ - Semantic HTML: 4/5 (mostly semantic)
289
+ - ARIA Attributes: 4/5 (some missing)
290
+ - Keyboard Navigation: 4/5 (mostly accessible)
291
+ - Color Contrast: 4/5 (mostly compliant)
292
+ - Screen Reader: 4/5 (mostly readable)
293
+
294
+ **Performance: 22/25**
295
+ - Bundle Size: 5/5 (optimized)
296
+ - Rendering: 4/5 (minor issues)
297
+ - Images: 5/5 (optimized)
298
+ - Code Splitting: 4/5 (mostly split)
299
+ - Caching: 4/5 (mostly cached)
300
+
301
+ **Total: 87/100 (Good)**
302
+
303
+ **Issues to Fix:**
304
+ 1. Typography inconsistency
305
+ 2. Minor responsive issue
306
+ 3. Missing ARIA attributes
307
+ 4. Screen reader improvements
308
+
309
+ **Priority:**
310
+ 1. Fix ARIA attributes (accessibility)
311
+ 2. Fix responsive issue (visual)
312
+ 3. Fix typography (visual)
313
+ 4. Improve screen reader (accessibility)