omgkit 2.28.0 → 2.29.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 (46) hide show
  1. package/README.md +48 -1
  2. package/bin/omgkit.js +10 -1
  3. package/lib/cli.js +58 -4
  4. package/lib/theme.js +571 -0
  5. package/package.json +2 -2
  6. package/plugin/agents/ui-ux-designer.md +25 -0
  7. package/plugin/commands/design/add.md +86 -0
  8. package/plugin/commands/design/builder.md +96 -0
  9. package/plugin/commands/design/from-screenshot.md +64 -0
  10. package/plugin/commands/design/from-url.md +74 -0
  11. package/plugin/commands/design/preview.md +55 -0
  12. package/plugin/commands/design/reset.md +65 -0
  13. package/plugin/commands/design/theme.md +65 -0
  14. package/plugin/commands/design/themes.md +50 -0
  15. package/plugin/registry.yaml +8 -0
  16. package/templates/design/schema/theme.schema.json +102 -0
  17. package/templates/design/themes/corporate-enterprise/consulting.json +81 -0
  18. package/templates/design/themes/corporate-enterprise/corporate-indigo.json +81 -0
  19. package/templates/design/themes/corporate-enterprise/finance.json +81 -0
  20. package/templates/design/themes/corporate-enterprise/healthcare.json +81 -0
  21. package/templates/design/themes/corporate-enterprise/legal.json +81 -0
  22. package/templates/design/themes/corporate-enterprise/ocean-blue.json +81 -0
  23. package/templates/design/themes/creative-bold/candy.json +81 -0
  24. package/templates/design/themes/creative-bold/coral-sunset.json +81 -0
  25. package/templates/design/themes/creative-bold/gradient-dream.json +81 -0
  26. package/templates/design/themes/creative-bold/neon.json +81 -0
  27. package/templates/design/themes/creative-bold/retro.json +81 -0
  28. package/templates/design/themes/creative-bold/studio.json +81 -0
  29. package/templates/design/themes/minimal-clean/minimal-slate.json +81 -0
  30. package/templates/design/themes/minimal-clean/mono.json +81 -0
  31. package/templates/design/themes/minimal-clean/nordic.json +81 -0
  32. package/templates/design/themes/minimal-clean/paper.json +81 -0
  33. package/templates/design/themes/minimal-clean/swiss.json +81 -0
  34. package/templates/design/themes/minimal-clean/zen.json +81 -0
  35. package/templates/design/themes/nature-organic/arctic.json +81 -0
  36. package/templates/design/themes/nature-organic/autumn.json +81 -0
  37. package/templates/design/themes/nature-organic/desert.json +81 -0
  38. package/templates/design/themes/nature-organic/forest.json +81 -0
  39. package/templates/design/themes/nature-organic/lavender.json +81 -0
  40. package/templates/design/themes/nature-organic/ocean.json +81 -0
  41. package/templates/design/themes/tech-ai/electric-cyan.json +81 -0
  42. package/templates/design/themes/tech-ai/hologram.json +81 -0
  43. package/templates/design/themes/tech-ai/matrix-green.json +81 -0
  44. package/templates/design/themes/tech-ai/neo-tokyo.json +81 -0
  45. package/templates/design/themes/tech-ai/neural-dark.json +81 -0
  46. package/templates/design/themes/tech-ai/quantum-purple.json +81 -0
package/README.md CHANGED
@@ -37,10 +37,11 @@ All coordinated through **Omega-level thinking** - a framework for finding break
37
37
  | Component | Count | Description |
38
38
  |-----------|-------|-------------|
39
39
  | **Agents** | 41 | Specialized AI team members with distinct roles |
40
- | **Commands** | 161 | Slash commands for every development task |
40
+ | **Commands** | 169 | Slash commands for every development task |
41
41
  | **Workflows** | 69 | Complete development processes from idea to deploy |
42
42
  | **Skills** | 161 | Domain expertise modules across 24 categories |
43
43
  | **Modes** | 10 | Behavioral configurations for different contexts |
44
+ | **Themes** | 30 | Curated design system themes for shadcn/ui |
44
45
  | **Archetypes** | 14 | Project templates for autonomous development |
45
46
 
46
47
  ---
@@ -165,6 +166,52 @@ testing:
165
166
  target: 85
