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,396 @@
1
+ # Component Patterns Reference
2
+
3
+ ## Base Patterns
4
+
5
+ ### 1. Container Pattern
6
+ ```tsx
7
+ // Standard container with max-width and padding
8
+ <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
9
+ {children}
10
+ </div>
11
+
12
+ // Full-width container
13
+ <div className="w-full px-4 sm:px-6 lg:px-8">
14
+ {children}
15
+ </div>
16
+ ```
17
+
18
+ ### 2. Card Pattern
19
+ ```tsx
20
+ // Basic card
21
+ <div className="bg-white border border-zinc-200 rounded-lg p-6 shadow-sm">
22
+ {children}
23
+ </div>
24
+
25
+ // Card with hover effect
26
+ <div className="bg-white border border-zinc-200 rounded-lg p-6 shadow-sm hover:shadow-md transition-shadow">
27
+ {children}
28
+ </div>
29
+
30
+ // Interactive card
31
+ <button className="w-full text-left bg-white border border-zinc-200 rounded-lg p-6 shadow-sm hover:border-zinc-300 transition-colors">
32
+ {children}
33
+ </button>
34
+ ```
35
+
36
+ ### 3. Button Pattern
37
+ ```tsx
38
+ // Primary button
39
+ <button className="inline-flex items-center justify-center px-4 py-2 text-sm font-medium text-white bg-zinc-900 rounded-lg hover:bg-zinc-800 transition-colors">
40
+ {children}
41
+ </button>
42
+
43
+ // Secondary button
44
+ <button className="inline-flex items-center justify-center px-4 py-2 text-sm font-medium text-zinc-900 bg-zinc-100 rounded-lg hover:bg-zinc-200 transition-colors">
45
+ {children}
46
+ </button>
47
+
48
+ // Ghost button
49
+ <button className="inline-flex items-center justify-center px-4 py-2 text-sm font-medium text-zinc-600 hover:text-zinc-900 hover:bg-zinc-100 rounded-lg transition-colors">
50
+ {children}
51
+ </button>
52
+
53
+ // Button with icon
54
+ <button className="inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-zinc-900 rounded-lg hover:bg-zinc-800 transition-colors">
55
+ <Icon className="w-4 h-4" />
56
+ {children}
57
+ </button>
58
+ ```
59
+
60
+ ### 4. Input Pattern
61
+ ```tsx
62
+ // Text input
63
+ <input
64
+ type="text"
65
+ className="w-full px-3 py-2 text-sm border border-zinc-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:border-transparent"
66
+ placeholder="Enter text..."
67
+ />
68
+
69
+ // Input with label
70
+ <div className="space-y-1">
71
+ <label className="text-sm font-medium text-zinc-700">
72
+ Email
73
+ </label>
74
+ <input
75
+ type="email"
76
+ className="w-full px-3 py-2 text-sm border border-zinc-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-zinc-500 focus:border-transparent"
77
+ placeholder="you@example.com"
78
+ />
79
+ </div>
80
+
81
+ // Input with error
82
+ <div className="space-y-1">
83
+ <label className="text-sm font-medium text-zinc-700">
84
+ Email
85
+ </label>
86
+ <input
87
+ type="email"
88
+ className="w-full px-3 py-2 text-sm border border-red-500 rounded-lg focus:outline-none focus:ring-2 focus:ring-red-500 focus:border-transparent"
89
+ placeholder="you@example.com"
90
+ />
91
+ <p className="text-xs text-red-500">Invalid email address</p>
92
+ </div>
93
+ ```
94
+
95
+ ### 5. Badge Pattern
96
+ ```tsx
97
+ // Default badge
98
+ <span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-zinc-100 text-zinc-800">
99
+ {children}
100
+ </span>
101
+
102
+ // Success badge
103
+ <span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800">
104
+ Active
105
+ </span>
106
+
107
+ // Warning badge
108
+ <span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800">
109
+ Pending
110
+ </span>
111
+
112
+ // Error badge
113
+ <span className="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-800">
114
+ Failed
115
+ </span>
116
+ ```
117
+
118
+ ### 6. Avatar Pattern
119
+ ```tsx
120
+ // Simple avatar
121
+ <div className="w-10 h-10 rounded-full bg-zinc-200 flex items-center justify-center">
122
+ <span className="text-sm font-medium text-zinc-600">JD</span>
123
+ </div>
124
+
125
+ // Avatar with image
126
+ <img
127
+ src="/avatar.jpg"
128
+ alt="User avatar"
129
+ className="w-10 h-10 rounded-full object-cover"
130
+ />
131
+
132
+ // Avatar group
133
+ <div className="flex -space-x-2">
134
+ <img src="/avatar1.jpg" className="w-8 h-8 rounded-full border-2 border-white" />
135
+ <img src="/avatar2.jpg" className="w-8 h-8 rounded-full border-2 border-white" />
136
+ <img src="/avatar3.jpg" className="w-8 h-8 rounded-full border-2 border-white" />
137
+ </div>
138
+ ```
139
+
140
+ ### 7. Table Pattern
141
+ ```tsx
142
+ // Basic table
143
+ <div className="overflow-x-auto">
144
+ <table className="w-full text-sm text-left">
145
+ <thead className="text-xs text-zinc-500 uppercase bg-zinc-50">
146
+ <tr>
147
+ <th className="px-6 py-3">Name</th>
148
+ <th className="px-6 py-3">Status</th>
149
+ <th className="px-6 py-3">Role</th>
150
+ </tr>
151
+ </thead>
152
+ <tbody className="divide-y divide-zinc-200">
153
+ <tr className="hover:bg-zinc-50">
154
+ <td className="px-6 py-4 font-medium">John Doe</td>
155
+ <td className="px-6 py-4">
156
+ <span className="px-2 py-1 text-xs font-medium bg-green-100 text-green-800 rounded-full">
157
+ Active
158
+ </span>
159
+ </td>
160
+ <td className="px-6 py-4 text-zinc-500">Admin</td>
161
+ </tr>
162
+ </tbody>
163
+ </table>
164
+ </div>
165
+ ```
166
+
167
+ ### 8. Modal Pattern
168
+ ```tsx
169
+ // Modal overlay
170
+ <div className="fixed inset-0 z-50 overflow-y-auto">
171
+ <div className="flex min-h-full items-center justify-center p-4">
172
+ {/* Backdrop */}
173
+ <div className="fixed inset-0 bg-black/50 transition-opacity" />
174
+
175
+ {/* Modal content */}
176
+ <div className="relative w-full max-w-md bg-white rounded-xl shadow-xl">
177
+ {/* Header */}
178
+ <div className="flex items-center justify-between p-6 border-b border-zinc-200">
179
+ <h2 className="text-lg font-semibold">Modal Title</h2>
180
+ <button className="p-1 hover:bg-zinc-100 rounded-lg">
181
+ <X className="w-5 h-5" />
182
+ </button>
183
+ </div>
184
+
185
+ {/* Body */}
186
+ <div className="p-6">
187
+ <p className="text-sm text-zinc-500">Modal content goes here.</p>
188
+ </div>
189
+
190
+ {/* Footer */}
191
+ <div className="flex items-center justify-end gap-3 p-6 border-t border-zinc-200">
192
+ <button className="px-4 py-2 text-sm font-medium text-zinc-700 hover:bg-zinc-100 rounded-lg">
193
+ Cancel
194
+ </button>
195
+ <button className="px-4 py-2 text-sm font-medium text-white bg-zinc-900 hover:bg-zinc-800 rounded-lg">
196
+ Confirm
197
+ </button>
198
+ </div>
199
+ </div>
200
+ </div>
201
+ </div>
202
+ ```
203
+
204
+ ## Layout Patterns
205
+
206
+ ### 1. Dashboard Layout
207
+ ```tsx
208
+ <div className="flex h-screen bg-zinc-50">
209
+ {/* Sidebar */}
210
+ <aside className="w-64 border-r border-zinc-200 bg-white">
211
+ {/* Logo */}
212
+ <div className="h-16 flex items-center px-6 border-b border-zinc-200">
213
+ <span className="text-xl font-bold">Logo</span>
214
+ </div>
215
+
216
+ {/* Navigation */}
217
+ <nav className="p-4 space-y-1">
218
+ <a href="/dashboard" className="flex items-center gap-3 px-3 py-2 text-sm font-medium text-zinc-900 bg-zinc-100 rounded-lg">
219
+ <Home className="w-5 h-5" />
220
+ Dashboard
221
+ </a>
222
+ <a href="/analytics" className="flex items-center gap-3 px-3 py-2 text-sm font-medium text-zinc-600 hover:text-zinc-900 hover:bg-zinc-50 rounded-lg">
223
+ <BarChart className="w-5 h-5" />
224
+ Analytics
225
+ </a>
226
+ </nav>
227
+ </aside>
228
+
229
+ {/* Main Content */}
230
+ <div className="flex-1 flex flex-col overflow-hidden">
231
+ {/* Header */}
232
+ <header className="h-16 border-b border-zinc-200 bg-white flex items-center justify-between px-6">
233
+ <h1 className="text-lg font-semibold">Dashboard</h1>
234
+ <div className="flex items-center gap-4">
235
+ <button className="p-2 hover:bg-zinc-100 rounded-lg">
236
+ <Bell className="w-5 h-5" />
237
+ </button>
238
+ <img src="/avatar.jpg" className="w-8 h-8 rounded-full" />
239
+ </div>
240
+ </header>
241
+
242
+ {/* Content */}
243
+ <main className="flex-1 overflow-auto p-6">
244
+ {children}
245
+ </main>
246
+ </div>
247
+ </div>
248
+ ```
249
+
250
+ ### 2. Landing Page Layout
251
+ ```tsx
252
+ <div className="min-h-screen bg-white">
253
+ {/* Navigation */}
254
+ <nav className="sticky top-0 z-50 border-b border-zinc-200 bg-white/80 backdrop-blur-sm">
255
+ <div className="max-w-7xl mx-auto px-6 h-16 flex items-center justify-between">
256
+ <span className="text-xl font-bold">Brand</span>
257
+ <div className="flex items-center gap-6">
258
+ <a href="#features" className="text-sm text-zinc-600 hover:text-zinc-900">Features</a>
259
+ <a href="#pricing" className="text-sm text-zinc-600 hover:text-zinc-900">Pricing</a>
260
+ <button className="px-4 py-2 text-sm font-medium text-white bg-zinc-900 rounded-lg hover:bg-zinc-800">
261
+ Get Started
262
+ </button>
263
+ </div>
264
+ </div>
265
+ </nav>
266
+
267
+ {/* Hero */}
268
+ <section className="py-24 px-6">
269
+ <div className="max-w-4xl mx-auto text-center">
270
+ <h1 className="text-5xl font-bold tracking-tight">Headline</h1>
271
+ <p className="mt-6 text-xl text-zinc-500">Subheadline</p>
272
+ <div className="mt-8 flex items-center justify-center gap-4">
273
+ <button className="px-6 py-3 text-base font-medium text-white bg-zinc-900 rounded-lg hover:bg-zinc-800">
274
+ Get Started
275
+ </button>
276
+ <button className="px-6 py-3 text-base font-medium text-zinc-700 border border-zinc-300 rounded-lg hover:bg-zinc-50">
277
+ Learn More
278
+ </button>
279
+ </div>
280
+ </div>
281
+ </section>
282
+
283
+ {/* Features */}
284
+ <section className="py-24 px-6 bg-zinc-50">
285
+ <div className="max-w-7xl mx-auto">
286
+ <h2 className="text-3xl font-bold text-center">Features</h2>
287
+ <div className="mt-12 grid grid-cols-1 md:grid-cols-3 gap-8">
288
+ {/* Feature cards */}
289
+ </div>
290
+ </div>
291
+ </section>
292
+
293
+ {/* Footer */}
294
+ <footer className="py-12 px-6 border-t border-zinc-200">
295
+ <div className="max-w-7xl mx-auto text-center text-sm text-zinc-500">
296
+ © 2026 Brand. All rights reserved.
297
+ </div>
298
+ </footer>
299
+ </div>
300
+ ```
301
+
302
+ ### 3. Auth Layout
303
+ ```tsx
304
+ <div className="min-h-screen flex">
305
+ {/* Left side - Form */}
306
+ <div className="flex-1 flex items-center justify-center p-8">
307
+ <div className="w-full max-w-sm space-y-8">
308
+ <div>
309
+ <h1 className="text-2xl font-bold">Welcome back</h1>
310
+ <p className="mt-2 text-sm text-zinc-500">
311
+ Sign in to your account
312
+ </p>
313
+ </div>
314
+
315
+ <form className="space-y-4">
316
+ <div className="space-y-1">
317
+ <label className="text-sm font-medium text-zinc-700">Email</label>
318
+ <input
319
+ type="email"
320
+ className="w-full px-3 py-2 border border-zinc-300 rounded-lg focus:ring-2 focus:ring-zinc-500 focus:border-transparent"
321
+ />
322
+ </div>
323
+
324
+ <div className="space-y-1">
325
+ <label className="text-sm font-medium text-zinc-700">Password</label>
326
+ <input
327
+ type="password"
328
+ className="w-full px-3 py-2 border border-zinc-300 rounded-lg focus:ring-2 focus:ring-zinc-500 focus:border-transparent"
329
+ />
330
+ </div>
331
+
332
+ <button className="w-full py-2 text-sm font-medium text-white bg-zinc-900 rounded-lg hover:bg-zinc-800">
333
+ Sign In
334
+ </button>
335
+ </form>
336
+ </div>
337
+ </div>
338
+
339
+ {/* Right side - Image/Brand */}
340
+ <div className="hidden lg:flex flex-1 bg-zinc-900 items-center justify-center">
341
+ <div className="text-center text-white">
342
+ <h2 className="text-3xl font-bold">Brand</h2>
343
+ <p className="mt-2 text-zinc-400">Tagline</p>
344
+ </div>
345
+ </div>
346
+ </div>
347
+ ```
348
+
349
+ ## Utility Patterns
350
+
351
+ ### 1. Responsive Grid
352
+ ```tsx
353
+ // 2 columns on mobile, 3 on tablet, 4 on desktop
354
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
355
+ {items.map(item => (
356
+ <Card key={item.id} {...item} />
357
+ ))}
358
+ </div>
359
+ ```
360
+
361
+ ### 2. Stack Pattern
362
+ ```tsx
363
+ // Vertical stack with gap
364
+ <div className="space-y-4">
365
+ {items.map(item => (
366
+ <div key={item.id}>{item.name}</div>
367
+ ))}
368
+ </div>
369
+
370
+ // Horizontal stack with gap
371
+ <div className="flex items-center gap-4">
372
+ <Button>Cancel</Button>
373
+ <Button>Confirm</Button>
374
+ </div>
375
+ ```
376
+
377
+ ### 3. Center Pattern
378
+ ```tsx
379
+ // Center both horizontally and vertically
380
+ <div className="flex items-center justify-center min-h-screen">
381
+ {children}
382
+ </div>
383
+
384
+ // Center horizontally only
385
+ <div className="flex justify-center">
386
+ {children}
387
+ </div>
388
+ ```
389
+
390
+ ### 4. Cover Pattern
391
+ ```tsx
392
+ // Full cover
393
+ <div className="min-h-screen flex items-center justify-center">
394
+ {children}
395
+ </div>
396
+ ```