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.
- package/README.md +48 -1
- package/bin/omgkit.js +10 -1
- package/lib/cli.js +58 -4
- package/lib/theme.js +571 -0
- package/package.json +2 -2
- package/plugin/agents/ui-ux-designer.md +25 -0
- package/plugin/commands/design/add.md +86 -0
- package/plugin/commands/design/builder.md +96 -0
- package/plugin/commands/design/from-screenshot.md +64 -0
- package/plugin/commands/design/from-url.md +74 -0
- package/plugin/commands/design/preview.md +55 -0
- package/plugin/commands/design/reset.md +65 -0
- package/plugin/commands/design/theme.md +65 -0
- package/plugin/commands/design/themes.md +50 -0
- package/plugin/registry.yaml +8 -0
- package/templates/design/schema/theme.schema.json +102 -0
- package/templates/design/themes/corporate-enterprise/consulting.json +81 -0
- package/templates/design/themes/corporate-enterprise/corporate-indigo.json +81 -0
- package/templates/design/themes/corporate-enterprise/finance.json +81 -0
- package/templates/design/themes/corporate-enterprise/healthcare.json +81 -0
- package/templates/design/themes/corporate-enterprise/legal.json +81 -0
- package/templates/design/themes/corporate-enterprise/ocean-blue.json +81 -0
- package/templates/design/themes/creative-bold/candy.json +81 -0
- package/templates/design/themes/creative-bold/coral-sunset.json +81 -0
- package/templates/design/themes/creative-bold/gradient-dream.json +81 -0
- package/templates/design/themes/creative-bold/neon.json +81 -0
- package/templates/design/themes/creative-bold/retro.json +81 -0
- package/templates/design/themes/creative-bold/studio.json +81 -0
- package/templates/design/themes/minimal-clean/minimal-slate.json +81 -0
- package/templates/design/themes/minimal-clean/mono.json +81 -0
- package/templates/design/themes/minimal-clean/nordic.json +81 -0
- package/templates/design/themes/minimal-clean/paper.json +81 -0
- package/templates/design/themes/minimal-clean/swiss.json +81 -0
- package/templates/design/themes/minimal-clean/zen.json +81 -0
- package/templates/design/themes/nature-organic/arctic.json +81 -0
- package/templates/design/themes/nature-organic/autumn.json +81 -0
- package/templates/design/themes/nature-organic/desert.json +81 -0
- package/templates/design/themes/nature-organic/forest.json +81 -0
- package/templates/design/themes/nature-organic/lavender.json +81 -0
- package/templates/design/themes/nature-organic/ocean.json +81 -0
- package/templates/design/themes/tech-ai/electric-cyan.json +81 -0
- package/templates/design/themes/tech-ai/hologram.json +81 -0
- package/templates/design/themes/tech-ai/matrix-green.json +81 -0
- package/templates/design/themes/tech-ai/neo-tokyo.json +81 -0
- package/templates/design/themes/tech-ai/neural-dark.json +81 -0
- package/templates/design/themes/tech-ai/quantum-purple.json +81 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Interactive theme builder
|
|
3
|
+
allowed-tools: Read, Write
|
|
4
|
+
argument-hint: [base-theme]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🔧 Theme Builder: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
Build a custom theme interactively or customize an existing theme.
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
|
|
13
|
+
1. Start with base theme (optional) or neutral defaults
|
|
14
|
+
2. Configure each color slot:
|
|
15
|
+
- Background / Foreground
|
|
16
|
+
- Primary / Primary Foreground
|
|
17
|
+
- Secondary / Secondary Foreground
|
|
18
|
+
- Muted / Muted Foreground
|
|
19
|
+
- Accent / Accent Foreground
|
|
20
|
+
- Destructive / Destructive Foreground
|
|
21
|
+
- Border / Input / Ring
|
|
22
|
+
3. Configure typography (optional)
|
|
23
|
+
4. Configure border radius
|
|
24
|
+
5. Preview changes
|
|
25
|
+
6. Generate theme files
|
|
26
|
+
|
|
27
|
+
## Color Input Formats
|
|
28
|
+
|
|
29
|
+
Accept colors in any format:
|
|
30
|
+
- Hex: `#E11D48` or `E11D48`
|
|
31
|
+
- HSL: `346.8 77.2% 49.8%`
|
|
32
|
+
- RGB: `rgb(225, 29, 72)`
|
|
33
|
+
- Named: `red`, `blue`, `emerald-500`
|
|
34
|
+
|
|
35
|
+
## Quick Start Options
|
|
36
|
+
|
|
37
|
+
### From Base Theme
|
|
38
|
+
```bash
|
|
39
|
+
/design:builder neo-tokyo # Start with Neo Tokyo
|
|
40
|
+
/design:builder minimal-slate # Start with Minimal Slate
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### From Scratch
|
|
44
|
+
```bash
|
|
45
|
+
/design:builder # Start with neutral defaults
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Customization Steps
|
|
49
|
+
|
|
50
|
+
### Step 1: Primary Color
|
|
51
|
+
The main brand color used for buttons, links, and key elements.
|
|
52
|
+
|
|
53
|
+
### Step 2: Secondary Color
|
|
54
|
+
Background color for secondary actions and subtle surfaces.
|
|
55
|
+
|
|
56
|
+
### Step 3: Accent Color
|
|
57
|
+
Highlight color for hovers, selections, and emphasis.
|
|
58
|
+
|
|
59
|
+
### Step 4: Mode Preference
|
|
60
|
+
Choose default mode (light/dark) and generate the opposite.
|
|
61
|
+
|
|
62
|
+
### Step 5: Border Radius
|
|
63
|
+
- `0rem` - Sharp corners
|
|
64
|
+
- `0.25rem` - Subtle rounding
|
|
65
|
+
- `0.5rem` - Default
|
|
66
|
+
- `0.75rem` - Rounded
|
|
67
|
+
- `9999px` - Full/pill
|
|
68
|
+
|
|
69
|
+
### Step 6: Typography (Optional)
|
|
70
|
+
- Sans-serif font family
|
|
71
|
+
- Monospace font family
|
|
72
|
+
|
|
73
|
+
## Output
|
|
74
|
+
|
|
75
|
+
- `.omgkit/design/theme.json` - Custom theme configuration
|
|
76
|
+
- `.omgkit/design/theme.css` - CSS variables (light + dark)
|
|
77
|
+
|
|
78
|
+
## Usage Examples
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Start fresh
|
|
82
|
+
/design:builder
|
|
83
|
+
|
|
84
|
+
# Customize existing theme
|
|
85
|
+
/design:builder electric-cyan
|
|
86
|
+
|
|
87
|
+
# Quick customization
|
|
88
|
+
/design:builder --primary "#7C3AED" --radius "0.75rem"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Integration
|
|
92
|
+
|
|
93
|
+
After building your theme:
|
|
94
|
+
1. Import theme.css in your globals.css
|
|
95
|
+
2. Run `npx shadcn@latest init` if not done
|
|
96
|
+
3. Add components with `/design:add`
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Extract theme from screenshot using AI vision
|
|
3
|
+
allowed-tools: Read, Write, Task
|
|
4
|
+
argument-hint: <screenshot-path>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 📸 Extract Theme from Screenshot: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
Use Claude Vision to analyze a screenshot and extract a cohesive color theme.
|
|
10
|
+
|
|
11
|
+
## Supported Formats
|
|
12
|
+
|
|
13
|
+
- PNG, JPG, JPEG, WebP
|
|
14
|
+
- Screenshots from websites, apps, or design tools
|
|
15
|
+
- Dribbble shots, Figma exports, or any UI design
|
|
16
|
+
|
|
17
|
+
## Process
|
|
18
|
+
|
|
19
|
+
1. Load the screenshot image
|
|
20
|
+
2. Analyze colors using Claude Vision
|
|
21
|
+
3. Extract dominant colors:
|
|
22
|
+
- Background and foreground
|
|
23
|
+
- Primary brand color
|
|
24
|
+
- Secondary and accent colors
|
|
25
|
+
- Semantic colors (success, warning, error)
|
|
26
|
+
4. Determine light/dark mode preference
|
|
27
|
+
5. Generate complementary dark/light mode
|
|
28
|
+
6. Create theme.json and theme.css
|
|
29
|
+
|
|
30
|
+
## Color Extraction
|
|
31
|
+
|
|
32
|
+
Claude Vision will identify:
|
|
33
|
+
- **Backgrounds** - Main surface colors
|
|
34
|
+
- **Text colors** - Primary and secondary text
|
|
35
|
+
- **Brand colors** - CTAs, buttons, links
|
|
36
|
+
- **Semantic colors** - Success, warning, error indicators
|
|
37
|
+
- **Borders** - Dividers and boundaries
|
|
38
|
+
|
|
39
|
+
## Output
|
|
40
|
+
|
|
41
|
+
- `.omgkit/design/theme.json` - Extracted theme configuration
|
|
42
|
+
- `.omgkit/design/theme.css` - CSS variables (light + dark)
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
/design:from-screenshot ./mockup.png
|
|
48
|
+
/design:from-screenshot ~/Downloads/dribbble-shot.jpg
|
|
49
|
+
/design:from-screenshot ./figma-export.webp
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Tips for Best Results
|
|
53
|
+
|
|
54
|
+
1. **High contrast screenshots** - Clear color distinctions work best
|
|
55
|
+
2. **Full UI screenshots** - More elements = better color extraction
|
|
56
|
+
3. **Avoid gradients** - Solid colors extract more reliably
|
|
57
|
+
4. **Include buttons/CTAs** - Helps identify primary colors
|
|
58
|
+
|
|
59
|
+
## Post-Extraction
|
|
60
|
+
|
|
61
|
+
After extraction, you can:
|
|
62
|
+
- `/design:preview` - Review extracted colors
|
|
63
|
+
- `/design:builder` - Adjust colors manually
|
|
64
|
+
- `/design:theme <id>` - Switch to a curated theme instead
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Extract theme from webpage URL
|
|
3
|
+
allowed-tools: WebFetch, Read, Write, Task
|
|
4
|
+
argument-hint: <url>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🌐 Extract Theme from URL: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
Analyze a webpage and extract its color theme for your project.
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
|
|
13
|
+
1. Fetch the webpage content
|
|
14
|
+
2. Take a screenshot or analyze CSS
|
|
15
|
+
3. Extract CSS custom properties if available
|
|
16
|
+
4. Analyze computed styles for color patterns
|
|
17
|
+
5. Generate OMGKIT theme from extracted colors
|
|
18
|
+
|
|
19
|
+
## Extraction Methods
|
|
20
|
+
|
|
21
|
+
### Method 1: CSS Variables (Best)
|
|
22
|
+
If the site uses CSS custom properties:
|
|
23
|
+
```css
|
|
24
|
+
:root {
|
|
25
|
+
--primary: #...
|
|
26
|
+
--background: #...
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Method 2: Computed Styles
|
|
31
|
+
Analyze rendered element colors:
|
|
32
|
+
- Body background
|
|
33
|
+
- Heading colors
|
|
34
|
+
- Link/button colors
|
|
35
|
+
- Border colors
|
|
36
|
+
|
|
37
|
+
### Method 3: Screenshot Analysis
|
|
38
|
+
Fall back to visual analysis using Claude Vision.
|
|
39
|
+
|
|
40
|
+
## Popular Sites for Inspiration
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
/design:from-url https://stripe.com
|
|
44
|
+
/design:from-url https://linear.app
|
|
45
|
+
/design:from-url https://vercel.com
|
|
46
|
+
/design:from-url https://notion.so
|
|
47
|
+
/design:from-url https://figma.com
|
|
48
|
+
/design:from-url https://raycast.com
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Output
|
|
52
|
+
|
|
53
|
+
- `.omgkit/design/theme.json` - Extracted theme configuration
|
|
54
|
+
- `.omgkit/design/theme.css` - CSS variables (light + dark)
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
/design:from-url https://example.com
|
|
60
|
+
/design:from-url https://your-inspiration-site.com
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Limitations
|
|
64
|
+
|
|
65
|
+
- Some sites may block automated access
|
|
66
|
+
- Highly dynamic sites may not extract well
|
|
67
|
+
- Sites with many gradients may produce inconsistent results
|
|
68
|
+
|
|
69
|
+
## Post-Extraction
|
|
70
|
+
|
|
71
|
+
After extraction:
|
|
72
|
+
- `/design:preview` - Review extracted colors
|
|
73
|
+
- `/design:builder` - Adjust colors manually
|
|
74
|
+
- `/design:theme <id>` - Switch to curated theme instead
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Preview current project theme colors
|
|
3
|
+
allowed-tools: Read
|
|
4
|
+
argument-hint: [light|dark]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 👁️ Preview Theme: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
Preview the current project theme configuration and color palette.
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
|
|
13
|
+
1. Load `.omgkit/design/theme.json`
|
|
14
|
+
2. Display theme metadata (name, category, description)
|
|
15
|
+
3. Show color palette for light mode
|
|
16
|
+
4. Show color palette for dark mode
|
|
17
|
+
5. Display CSS variables
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
|
|
21
|
+
### Theme Information
|
|
22
|
+
- Name and ID
|
|
23
|
+
- Category
|
|
24
|
+
- Description
|
|
25
|
+
- Border radius
|
|
26
|
+
- Font families
|
|
27
|
+
|
|
28
|
+
### Color Palette (Light Mode)
|
|
29
|
+
- Background / Foreground
|
|
30
|
+
- Primary / Primary Foreground
|
|
31
|
+
- Secondary / Secondary Foreground
|
|
32
|
+
- Muted / Muted Foreground
|
|
33
|
+
- Accent / Accent Foreground
|
|
34
|
+
- Destructive / Destructive Foreground
|
|
35
|
+
- Border / Input / Ring
|
|
36
|
+
|
|
37
|
+
### Color Palette (Dark Mode)
|
|
38
|
+
- Same colors as light mode (inverted)
|
|
39
|
+
|
|
40
|
+
### CSS Variables
|
|
41
|
+
- Show the generated `:root` and `.dark` CSS blocks
|
|
42
|
+
|
|
43
|
+
## Usage
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
/design:preview # Show full preview (both modes)
|
|
47
|
+
/design:preview light # Show light mode only
|
|
48
|
+
/design:preview dark # Show dark mode only
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Next Steps
|
|
52
|
+
|
|
53
|
+
- `/design:theme <id>` - Switch to different theme
|
|
54
|
+
- `/design:themes` - Browse available themes
|
|
55
|
+
- `/design:builder` - Customize current theme
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Reset to original theme
|
|
3
|
+
allowed-tools: Read, Write
|
|
4
|
+
argument-hint: [confirm]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🔄 Reset Theme: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
Reset the project theme to the original configuration or remove theme customizations.
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
|
|
13
|
+
1. Check for theme backup (if exists)
|
|
14
|
+
2. Prompt for confirmation (unless `confirm` passed)
|
|
15
|
+
3. Restore original theme.json
|
|
16
|
+
4. Regenerate theme.css
|
|
17
|
+
5. Confirm reset complete
|
|
18
|
+
|
|
19
|
+
## Options
|
|
20
|
+
|
|
21
|
+
### Reset to Original
|
|
22
|
+
If you modified a curated theme, restore the original:
|
|
23
|
+
```bash
|
|
24
|
+
/design:reset # Prompts for confirmation
|
|
25
|
+
/design:reset confirm # Skip confirmation
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Reset to Default
|
|
29
|
+
Remove all theme customizations and use default:
|
|
30
|
+
```bash
|
|
31
|
+
/design:reset default
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Files Affected
|
|
35
|
+
|
|
36
|
+
- `.omgkit/design/theme.json` - Restored/reset
|
|
37
|
+
- `.omgkit/design/theme.css` - Regenerated
|
|
38
|
+
|
|
39
|
+
## Backup Behavior
|
|
40
|
+
|
|
41
|
+
Before any theme change, OMGKIT creates a backup:
|
|
42
|
+
- `.omgkit/design/theme.json.backup`
|
|
43
|
+
|
|
44
|
+
Reset will restore from this backup if available.
|
|
45
|
+
|
|
46
|
+
## Usage
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
/design:reset # Interactive confirmation
|
|
50
|
+
/design:reset confirm # Skip confirmation
|
|
51
|
+
/design:reset default # Reset to default theme
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Recovery
|
|
55
|
+
|
|
56
|
+
If you accidentally reset:
|
|
57
|
+
1. Check git history for previous theme files
|
|
58
|
+
2. Use `/design:theme <id>` to apply a curated theme
|
|
59
|
+
3. Use `/design:builder` to recreate custom theme
|
|
60
|
+
|
|
61
|
+
## Related Commands
|
|
62
|
+
|
|
63
|
+
- `/design:theme <id>` - Apply a specific theme
|
|
64
|
+
- `/design:builder` - Build new custom theme
|
|
65
|
+
- `/design:preview` - Preview current theme
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Switch project to a different OMGKIT theme
|
|
3
|
+
allowed-tools: Read, Write, Glob
|
|
4
|
+
argument-hint: <theme-id>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🎨 Switch Theme: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
Switch the project to a different OMGKIT design system theme.
|
|
10
|
+
|
|
11
|
+
## Available Theme IDs
|
|
12
|
+
|
|
13
|
+
**Tech & AI:**
|
|
14
|
+
- `neo-tokyo`, `electric-cyan`, `neural-dark`, `matrix-green`, `quantum-purple`, `hologram`
|
|
15
|
+
|
|
16
|
+
**Minimal & Clean:**
|
|
17
|
+
- `minimal-slate`, `paper`, `mono`, `zen`, `nordic`, `swiss`
|
|
18
|
+
|
|
19
|
+
**Corporate & Enterprise:**
|
|
20
|
+
- `ocean-blue`, `corporate-indigo`, `finance`, `legal`, `healthcare`, `consulting`
|
|
21
|
+
|
|
22
|
+
**Creative & Bold:**
|
|
23
|
+
- `coral-sunset`, `candy`, `neon`, `gradient-dream`, `retro`, `studio`
|
|
24
|
+
|
|
25
|
+
**Nature & Organic:**
|
|
26
|
+
- `forest`, `ocean`, `desert`, `lavender`, `arctic`, `autumn`
|
|
27
|
+
|
|
28
|
+
## Process
|
|
29
|
+
|
|
30
|
+
1. Validate theme ID exists
|
|
31
|
+
2. Load theme configuration from templates
|
|
32
|
+
3. Generate CSS variables (light + dark mode)
|
|
33
|
+
4. Write `.omgkit/design/theme.json`
|
|
34
|
+
5. Write `.omgkit/design/theme.css`
|
|
35
|
+
6. Show integration instructions
|
|
36
|
+
|
|
37
|
+
## Files Created/Updated
|
|
38
|
+
|
|
39
|
+
- `.omgkit/design/theme.json` - Theme configuration
|
|
40
|
+
- `.omgkit/design/theme.css` - CSS variables
|
|
41
|
+
|
|
42
|
+
## Integration
|
|
43
|
+
|
|
44
|
+
After switching themes, integrate into your project:
|
|
45
|
+
|
|
46
|
+
### Next.js / React
|
|
47
|
+
```css
|
|
48
|
+
/* In app/globals.css or styles/globals.css */
|
|
49
|
+
@import '../.omgkit/design/theme.css';
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Or copy CSS variables directly
|
|
53
|
+
Copy the `:root` and `.dark` blocks from `theme.css` into your global styles.
|
|
54
|
+
|
|
55
|
+
## Usage
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
/design:theme neo-tokyo # Switch to Neo Tokyo theme
|
|
59
|
+
/design:theme minimal-slate # Switch to Minimal Slate theme
|
|
60
|
+
/design:theme forest # Switch to Forest theme
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Verification
|
|
64
|
+
|
|
65
|
+
After switching, run `/design:preview` to see the new theme colors.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: List all available OMGKIT design themes
|
|
3
|
+
allowed-tools: Read, Glob
|
|
4
|
+
argument-hint: [category]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🎨 Design Themes: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
List all available OMGKIT design themes organized by category.
|
|
10
|
+
|
|
11
|
+
## Categories
|
|
12
|
+
|
|
13
|
+
- **tech-ai** (6 themes): Neo Tokyo, Electric Cyan, Neural Dark, Matrix Green, Quantum Purple, Hologram
|
|
14
|
+
- **minimal-clean** (6 themes): Minimal Slate, Paper, Mono, Zen, Nordic, Swiss
|
|
15
|
+
- **corporate-enterprise** (6 themes): Ocean Blue, Corporate Indigo, Finance, Legal, Healthcare, Consulting
|
|
16
|
+
- **creative-bold** (6 themes): Coral Sunset, Candy, Neon, Gradient Dream, Retro, Studio
|
|
17
|
+
- **nature-organic** (6 themes): Forest, Ocean, Desert, Lavender, Arctic, Autumn
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
1. Load themes from `templates/design/themes/`
|
|
22
|
+
2. Group by category
|
|
23
|
+
3. Display with:
|
|
24
|
+
- Theme name and ID
|
|
25
|
+
- Category badge
|
|
26
|
+
- Primary color
|
|
27
|
+
- Brief description
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
/design:themes # List all 30 themes
|
|
33
|
+
/design:themes tech-ai # List only tech-ai themes
|
|
34
|
+
/design:themes minimal # Filter by partial category name
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Output Format
|
|
38
|
+
|
|
39
|
+
For each theme, show:
|
|
40
|
+
- **ID** (used for selection)
|
|
41
|
+
- **Name** (display name)
|
|
42
|
+
- **Category**
|
|
43
|
+
- **Primary color** (hex and HSL)
|
|
44
|
+
- **Description**
|
|
45
|
+
|
|
46
|
+
## Next Steps
|
|
47
|
+
|
|
48
|
+
After browsing themes:
|
|
49
|
+
- `/design:theme <id>` - Apply a theme to your project
|
|
50
|
+
- `/design:preview` - Preview current theme
|
package/plugin/registry.yaml
CHANGED
|
@@ -437,6 +437,14 @@ agents:
|
|
|
437
437
|
- /design:enhance
|
|
438
438
|
- /design:fast
|
|
439
439
|
- /design:good
|
|
440
|
+
- /design:themes
|
|
441
|
+
- /design:theme
|
|
442
|
+
- /design:preview
|
|
443
|
+
- /design:add
|
|
444
|
+
- /design:from-screenshot
|
|
445
|
+
- /design:from-url
|
|
446
|
+
- /design:builder
|
|
447
|
+
- /design:reset
|
|
440
448
|
|
|
441
449
|
api-designer:
|
|
442
450
|
file: agents/api-designer.md
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "OMGKIT Theme Schema",
|
|
4
|
+
"description": "Schema for OMGKIT design system themes (shadcn/ui compatible)",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["name", "id", "category", "colors"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"name": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Display name of the theme"
|
|
11
|
+
},
|
|
12
|
+
"id": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"pattern": "^[a-z0-9-]+$",
|
|
15
|
+
"description": "Unique identifier (kebab-case)"
|
|
16
|
+
},
|
|
17
|
+
"category": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"enum": ["tech-ai", "minimal-clean", "corporate-enterprise", "creative-bold", "nature-organic"],
|
|
20
|
+
"description": "Theme category"
|
|
21
|
+
},
|
|
22
|
+
"description": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Brief description of the theme aesthetic"
|
|
25
|
+
},
|
|
26
|
+
"colors": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"required": ["light", "dark"],
|
|
29
|
+
"properties": {
|
|
30
|
+
"light": { "$ref": "#/definitions/colorPalette" },
|
|
31
|
+
"dark": { "$ref": "#/definitions/colorPalette" }
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"radius": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"default": "0.5rem",
|
|
37
|
+
"description": "Border radius for components"
|
|
38
|
+
},
|
|
39
|
+
"fontFamily": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"sans": { "type": "string", "default": "Inter, system-ui, sans-serif" },
|
|
43
|
+
"mono": { "type": "string", "default": "JetBrains Mono, monospace" }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"definitions": {
|
|
48
|
+
"colorPalette": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"required": [
|
|
51
|
+
"background", "foreground",
|
|
52
|
+
"primary", "primary-foreground",
|
|
53
|
+
"secondary", "secondary-foreground",
|
|
54
|
+
"muted", "muted-foreground",
|
|
55
|
+
"accent", "accent-foreground",
|
|
56
|
+
"destructive", "destructive-foreground",
|
|
57
|
+
"border", "input", "ring",
|
|
58
|
+
"card", "card-foreground",
|
|
59
|
+
"popover", "popover-foreground"
|
|
60
|
+
],
|
|
61
|
+
"properties": {
|
|
62
|
+
"background": { "$ref": "#/definitions/hslColor" },
|
|
63
|
+
"foreground": { "$ref": "#/definitions/hslColor" },
|
|
64
|
+
"primary": { "$ref": "#/definitions/hslColor" },
|
|
65
|
+
"primary-foreground": { "$ref": "#/definitions/hslColor" },
|
|
66
|
+
"secondary": { "$ref": "#/definitions/hslColor" },
|
|
67
|
+
"secondary-foreground": { "$ref": "#/definitions/hslColor" },
|
|
68
|
+
"muted": { "$ref": "#/definitions/hslColor" },
|
|
69
|
+
"muted-foreground": { "$ref": "#/definitions/hslColor" },
|
|
70
|
+
"accent": { "$ref": "#/definitions/hslColor" },
|
|
71
|
+
"accent-foreground": { "$ref": "#/definitions/hslColor" },
|
|
72
|
+
"destructive": { "$ref": "#/definitions/hslColor" },
|
|
73
|
+
"destructive-foreground": { "$ref": "#/definitions/hslColor" },
|
|
74
|
+
"border": { "$ref": "#/definitions/hslColor" },
|
|
75
|
+
"input": { "$ref": "#/definitions/hslColor" },
|
|
76
|
+
"ring": { "$ref": "#/definitions/hslColor" },
|
|
77
|
+
"card": { "$ref": "#/definitions/hslColor" },
|
|
78
|
+
"card-foreground": { "$ref": "#/definitions/hslColor" },
|
|
79
|
+
"popover": { "$ref": "#/definitions/hslColor" },
|
|
80
|
+
"popover-foreground": { "$ref": "#/definitions/hslColor" },
|
|
81
|
+
"chart-1": { "$ref": "#/definitions/hslColor" },
|
|
82
|
+
"chart-2": { "$ref": "#/definitions/hslColor" },
|
|
83
|
+
"chart-3": { "$ref": "#/definitions/hslColor" },
|
|
84
|
+
"chart-4": { "$ref": "#/definitions/hslColor" },
|
|
85
|
+
"chart-5": { "$ref": "#/definitions/hslColor" },
|
|
86
|
+
"sidebar-background": { "$ref": "#/definitions/hslColor" },
|
|
87
|
+
"sidebar-foreground": { "$ref": "#/definitions/hslColor" },
|
|
88
|
+
"sidebar-primary": { "$ref": "#/definitions/hslColor" },
|
|
89
|
+
"sidebar-primary-foreground": { "$ref": "#/definitions/hslColor" },
|
|
90
|
+
"sidebar-accent": { "$ref": "#/definitions/hslColor" },
|
|
91
|
+
"sidebar-accent-foreground": { "$ref": "#/definitions/hslColor" },
|
|
92
|
+
"sidebar-border": { "$ref": "#/definitions/hslColor" },
|
|
93
|
+
"sidebar-ring": { "$ref": "#/definitions/hslColor" }
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"hslColor": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"pattern": "^\\d+(\\.\\d+)?\\s+\\d+(\\.\\d+)?%\\s+\\d+(\\.\\d+)?%$",
|
|
99
|
+
"description": "HSL color without hsl() wrapper, e.g., '220 14.3% 95.9%'"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Consulting",
|
|
3
|
+
"id": "consulting",
|
|
4
|
+
"category": "corporate-enterprise",
|
|
5
|
+
"description": "Management consulting aesthetic like McKinsey and BCG",
|
|
6
|
+
"colors": {
|
|
7
|
+
"light": {
|
|
8
|
+
"background": "0 0% 100%",
|
|
9
|
+
"foreground": "222 47% 11%",
|
|
10
|
+
"primary": "222 80% 28%",
|
|
11
|
+
"primary-foreground": "0 0% 100%",
|
|
12
|
+
"secondary": "220 20% 96%",
|
|
13
|
+
"secondary-foreground": "222 47% 15%",
|
|
14
|
+
"muted": "220 20% 96%",
|
|
15
|
+
"muted-foreground": "220 15% 45%",
|
|
16
|
+
"accent": "35 80% 45%",
|
|
17
|
+
"accent-foreground": "0 0% 100%",
|
|
18
|
+
"destructive": "0 84.2% 60.2%",
|
|
19
|
+
"destructive-foreground": "0 0% 98%",
|
|
20
|
+
"border": "220 15% 90%",
|
|
21
|
+
"input": "220 15% 90%",
|
|
22
|
+
"ring": "222 80% 28%",
|
|
23
|
+
"card": "0 0% 100%",
|
|
24
|
+
"card-foreground": "222 47% 11%",
|
|
25
|
+
"popover": "0 0% 100%",
|
|
26
|
+
"popover-foreground": "222 47% 11%",
|
|
27
|
+
"chart-1": "222 80% 28%",
|
|
28
|
+
"chart-2": "35 80% 45%",
|
|
29
|
+
"chart-3": "160 70% 40%",
|
|
30
|
+
"chart-4": "0 70% 55%",
|
|
31
|
+
"chart-5": "270 60% 55%",
|
|
32
|
+
"sidebar-background": "220 20% 98%",
|
|
33
|
+
"sidebar-foreground": "222 47% 15%",
|
|
34
|
+
"sidebar-primary": "222 80% 28%",
|
|
35
|
+
"sidebar-primary-foreground": "0 0% 100%",
|
|
36
|
+
"sidebar-accent": "220 20% 94%",
|
|
37
|
+
"sidebar-accent-foreground": "222 47% 15%",
|
|
38
|
+
"sidebar-border": "220 15% 90%",
|
|
39
|
+
"sidebar-ring": "222 80% 28%"
|
|
40
|
+
},
|
|
41
|
+
"dark": {
|
|
42
|
+
"background": "222 47% 6%",
|
|
43
|
+
"foreground": "220 20% 96%",
|
|
44
|
+
"primary": "222 60% 50%",
|
|
45
|
+
"primary-foreground": "0 0% 100%",
|
|
46
|
+
"secondary": "222 30% 15%",
|
|
47
|
+
"secondary-foreground": "220 20% 96%",
|
|
48
|
+
"muted": "222 30% 15%",
|
|
49
|
+
"muted-foreground": "220 15% 55%",
|
|
50
|
+
"accent": "35 80% 55%",
|
|
51
|
+
"accent-foreground": "222 47% 6%",
|
|
52
|
+
"destructive": "0 62.8% 30.6%",
|
|
53
|
+
"destructive-foreground": "0 0% 98%",
|
|
54
|
+
"border": "222 30% 18%",
|
|
55
|
+
"input": "222 30% 18%",
|
|
56
|
+
"ring": "222 60% 50%",
|
|
57
|
+
"card": "222 47% 8%",
|
|
58
|
+
"card-foreground": "220 20% 96%",
|
|
59
|
+
"popover": "222 47% 6%",
|
|
60
|
+
"popover-foreground": "220 20% 96%",
|
|
61
|
+
"chart-1": "222 60% 60%",
|
|
62
|
+
"chart-2": "35 80% 65%",
|
|
63
|
+
"chart-3": "160 70% 50%",
|
|
64
|
+
"chart-4": "0 70% 65%",
|
|
65
|
+
"chart-5": "270 60% 65%",
|
|
66
|
+
"sidebar-background": "222 47% 6%",
|
|
67
|
+
"sidebar-foreground": "220 20% 96%",
|
|
68
|
+
"sidebar-primary": "222 60% 50%",
|
|
69
|
+
"sidebar-primary-foreground": "0 0% 100%",
|
|
70
|
+
"sidebar-accent": "222 30% 15%",
|
|
71
|
+
"sidebar-accent-foreground": "220 20% 96%",
|
|
72
|
+
"sidebar-border": "222 30% 18%",
|
|
73
|
+
"sidebar-ring": "222 60% 50%"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"radius": "0.375rem",
|
|
77
|
+
"fontFamily": {
|
|
78
|
+
"sans": "Inter, system-ui, sans-serif",
|
|
79
|
+
"mono": "JetBrains Mono, monospace"
|
|
80
|
+
}
|
|
81
|
+
}
|