166
167
  ```
167
168
 
169
+ ### 6. Design System (New in 2.29.0)
170
+
171
+ OMGKIT includes a complete design system with 30 curated themes for shadcn/ui integration:
172
+
173
+ ```bash
174
+ # Initialize with a theme (opt-in)
175
+ omgkit init --theme neo-tokyo
176
+
177
+ # Or explore themes first
178
+ omgkit init --with-design
179
+ ```
180
+
181
+ #### 5 Theme Categories
182
+
183
+ | Category | Themes | Description |
184
+ |----------|--------|-------------|
185
+ | **Tech & AI** | neo-tokyo, electric-cyan, neural-dark, matrix-green, quantum-purple, hologram | Futuristic, cyberpunk-inspired |
186
+ | **Minimal & Clean** | minimal-slate, paper, mono, zen, nordic, swiss | Simple, elegant, distraction-free |
187
+ | **Corporate** | ocean-blue, corporate-indigo, finance, legal, healthcare, consulting | Professional, trustworthy |
188
+ | **Creative & Bold** | coral-sunset, candy, neon, gradient-dream, retro, studio | Vibrant, expressive |
189
+ | **Nature & Organic** | forest, ocean, desert, lavender, arctic, autumn | Earth tones, calming |
190
+
191
+ #### Design Commands
192
+
193
+ | Command | Description |
194
+ |---------|-------------|
195
+ | `/design:themes` | List all 30 curated themes |
196
+ | `/design:theme <id>` | Apply a theme to your project |
197
+ | `/design:preview` | Preview current theme colors |
198
+ | `/design:builder` | Build custom theme interactively |
199
+ | `/design:from-screenshot` | Extract theme from image |
200
+ | `/design:from-url` | Extract theme from webpage |
201
+ | `/design:add <comp>` | Add shadcn/ui components |
202
+ | `/design:reset` | Reset to original theme |
203
+
204
+ #### How It Works
205
+
206
+ OMGKIT provides CSS variables that shadcn/ui components consume:
207
+
208
+ ```
209
+ .omgkit/design/theme.json → Theme configuration
210
+ .omgkit/design/theme.css → CSS variables (:root + .dark)
211
+ ```
212
+
213
+ After applying a theme, use `npx shadcn@latest add button` to add components that automatically use your theme colors.
214
+
168
215
  ---
169
216
 
170
217
  ## Installation
package/bin/omgkit.js CHANGED
@@ -56,6 +56,8 @@ ${COLORS.bright}GLOBAL COMMANDS${COLORS.reset}
56
56
 
57
57
  ${COLORS.bright}PROJECT COMMANDS${COLORS.reset}
58
58
  ${COLORS.cyan}init${COLORS.reset} Initialize .omgkit/ in current project
59
+ ${COLORS.cyan}init --with-design${COLORS.reset} Initialize with theme selection UI
60
+ ${COLORS.cyan}init --theme <id>${COLORS.reset} Initialize with specific theme (e.g., neo-tokyo)
59
61
  ${COLORS.cyan}project:upgrade${COLORS.reset} Upgrade project to latest OMGKIT version
60
62
  ${COLORS.cyan}project:rollback${COLORS.reset} Rollback project to previous backup
61
63
  ${COLORS.cyan}project:backups${COLORS.reset} List available project backups
@@ -74,6 +76,8 @@ ${COLORS.bright}UPGRADE OPTIONS${COLORS.reset}
74
76
  ${COLORS.bright}EXAMPLES${COLORS.reset}
75
77
  omgkit install # Install plugin globally
76
78
  omgkit init # Initialize project
79
+ omgkit init --theme neo-tokyo # Init with specific theme
80
+ omgkit init --with-design # Init with theme selection UI
77
81
  omgkit project:upgrade # Upgrade project config
78
82
  omgkit project:upgrade --dry # Preview upgrade changes
79
83
  omgkit project:rollback # Rollback to last backup
@@ -114,7 +118,12 @@ switch (command) {
114
118
  break;
115
119
  }
116
120
  case 'init': {
117
- const result = initProject();
121
+ // Parse init options
122
+ const withDesign = args.includes('--with-design');
123
+ const themeIdx = args.indexOf('--theme');
124
+ const theme = themeIdx !== -1 ? args[themeIdx + 1] : null;
125
+
126
+ const result = initProject({ theme, withDesign });
118
127
  if (!result.success) process.exit(1);
119
128
  break;
120
129
  }
package/lib/cli.js CHANGED
@@ -6,6 +6,13 @@
6
6
  import { existsSync, mkdirSync, cpSync, readFileSync, rmSync, readdirSync, statSync, writeFileSync } from 'fs';
7
7
  import { join, dirname } from 'path';
8
8
  import { fileURLToPath } from 'url';
9
+ import {
10
+ getThemeById,
11
+ getAllThemeIds,
12
+ applyThemeToProject,
13
+ loadAllThemes,
14
+ THEME_CATEGORIES
15
+ } from './theme.js';
9
16
 
10
17
  // Package root detection
11
18
  let PACKAGE_ROOT;
@@ -51,7 +58,7 @@ ${COLORS.magenta}╔════════════════════
51
58
  ║ ║
52
59
  ║ 🔮 OMGKIT - Omega-Level Development Kit ║
53
60
  ║ ║
54
- ║ 41 Agents • 160 Commands • 161 Skills • 10 Modes ║
61
+ ║ 41 Agents • 169 Commands • 161 Skills • 10 Modes ║
55
62
  ║ "Think Omega. Build Omega. Be Omega." ║
56
63
  ║ ║
57
64
  ╚════════════════════════════════════════════════════════════╝${COLORS.reset}
@@ -351,10 +358,12 @@ ${COLORS.magenta}🔮 Think Omega. Build Omega. Be Omega.${COLORS.reset}
351
358
  * @param {Object} options - Initialization options
352
359
  * @param {string} [options.cwd] - Working directory
353
360
  * @param {boolean} [options.silent] - Suppress output
361
+ * @param {string} [options.theme] - Theme ID to apply (opt-in)
362
+ * @param {boolean} [options.withDesign] - Show theme selection UI (opt-in)
354
363
  * @returns {Object} Result with success status and created files
355
364
  */
356
365
  export function initProject(options = {}) {
357
- const { cwd = process.cwd(), silent = false } = options;
366
+ const { cwd = process.cwd(), silent = false, theme = null, withDesign = false } = options;
358
367
 
359
368
  if (!silent) {
360
369
  console.log(BANNER);
@@ -425,6 +434,47 @@ export function initProject(options = {}) {
425
434
  }
426
435
  });
427
436
 
437
+ // Apply theme if specified (opt-in design system)
438
+ let appliedTheme = null;
439
+ if (theme) {
440
+ const themeObj = getThemeById(theme);
441
+ if (themeObj) {
442
+ const themePaths = applyThemeToProject(themeObj, cwd);
443
+ appliedTheme = themeObj;
444
+ createdFiles.push('.omgkit/design/theme.json', '.omgkit/design/theme.css');
445
+ if (!silent) {
446
+ log.success(`Applied theme: ${themeObj.name}`);
447
+ log.info(` → ${themePaths.themeJson}`);
448
+ log.info(` → ${themePaths.themeCss}`);
449
+ }
450
+ } else {
451
+ if (!silent) log.warn(`Theme '${theme}' not found. Skipping theme setup.`);
452
+ }
453
+ } else if (withDesign && !silent) {
454
+ // Show available themes when --with-design is used
455
+ console.log(`
456
+ ${COLORS.bright}🎨 Design System Setup${COLORS.reset}
457
+ To apply a theme, run: ${COLORS.cyan}omgkit init --theme <theme-id>${COLORS.reset}
458
+
459
+ ${COLORS.bright}Available Themes:${COLORS.reset}`);
460
+
461
+ const allThemes = loadAllThemes();
462
+ for (const [categoryId, themes] of Object.entries(allThemes)) {
463
+ const category = THEME_CATEGORIES[categoryId];
464
+ if (!category || themes.length === 0) continue;
465
+ console.log(`\n${category.emoji} ${COLORS.bright}${category.name}${COLORS.reset}`);
466
+ for (const t of themes) {
467
+ console.log(` ${COLORS.cyan}${t.id}${COLORS.reset} - ${t.name}`);
468
+ }
469
+ }
470
+ console.log(`
471
+ ${COLORS.bright}Or use these commands later:${COLORS.reset}
472
+ ${COLORS.cyan}/design:themes${COLORS.reset} List all themes
473
+ ${COLORS.cyan}/design:theme <id>${COLORS.reset} Apply a theme
474
+ ${COLORS.cyan}/design:builder${COLORS.reset} Build custom theme
475
+ `);
476
+ }
477
+
428
478
  if (!silent) {
429
479
  console.log(`
430
480
  ${COLORS.bright}Project initialized!${COLORS.reset}
@@ -438,12 +488,16 @@ ${COLORS.bright}Quick commands:${COLORS.reset}
438
488
  /dev:feature [desc] Build a feature
439
489
  /dev:fix [issue] Fix a bug
440
490
  /omega:10x [topic] Find 10x improvement
441
-
491
+ ${appliedTheme ? `
492
+ ${COLORS.bright}Design System:${COLORS.reset}
493
+ /design:preview Preview current theme
494
+ /design:add <comp> Add shadcn components
495
+ ` : ''}
442
496
  ${COLORS.magenta}🔮 Your Omega journey begins!${COLORS.reset}
443
497
  `);
444
498
  }
445
499
 
446
- return { success: true, createdDirs, createdFiles };
500
+ return { success: true, createdDirs, createdFiles, theme: appliedTheme };
447
501
  }
448
502
 
449
503
  /**