@intentsolutionsio/fullstack-starter-pack 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.
- package/.claude-plugin/plugin.json +31 -0
- package/LICENSE +21 -0
- package/README.md +168 -0
- package/agents/api-builder.md +610 -0
- package/agents/backend-architect.md +574 -0
- package/agents/database-designer.md +509 -0
- package/agents/deployment-specialist.md +603 -0
- package/agents/react-specialist.md +668 -0
- package/agents/ui-ux-expert.md +652 -0
- package/commands/auth-setup.md +422 -0
- package/commands/component-generator.md +343 -0
- package/commands/css-utility-generator.md +621 -0
- package/commands/env-config-setup.md +338 -0
- package/commands/express-api-scaffold.md +659 -0
- package/commands/fastapi-scaffold.md +674 -0
- package/commands/prisma-schema-gen.md +582 -0
- package/commands/project-scaffold.md +355 -0
- package/commands/sql-query-builder.md +461 -0
- package/package.json +52 -0
- package/skills/skill-adapter/assets/README.md +8 -0
- package/skills/skill-adapter/assets/config-template.json +32 -0
- package/skills/skill-adapter/assets/example_env_config.txt +100 -0
- package/skills/skill-adapter/assets/skill-schema.json +28 -0
- package/skills/skill-adapter/assets/test-data.json +27 -0
- package/skills/skill-adapter/references/README.md +4 -0
- package/skills/skill-adapter/references/best-practices.md +69 -0
- package/skills/skill-adapter/references/examples.md +73 -0
- package/skills/skill-adapter/scripts/README.md +7 -0
- package/skills/skill-adapter/scripts/helper-template.sh +42 -0
- package/skills/skill-adapter/scripts/validation.sh +32 -0
|
@@ -0,0 +1,621 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: css-utility-generator
|
|
3
|
+
description: >
|
|
4
|
+
Generate utility CSS classes for spacing, colors, typography, and layout
|
|
5
|
+
shortcut: cug
|
|
6
|
+
category: frontend
|
|
7
|
+
difficulty: beginner
|
|
8
|
+
estimated_time: 2-5 minutes
|
|
9
|
+
---
|
|
10
|
+
# CSS Utility Generator
|
|
11
|
+
|
|
12
|
+
Generates utility CSS classes similar to Tailwind CSS for common styling needs, creating a custom utility-first CSS framework.
|
|
13
|
+
|
|
14
|
+
## What This Command Does
|
|
15
|
+
|
|
16
|
+
**Utility Class Generation:**
|
|
17
|
+
- Spacing utilities (margin, padding)
|
|
18
|
+
- Color utilities (background, text, border)
|
|
19
|
+
- Typography utilities (font size, weight, line height)
|
|
20
|
+
- Layout utilities (flexbox, grid, display)
|
|
21
|
+
- Responsive breakpoints
|
|
22
|
+
- Custom design tokens
|
|
23
|
+
|
|
24
|
+
**Output:** Complete utility CSS file with organized sections
|
|
25
|
+
|
|
26
|
+
**Time:** 2-5 minutes
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Generate full utility class system
|
|
34
|
+
/css-utility-generator
|
|
35
|
+
|
|
36
|
+
# Shortcut
|
|
37
|
+
/cug
|
|
38
|
+
|
|
39
|
+
# Generate specific categories
|
|
40
|
+
/cug --categories spacing,colors,typography
|
|
41
|
+
|
|
42
|
+
# Custom design tokens
|
|
43
|
+
/cug --config design-tokens.json
|
|
44
|
+
|
|
45
|
+
# With custom breakpoints
|
|
46
|
+
/cug --breakpoints mobile:640px,tablet:768px,desktop:1024px
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Example Output
|
|
52
|
+
|
|
53
|
+
**Input:**
|
|
54
|
+
```
|
|
55
|
+
/cug --categories spacing,colors,flex
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Generated utilities.css:**
|
|
59
|
+
|
|
60
|
+
```css
|
|
61
|
+
/* ==========================================================================
|
|
62
|
+
Utility CSS Classes
|
|
63
|
+
Generated by CSS Utility Generator
|
|
64
|
+
========================================================================== */
|
|
65
|
+
|
|
66
|
+
/* Spacing Utilities
|
|
67
|
+
========================================================================== */
|
|
68
|
+
|
|
69
|
+
/* Margin */
|
|
70
|
+
.m-0 { margin: 0; }
|
|
71
|
+
.m-1 { margin: 0.25rem; } /* 4px */
|
|
72
|
+
.m-2 { margin: 0.5rem; } /* 8px */
|
|
73
|
+
.m-3 { margin: 0.75rem; } /* 12px */
|
|
74
|
+
.m-4 { margin: 1rem; } /* 16px */
|
|
75
|
+
.m-5 { margin: 1.25rem; } /* 20px */
|
|
76
|
+
.m-6 { margin: 1.5rem; } /* 24px */
|
|
77
|
+
.m-8 { margin: 2rem; } /* 32px */
|
|
78
|
+
.m-10 { margin: 2.5rem; } /* 40px */
|
|
79
|
+
.m-12 { margin: 3rem; } /* 48px */
|
|
80
|
+
.m-16 { margin: 4rem; } /* 64px */
|
|
81
|
+
.m-auto { margin: auto; }
|
|
82
|
+
|
|
83
|
+
/* Margin Top */
|
|
84
|
+
.mt-0 { margin-top: 0; }
|
|
85
|
+
.mt-1 { margin-top: 0.25rem; }
|
|
86
|
+
.mt-2 { margin-top: 0.5rem; }
|
|
87
|
+
.mt-3 { margin-top: 0.75rem; }
|
|
88
|
+
.mt-4 { margin-top: 1rem; }
|
|
89
|
+
.mt-6 { margin-top: 1.5rem; }
|
|
90
|
+
.mt-8 { margin-top: 2rem; }
|
|
91
|
+
.mt-12 { margin-top: 3rem; }
|
|
92
|
+
|
|
93
|
+
/* Margin Right */
|
|
94
|
+
.mr-0 { margin-right: 0; }
|
|
95
|
+
.mr-1 { margin-right: 0.25rem; }
|
|
96
|
+
.mr-2 { margin-right: 0.5rem; }
|
|
97
|
+
.mr-3 { margin-right: 0.75rem; }
|
|
98
|
+
.mr-4 { margin-right: 1rem; }
|
|
99
|
+
.mr-6 { margin-right: 1.5rem; }
|
|
100
|
+
.mr-8 { margin-right: 2rem; }
|
|
101
|
+
.mr-auto { margin-right: auto; }
|
|
102
|
+
|
|
103
|
+
/* Margin Bottom */
|
|
104
|
+
.mb-0 { margin-bottom: 0; }
|
|
105
|
+
.mb-1 { margin-bottom: 0.25rem; }
|
|
106
|
+
.mb-2 { margin-bottom: 0.5rem; }
|
|
107
|
+
.mb-3 { margin-bottom: 0.75rem; }
|
|
108
|
+
.mb-4 { margin-bottom: 1rem; }
|
|
109
|
+
.mb-6 { margin-bottom: 1.5rem; }
|
|
110
|
+
.mb-8 { margin-bottom: 2rem; }
|
|
111
|
+
.mb-12 { margin-bottom: 3rem; }
|
|
112
|
+
|
|
113
|
+
/* Margin Left */
|
|
114
|
+
.ml-0 { margin-left: 0; }
|
|
115
|
+
.ml-1 { margin-left: 0.25rem; }
|
|
116
|
+
.ml-2 { margin-left: 0.5rem; }
|
|
117
|
+
.ml-3 { margin-left: 0.75rem; }
|
|
118
|
+
.ml-4 { margin-left: 1rem; }
|
|
119
|
+
.ml-6 { margin-left: 1.5rem; }
|
|
120
|
+
.ml-8 { margin-left: 2rem; }
|
|
121
|
+
.ml-auto { margin-left: auto; }
|
|
122
|
+
|
|
123
|
+
/* Margin X-axis (horizontal) */
|
|
124
|
+
.mx-0 { margin-left: 0; margin-right: 0; }
|
|
125
|
+
.mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
|
|
126
|
+
.mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
|
|
127
|
+
.mx-4 { margin-left: 1rem; margin-right: 1rem; }
|
|
128
|
+
.mx-auto { margin-left: auto; margin-right: auto; }
|
|
129
|
+
|
|
130
|
+
/* Margin Y-axis (vertical) */
|
|
131
|
+
.my-0 { margin-top: 0; margin-bottom: 0; }
|
|
132
|
+
.my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
|
|
133
|
+
.my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; }
|
|
134
|
+
.my-4 { margin-top: 1rem; margin-bottom: 1rem; }
|
|
135
|
+
.my-8 { margin-top: 2rem; margin-bottom: 2rem; }
|
|
136
|
+
|
|
137
|
+
/* Padding */
|
|
138
|
+
.p-0 { padding: 0; }
|
|
139
|
+
.p-1 { padding: 0.25rem; }
|
|
140
|
+
.p-2 { padding: 0.5rem; }
|
|
141
|
+
.p-3 { padding: 0.75rem; }
|
|
142
|
+
.p-4 { padding: 1rem; }
|
|
143
|
+
.p-5 { padding: 1.25rem; }
|
|
144
|
+
.p-6 { padding: 1.5rem; }
|
|
145
|
+
.p-8 { padding: 2rem; }
|
|
146
|
+
.p-10 { padding: 2.5rem; }
|
|
147
|
+
.p-12 { padding: 3rem; }
|
|
148
|
+
|
|
149
|
+
/* Padding Top */
|
|
150
|
+
.pt-0 { padding-top: 0; }
|
|
151
|
+
.pt-1 { padding-top: 0.25rem; }
|
|
152
|
+
.pt-2 { padding-top: 0.5rem; }
|
|
153
|
+
.pt-4 { padding-top: 1rem; }
|
|
154
|
+
.pt-6 { padding-top: 1.5rem; }
|
|
155
|
+
.pt-8 { padding-top: 2rem; }
|
|
156
|
+
|
|
157
|
+
/* Padding Right */
|
|
158
|
+
.pr-0 { padding-right: 0; }
|
|
159
|
+
.pr-2 { padding-right: 0.5rem; }
|
|
160
|
+
.pr-4 { padding-right: 1rem; }
|
|
161
|
+
.pr-6 { padding-right: 1.5rem; }
|
|
162
|
+
.pr-8 { padding-right: 2rem; }
|
|
163
|
+
|
|
164
|
+
/* Padding Bottom */
|
|
165
|
+
.pb-0 { padding-bottom: 0; }
|
|
166
|
+
.pb-2 { padding-bottom: 0.5rem; }
|
|
167
|
+
.pb-4 { padding-bottom: 1rem; }
|
|
168
|
+
.pb-6 { padding-bottom: 1.5rem; }
|
|
169
|
+
.pb-8 { padding-bottom: 2rem; }
|
|
170
|
+
|
|
171
|
+
/* Padding Left */
|
|
172
|
+
.pl-0 { padding-left: 0; }
|
|
173
|
+
.pl-2 { padding-left: 0.5rem; }
|
|
174
|
+
.pl-4 { padding-left: 1rem; }
|
|
175
|
+
.pl-6 { padding-left: 1.5rem; }
|
|
176
|
+
.pl-8 { padding-left: 2rem; }
|
|
177
|
+
|
|
178
|
+
/* Padding X-axis */
|
|
179
|
+
.px-0 { padding-left: 0; padding-right: 0; }
|
|
180
|
+
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
|
|
181
|
+
.px-4 { padding-left: 1rem; padding-right: 1rem; }
|
|
182
|
+
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
|
|
183
|
+
.px-8 { padding-left: 2rem; padding-right: 2rem; }
|
|
184
|
+
|
|
185
|
+
/* Padding Y-axis */
|
|
186
|
+
.py-0 { padding-top: 0; padding-bottom: 0; }
|
|
187
|
+
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
|
|
188
|
+
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
|
|
189
|
+
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
|
|
190
|
+
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
|
|
191
|
+
|
|
192
|
+
/* Color Utilities
|
|
193
|
+
========================================================================== */
|
|
194
|
+
|
|
195
|
+
/* Background Colors */
|
|
196
|
+
.bg-white { background-color: #ffffff; }
|
|
197
|
+
.bg-gray-50 { background-color: #f9fafb; }
|
|
198
|
+
.bg-gray-100 { background-color: #f3f4f6; }
|
|
199
|
+
.bg-gray-200 { background-color: #e5e7eb; }
|
|
200
|
+
.bg-gray-300 { background-color: #d1d5db; }
|
|
201
|
+
.bg-gray-400 { background-color: #9ca3af; }
|
|
202
|
+
.bg-gray-500 { background-color: #6b7280; }
|
|
203
|
+
.bg-gray-600 { background-color: #4b5563; }
|
|
204
|
+
.bg-gray-700 { background-color: #374151; }
|
|
205
|
+
.bg-gray-800 { background-color: #1f2937; }
|
|
206
|
+
.bg-gray-900 { background-color: #111827; }
|
|
207
|
+
.bg-black { background-color: #000000; }
|
|
208
|
+
|
|
209
|
+
.bg-primary { background-color: #3b82f6; }
|
|
210
|
+
.bg-secondary { background-color: #6b7280; }
|
|
211
|
+
.bg-success { background-color: #10b981; }
|
|
212
|
+
.bg-danger { background-color: #ef4444; }
|
|
213
|
+
.bg-warning { background-color: #f59e0b; }
|
|
214
|
+
.bg-info { background-color: #3b82f6; }
|
|
215
|
+
|
|
216
|
+
.bg-transparent { background-color: transparent; }
|
|
217
|
+
|
|
218
|
+
/* Text Colors */
|
|
219
|
+
.text-white { color: #ffffff; }
|
|
220
|
+
.text-gray-50 { color: #f9fafb; }
|
|
221
|
+
.text-gray-100 { color: #f3f4f6; }
|
|
222
|
+
.text-gray-200 { color: #e5e7eb; }
|
|
223
|
+
.text-gray-300 { color: #d1d5db; }
|
|
224
|
+
.text-gray-400 { color: #9ca3af; }
|
|
225
|
+
.text-gray-500 { color: #6b7280; }
|
|
226
|
+
.text-gray-600 { color: #4b5563; }
|
|
227
|
+
.text-gray-700 { color: #374151; }
|
|
228
|
+
.text-gray-800 { color: #1f2937; }
|
|
229
|
+
.text-gray-900 { color: #111827; }
|
|
230
|
+
.text-black { color: #000000; }
|
|
231
|
+
|
|
232
|
+
.text-primary { color: #3b82f6; }
|
|
233
|
+
.text-secondary { color: #6b7280; }
|
|
234
|
+
.text-success { color: #10b981; }
|
|
235
|
+
.text-danger { color: #ef4444; }
|
|
236
|
+
.text-warning { color: #f59e0b; }
|
|
237
|
+
.text-info { color: #3b82f6; }
|
|
238
|
+
|
|
239
|
+
/* Flexbox Utilities
|
|
240
|
+
========================================================================== */
|
|
241
|
+
|
|
242
|
+
/* Display */
|
|
243
|
+
.flex { display: flex; }
|
|
244
|
+
.inline-flex { display: inline-flex; }
|
|
245
|
+
|
|
246
|
+
/* Flex Direction */
|
|
247
|
+
.flex-row { flex-direction: row; }
|
|
248
|
+
.flex-row-reverse { flex-direction: row-reverse; }
|
|
249
|
+
.flex-col { flex-direction: column; }
|
|
250
|
+
.flex-col-reverse { flex-direction: column-reverse; }
|
|
251
|
+
|
|
252
|
+
/* Flex Wrap */
|
|
253
|
+
.flex-wrap { flex-wrap: wrap; }
|
|
254
|
+
.flex-nowrap { flex-wrap: nowrap; }
|
|
255
|
+
.flex-wrap-reverse { flex-wrap: wrap-reverse; }
|
|
256
|
+
|
|
257
|
+
/* Justify Content */
|
|
258
|
+
.justify-start { justify-content: flex-start; }
|
|
259
|
+
.justify-end { justify-content: flex-end; }
|
|
260
|
+
.justify-center { justify-content: center; }
|
|
261
|
+
.justify-between { justify-content: space-between; }
|
|
262
|
+
.justify-around { justify-content: space-around; }
|
|
263
|
+
.justify-evenly { justify-content: space-evenly; }
|
|
264
|
+
|
|
265
|
+
/* Align Items */
|
|
266
|
+
.items-start { align-items: flex-start; }
|
|
267
|
+
.items-end { align-items: flex-end; }
|
|
268
|
+
.items-center { align-items: center; }
|
|
269
|
+
.items-baseline { align-items: baseline; }
|
|
270
|
+
.items-stretch { align-items: stretch; }
|
|
271
|
+
|
|
272
|
+
/* Align Self */
|
|
273
|
+
.self-auto { align-self: auto; }
|
|
274
|
+
.self-start { align-self: flex-start; }
|
|
275
|
+
.self-end { align-self: flex-end; }
|
|
276
|
+
.self-center { align-self: center; }
|
|
277
|
+
.self-stretch { align-self: stretch; }
|
|
278
|
+
|
|
279
|
+
/* Gap */
|
|
280
|
+
.gap-0 { gap: 0; }
|
|
281
|
+
.gap-1 { gap: 0.25rem; }
|
|
282
|
+
.gap-2 { gap: 0.5rem; }
|
|
283
|
+
.gap-3 { gap: 0.75rem; }
|
|
284
|
+
.gap-4 { gap: 1rem; }
|
|
285
|
+
.gap-6 { gap: 1.5rem; }
|
|
286
|
+
.gap-8 { gap: 2rem; }
|
|
287
|
+
|
|
288
|
+
/* Flex Grow/Shrink */
|
|
289
|
+
.flex-1 { flex: 1 1 0%; }
|
|
290
|
+
.flex-auto { flex: 1 1 auto; }
|
|
291
|
+
.flex-initial { flex: 0 1 auto; }
|
|
292
|
+
.flex-none { flex: none; }
|
|
293
|
+
|
|
294
|
+
.flex-grow { flex-grow: 1; }
|
|
295
|
+
.flex-grow-0 { flex-grow: 0; }
|
|
296
|
+
|
|
297
|
+
.flex-shrink { flex-shrink: 1; }
|
|
298
|
+
.flex-shrink-0 { flex-shrink: 0; }
|
|
299
|
+
|
|
300
|
+
/* Responsive Breakpoints
|
|
301
|
+
========================================================================== */
|
|
302
|
+
|
|
303
|
+
@media (min-width: 640px) {
|
|
304
|
+
/* sm: spacing */
|
|
305
|
+
.sm\:m-0 { margin: 0; }
|
|
306
|
+
.sm\:m-4 { margin: 1rem; }
|
|
307
|
+
.sm\:p-4 { padding: 1rem; }
|
|
308
|
+
|
|
309
|
+
/* sm: flexbox */
|
|
310
|
+
.sm\:flex { display: flex; }
|
|
311
|
+
.sm\:flex-row { flex-direction: row; }
|
|
312
|
+
.sm\:justify-center { justify-content: center; }
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
@media (min-width: 768px) {
|
|
316
|
+
/* md: spacing */
|
|
317
|
+
.md\:m-0 { margin: 0; }
|
|
318
|
+
.md\:m-6 { margin: 1.5rem; }
|
|
319
|
+
.md\:p-6 { padding: 1.5rem; }
|
|
320
|
+
|
|
321
|
+
/* md: flexbox */
|
|
322
|
+
.md\:flex { display: flex; }
|
|
323
|
+
.md\:flex-row { flex-direction: row; }
|
|
324
|
+
.md\:justify-between { justify-content: space-between; }
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
@media (min-width: 1024px) {
|
|
328
|
+
/* lg: spacing */
|
|
329
|
+
.lg\:m-0 { margin: 0; }
|
|
330
|
+
.lg\:m-8 { margin: 2rem; }
|
|
331
|
+
.lg\:p-8 { padding: 2rem; }
|
|
332
|
+
|
|
333
|
+
/* lg: flexbox */
|
|
334
|
+
.lg\:flex { display: flex; }
|
|
335
|
+
.lg\:flex-row { flex-direction: row; }
|
|
336
|
+
.lg\:gap-8 { gap: 2rem; }
|
|
337
|
+
}
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Complete Utility Categories
|
|
343
|
+
|
|
344
|
+
### 1. Spacing (Margin & Padding)
|
|
345
|
+
```css
|
|
346
|
+
/* Scale: 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24 */
|
|
347
|
+
/* Directions: all, t, r, b, l, x, y */
|
|
348
|
+
.m-4 /* margin: 1rem */
|
|
349
|
+
.mt-2 /* margin-top: 0.5rem */
|
|
350
|
+
.px-4 /* padding-left/right: 1rem */
|
|
351
|
+
.my-8 /* margin-top/bottom: 2rem */
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### 2. Typography
|
|
355
|
+
```css
|
|
356
|
+
/* Font Size */
|
|
357
|
+
.text-xs { font-size: 0.75rem; }
|
|
358
|
+
.text-sm { font-size: 0.875rem; }
|
|
359
|
+
.text-base { font-size: 1rem; }
|
|
360
|
+
.text-lg { font-size: 1.125rem; }
|
|
361
|
+
.text-xl { font-size: 1.25rem; }
|
|
362
|
+
.text-2xl { font-size: 1.5rem; }
|
|
363
|
+
.text-3xl { font-size: 1.875rem; }
|
|
364
|
+
.text-4xl { font-size: 2.25rem; }
|
|
365
|
+
|
|
366
|
+
/* Font Weight */
|
|
367
|
+
.font-thin { font-weight: 100; }
|
|
368
|
+
.font-light { font-weight: 300; }
|
|
369
|
+
.font-normal { font-weight: 400; }
|
|
370
|
+
.font-medium { font-weight: 500; }
|
|
371
|
+
.font-semibold { font-weight: 600; }
|
|
372
|
+
.font-bold { font-weight: 700; }
|
|
373
|
+
.font-extrabold { font-weight: 800; }
|
|
374
|
+
|
|
375
|
+
/* Text Align */
|
|
376
|
+
.text-left { text-align: left; }
|
|
377
|
+
.text-center { text-align: center; }
|
|
378
|
+
.text-right { text-align: right; }
|
|
379
|
+
.text-justify { text-align: justify; }
|
|
380
|
+
|
|
381
|
+
/* Line Height */
|
|
382
|
+
.leading-none { line-height: 1; }
|
|
383
|
+
.leading-tight { line-height: 1.25; }
|
|
384
|
+
.leading-normal { line-height: 1.5; }
|
|
385
|
+
.leading-relaxed { line-height: 1.75; }
|
|
386
|
+
.leading-loose { line-height: 2; }
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### 3. Layout
|
|
390
|
+
```css
|
|
391
|
+
/* Display */
|
|
392
|
+
.block { display: block; }
|
|
393
|
+
.inline { display: inline; }
|
|
394
|
+
.inline-block { display: inline-block; }
|
|
395
|
+
.flex { display: flex; }
|
|
396
|
+
.inline-flex { display: inline-flex; }
|
|
397
|
+
.grid { display: grid; }
|
|
398
|
+
.hidden { display: none; }
|
|
399
|
+
|
|
400
|
+
/* Position */
|
|
401
|
+
.static { position: static; }
|
|
402
|
+
.relative { position: relative; }
|
|
403
|
+
.absolute { position: absolute; }
|
|
404
|
+
.fixed { position: fixed; }
|
|
405
|
+
.sticky { position: sticky; }
|
|
406
|
+
|
|
407
|
+
/* Width */
|
|
408
|
+
.w-auto { width: auto; }
|
|
409
|
+
.w-full { width: 100%; }
|
|
410
|
+
.w-screen { width: 100vw; }
|
|
411
|
+
.w-1\/2 { width: 50%; }
|
|
412
|
+
.w-1\/3 { width: 33.333333%; }
|
|
413
|
+
.w-1\/4 { width: 25%; }
|
|
414
|
+
|
|
415
|
+
/* Height */
|
|
416
|
+
.h-auto { height: auto; }
|
|
417
|
+
.h-full { height: 100%; }
|
|
418
|
+
.h-screen { height: 100vh; }
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### 4. Grid System
|
|
422
|
+
```css
|
|
423
|
+
/* Grid Template Columns */
|
|
424
|
+
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
|
|
425
|
+
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
426
|
+
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
427
|
+
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
428
|
+
.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
|
429
|
+
.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
|
|
430
|
+
|
|
431
|
+
/* Grid Gap */
|
|
432
|
+
.gap-0 { gap: 0; }
|
|
433
|
+
.gap-2 { gap: 0.5rem; }
|
|
434
|
+
.gap-4 { gap: 1rem; }
|
|
435
|
+
.gap-6 { gap: 1.5rem; }
|
|
436
|
+
.gap-8 { gap: 2rem; }
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### 5. Borders & Radius
|
|
440
|
+
```css
|
|
441
|
+
/* Border Width */
|
|
442
|
+
.border-0 { border-width: 0; }
|
|
443
|
+
.border { border-width: 1px; }
|
|
444
|
+
.border-2 { border-width: 2px; }
|
|
445
|
+
.border-4 { border-width: 4px; }
|
|
446
|
+
|
|
447
|
+
/* Border Radius */
|
|
448
|
+
.rounded-none { border-radius: 0; }
|
|
449
|
+
.rounded-sm { border-radius: 0.125rem; }
|
|
450
|
+
.rounded { border-radius: 0.25rem; }
|
|
451
|
+
.rounded-md { border-radius: 0.375rem; }
|
|
452
|
+
.rounded-lg { border-radius: 0.5rem; }
|
|
453
|
+
.rounded-xl { border-radius: 0.75rem; }
|
|
454
|
+
.rounded-full { border-radius: 9999px; }
|
|
455
|
+
|
|
456
|
+
/* Border Color */
|
|
457
|
+
.border-gray-200 { border-color: #e5e7eb; }
|
|
458
|
+
.border-gray-300 { border-color: #d1d5db; }
|
|
459
|
+
.border-primary { border-color: #3b82f6; }
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### 6. Effects
|
|
463
|
+
```css
|
|
464
|
+
/* Shadow */
|
|
465
|
+
.shadow-none { box-shadow: none; }
|
|
466
|
+
.shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
|
|
467
|
+
.shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); }
|
|
468
|
+
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }
|
|
469
|
+
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
|
|
470
|
+
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
|
|
471
|
+
|
|
472
|
+
/* Opacity */
|
|
473
|
+
.opacity-0 { opacity: 0; }
|
|
474
|
+
.opacity-25 { opacity: 0.25; }
|
|
475
|
+
.opacity-50 { opacity: 0.5; }
|
|
476
|
+
.opacity-75 { opacity: 0.75; }
|
|
477
|
+
.opacity-100 { opacity: 1; }
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## Usage Examples
|
|
483
|
+
|
|
484
|
+
### Example 1: Card Component
|
|
485
|
+
```html
|
|
486
|
+
<div class="bg-white rounded-lg shadow-md p-6 mb-4">
|
|
487
|
+
<h2 class="text-2xl font-bold mb-2 text-gray-900">Card Title</h2>
|
|
488
|
+
<p class="text-gray-600 mb-4">Card description goes here.</p>
|
|
489
|
+
<button class="bg-primary text-white px-4 py-2 rounded">
|
|
490
|
+
Action
|
|
491
|
+
</button>
|
|
492
|
+
</div>
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
### Example 2: Flexbox Layout
|
|
496
|
+
```html
|
|
497
|
+
<div class="flex justify-between items-center p-4 bg-gray-50">
|
|
498
|
+
<div class="flex items-center gap-2">
|
|
499
|
+
<img src="logo.png" class="w-8 h-8" />
|
|
500
|
+
<span class="font-semibold">Brand</span>
|
|
501
|
+
</div>
|
|
502
|
+
<nav class="flex gap-4">
|
|
503
|
+
<a href="#" class="text-gray-700">Home</a>
|
|
504
|
+
<a href="#" class="text-gray-700">About</a>
|
|
505
|
+
<a href="#" class="text-gray-700">Contact</a>
|
|
506
|
+
</nav>
|
|
507
|
+
</div>
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### Example 3: Responsive Grid
|
|
511
|
+
```html
|
|
512
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 p-8">
|
|
513
|
+
<div class="bg-white p-4 rounded shadow">Item 1</div>
|
|
514
|
+
<div class="bg-white p-4 rounded shadow">Item 2</div>
|
|
515
|
+
<div class="bg-white p-4 rounded shadow">Item 3</div>
|
|
516
|
+
</div>
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
## Customization Options
|
|
522
|
+
|
|
523
|
+
### Design Tokens Configuration
|
|
524
|
+
|
|
525
|
+
**design-tokens.json:**
|
|
526
|
+
```json
|
|
527
|
+
{
|
|
528
|
+
"colors": {
|
|
529
|
+
"primary": "#3b82f6",
|
|
530
|
+
"secondary": "#6b7280",
|
|
531
|
+
"success": "#10b981",
|
|
532
|
+
"danger": "#ef4444",
|
|
533
|
+
"warning": "#f59e0b"
|
|
534
|
+
},
|
|
535
|
+
"spacing": {
|
|
536
|
+
"scale": [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64]
|
|
537
|
+
},
|
|
538
|
+
"typography": {
|
|
539
|
+
"fontSizes": {
|
|
540
|
+
"xs": "0.75rem",
|
|
541
|
+
"sm": "0.875rem",
|
|
542
|
+
"base": "1rem",
|
|
543
|
+
"lg": "1.125rem",
|
|
544
|
+
"xl": "1.25rem",
|
|
545
|
+
"2xl": "1.5rem"
|
|
546
|
+
},
|
|
547
|
+
"fontWeights": {
|
|
548
|
+
"normal": 400,
|
|
549
|
+
"medium": 500,
|
|
550
|
+
"semibold": 600,
|
|
551
|
+
"bold": 700
|
|
552
|
+
}
|
|
553
|
+
},
|
|
554
|
+
"breakpoints": {
|
|
555
|
+
"sm": "640px",
|
|
556
|
+
"md": "768px",
|
|
557
|
+
"lg": "1024px",
|
|
558
|
+
"xl": "1280px"
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
---
|
|
564
|
+
|
|
565
|
+
## Benefits
|
|
566
|
+
|
|
567
|
+
**1. No Build Step Required**
|
|
568
|
+
- Pure CSS, works immediately
|
|
569
|
+
- No JavaScript runtime
|
|
570
|
+
- No npm dependencies
|
|
571
|
+
|
|
572
|
+
**2. Familiar Syntax**
|
|
573
|
+
- Tailwind-like class names
|
|
574
|
+
- Easy to learn for Tailwind users
|
|
575
|
+
- Predictable naming conventions
|
|
576
|
+
|
|
577
|
+
**3. Customizable**
|
|
578
|
+
- Define your own design tokens
|
|
579
|
+
- Choose which categories to include
|
|
580
|
+
- Adjust spacing scales and breakpoints
|
|
581
|
+
|
|
582
|
+
**4. Lightweight**
|
|
583
|
+
- Generate only what you need
|
|
584
|
+
- ~10-50KB depending on categories
|
|
585
|
+
- Much smaller than full Tailwind
|
|
586
|
+
|
|
587
|
+
**5. Framework Agnostic**
|
|
588
|
+
- Works with React, Vue, vanilla HTML
|
|
589
|
+
- No framework lock-in
|
|
590
|
+
- Pure CSS solution
|
|
591
|
+
|
|
592
|
+
---
|
|
593
|
+
|
|
594
|
+
## Integration
|
|
595
|
+
|
|
596
|
+
### Add to HTML
|
|
597
|
+
```html
|
|
598
|
+
<link rel="stylesheet" href="utilities.css">
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
### Import in CSS
|
|
602
|
+
```css
|
|
603
|
+
@import url('utilities.css');
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
### Import in JavaScript
|
|
607
|
+
```javascript
|
|
608
|
+
import './utilities.css'
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
## Related Commands
|
|
614
|
+
|
|
615
|
+
- `/component-generator` - Generate React components using these utilities
|
|
616
|
+
- React Specialist (agent) - Component architecture guidance
|
|
617
|
+
- UI/UX Expert (agent) - Design system review
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
**Build your design system. Style faster. Ship consistent UIs.**
|