omgkit 2.28.0 → 2.30.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 (51) hide show
  1. package/README.md +72 -1
  2. package/bin/omgkit.js +188 -1
  3. package/lib/cli.js +58 -4
  4. package/lib/theme.js +1220 -0
  5. package/package.json +2 -2
  6. package/plugin/agents/fullstack-developer.md +1 -0
  7. package/plugin/agents/ui-ux-designer.md +175 -41
  8. package/plugin/commands/design/add.md +86 -0
  9. package/plugin/commands/design/builder.md +96 -0
  10. package/plugin/commands/design/from-screenshot.md +64 -0
  11. package/plugin/commands/design/from-url.md +74 -0
  12. package/plugin/commands/design/preview.md +55 -0
  13. package/plugin/commands/design/rebuild.md +153 -0
  14. package/plugin/commands/design/reset.md +65 -0
  15. package/plugin/commands/design/rollback.md +179 -0
  16. package/plugin/commands/design/scan.md +155 -0
  17. package/plugin/commands/design/theme.md +65 -0
  18. package/plugin/commands/design/themes.md +50 -0
  19. package/plugin/registry.yaml +15 -3
  20. package/plugin/skills/frontend/design-system-context/SKILL.md +252 -0
  21. package/templates/design/schema/theme.schema.json +102 -0
  22. package/templates/design/themes/corporate-enterprise/consulting.json +81 -0
  23. package/templates/design/themes/corporate-enterprise/corporate-indigo.json +81 -0
  24. package/templates/design/themes/corporate-enterprise/finance.json +81 -0
  25. package/templates/design/themes/corporate-enterprise/healthcare.json +81 -0
  26. package/templates/design/themes/corporate-enterprise/legal.json +81 -0
  27. package/templates/design/themes/corporate-enterprise/ocean-blue.json +81 -0
  28. package/templates/design/themes/creative-bold/candy.json +81 -0
  29. package/templates/design/themes/creative-bold/coral-sunset.json +81 -0
  30. package/templates/design/themes/creative-bold/gradient-dream.json +81 -0
  31. package/templates/design/themes/creative-bold/neon.json +81 -0
  32. package/templates/design/themes/creative-bold/retro.json +81 -0
  33. package/templates/design/themes/creative-bold/studio.json +81 -0
  34. package/templates/design/themes/minimal-clean/minimal-slate.json +81 -0
  35. package/templates/design/themes/minimal-clean/mono.json +81 -0
  36. package/templates/design/themes/minimal-clean/nordic.json +81 -0
  37. package/templates/design/themes/minimal-clean/paper.json +81 -0
  38. package/templates/design/themes/minimal-clean/swiss.json +81 -0
  39. package/templates/design/themes/minimal-clean/zen.json +81 -0
  40. package/templates/design/themes/nature-organic/arctic.json +81 -0
  41. package/templates/design/themes/nature-organic/autumn.json +81 -0
  42. package/templates/design/themes/nature-organic/desert.json +81 -0
  43. package/templates/design/themes/nature-organic/forest.json +81 -0
  44. package/templates/design/themes/nature-organic/lavender.json +81 -0
  45. package/templates/design/themes/nature-organic/ocean.json +81 -0
  46. package/templates/design/themes/tech-ai/electric-cyan.json +81 -0
  47. package/templates/design/themes/tech-ai/hologram.json +81 -0
  48. package/templates/design/themes/tech-ai/matrix-green.json +81 -0
  49. package/templates/design/themes/tech-ai/neo-tokyo.json +81 -0
  50. package/templates/design/themes/tech-ai/neural-dark.json +81 -0
  51. package/templates/design/themes/tech-ai/quantum-purple.json +81 -0
@@ -0,0 +1,252 @@
1
+ ---
2
+ name: design-system-context
3
+ description: Automatic design system context injection for UI consistency
4
+ category: frontend
5
+ level: foundational
6
+ commands:
7
+ - /design:preview
8
+ - /design:themes
9
+ ---
10
+
11
+ # Design System Context Injection
12
+
13
+ This skill ensures all UI/UX work automatically follows the project's design system without explicit user specification.
14
+
15
+ ## Automatic Context Loading
16
+
17
+ **CRITICAL**: Before ANY UI/component work, you MUST:
18
+
19
+ 1. Check if `.omgkit/design/theme.json` exists
20
+ 2. If exists, read it and use its colors
21
+ 3. If not exists, suggest running `/design:theme <id>` first
22
+
23
+ ```bash
24
+ # Always check first
25
+ if [ -f ".omgkit/design/theme.json" ]; then
26
+ # Read and use theme colors
27
+ else
28
+ # Suggest: "No design system detected. Run /design:themes to select one."
29
+ fi
30
+ ```
31
+
32
+ ## Theme Context Structure
33
+
34
+ When theme.json exists, extract these key values:
35
+
36
+ ```json
37
+ {
38
+ "name": "Theme Name",
39
+ "id": "theme-id",
40
+ "colors": {
41
+ "light": {
42
+ "background": "0 0% 100%",
43
+ "foreground": "240 10% 3.9%",
44
+ "primary": "346.8 77.2% 49.8%",
45
+ "primary-foreground": "355.7 100% 97.3%",
46
+ "secondary": "240 4.8% 95.9%",
47
+ "muted": "240 4.8% 95.9%",
48
+ "accent": "240 4.8% 95.9%",
49
+ "destructive": "0 84.2% 60.2%",
50
+ "border": "240 5.9% 90%",
51
+ "ring": "346.8 77.2% 49.8%"
52
+ }
53
+ },
54
+ "radius": "0.5rem"
55
+ }
56
+ ```
57
+
58
+ ## Mandatory Color Usage
59
+
60
+ **NEVER hardcode colors**. Always use CSS variables via Tailwind:
61
+
62
+ ### ✅ CORRECT - Use Theme Variables
63
+ ```tsx
64
+ // Backgrounds
65
+ <div className="bg-background"> // Main background
66
+ <div className="bg-card"> // Card background
67
+ <div className="bg-muted"> // Subtle background
68
+ <div className="bg-primary"> // Primary action background
69
+ <div className="bg-secondary"> // Secondary background
70
+ <div className="bg-destructive"> // Error/danger background
71
+
72
+ // Text
73
+ <p className="text-foreground"> // Primary text
74
+ <p className="text-muted-foreground"> // Secondary/subtle text
75
+ <p className="text-primary"> // Accent text
76
+ <p className="text-destructive"> // Error text
77
+
78
+ // Borders
79
+ <div className="border-border"> // Standard border
80
+ <div className="border-input"> // Input border
81
+ <div className="ring-ring"> // Focus ring
82
+
83
+ // Interactive states
84
+ <button className="bg-primary hover:bg-primary/90">
85
+ <button className="bg-secondary hover:bg-secondary/80">
86
+ ```
87
+
88
+ ### ❌ WRONG - Never Hardcode
89
+ ```tsx
90
+ // NEVER do this
91
+ <div className="bg-[#E11D48]"> // Hardcoded hex
92
+ <div className="bg-rose-500"> // Tailwind default color
93
+ <div className="text-gray-900"> // Not from theme
94
+ <div style={{ color: '#333' }}> // Inline style
95
+ ```
96
+
97
+ ## Component Generation Rules
98
+
99
+ When generating ANY UI component:
100
+
101
+ ### 1. Button Component
102
+ ```tsx
103
+ // Always use theme colors
104
+ <Button className="bg-primary text-primary-foreground hover:bg-primary/90">
105
+ Primary Action
106
+ </Button>
107
+
108
+ <Button variant="secondary" className="bg-secondary text-secondary-foreground">
109
+ Secondary
110
+ </Button>
111
+
112
+ <Button variant="destructive" className="bg-destructive text-destructive-foreground">
113
+ Delete
114
+ </Button>
115
+
116
+ <Button variant="outline" className="border-border bg-background hover:bg-accent">
117
+ Outline
118
+ </Button>
119
+ ```
120
+
121
+ ### 2. Card Component
122
+ ```tsx
123
+ <Card className="bg-card text-card-foreground border-border">
124
+ <CardHeader>
125
+ <CardTitle className="text-foreground">Title</CardTitle>
126
+ <CardDescription className="text-muted-foreground">Description</CardDescription>
127
+ </CardHeader>
128
+ <CardContent>
129
+ Content with <span className="text-primary">accent</span> color
130
+ </CardContent>
131
+ </Card>
132
+ ```
133
+
134
+ ### 3. Form Component
135
+ ```tsx
136
+ <form className="space-y-4">
137
+ <div>
138
+ <Label className="text-foreground">Email</Label>
139
+ <Input
140
+ className="border-input bg-background focus:ring-ring"
141
+ placeholder="Enter email"
142
+ />
143
+ </div>
144
+ <Button className="bg-primary text-primary-foreground">
145
+ Submit
146
+ </Button>
147
+ </form>
148
+ ```
149
+
150
+ ### 4. Navigation Component
151
+ ```tsx
152
+ <nav className="bg-background border-b border-border">
153
+ <div className="flex items-center gap-4">
154
+ <a className="text-foreground hover:text-primary">Home</a>
155
+ <a className="text-muted-foreground hover:text-foreground">About</a>
156
+ <a className="text-muted-foreground hover:text-foreground">Contact</a>
157
+ </div>
158
+ </nav>
159
+ ```
160
+
161
+ ### 5. Alert/Notification
162
+ ```tsx
163
+ // Success - use primary or custom success color
164
+ <Alert className="bg-primary/10 text-primary border-primary">
165
+ <CheckIcon className="text-primary" />
166
+ <AlertDescription>Success message</AlertDescription>
167
+ </Alert>
168
+
169
+ // Error - use destructive
170
+ <Alert className="bg-destructive/10 text-destructive border-destructive">
171
+ <XIcon className="text-destructive" />
172
+ <AlertDescription>Error message</AlertDescription>
173
+ </Alert>
174
+
175
+ // Info - use muted
176
+ <Alert className="bg-muted text-muted-foreground border-border">
177
+ <InfoIcon />
178
+ <AlertDescription>Info message</AlertDescription>
179
+ </Alert>
180
+ ```
181
+
182
+ ## Dark Mode Handling
183
+
184
+ Theme CSS includes `.dark` class overrides. Just ensure:
185
+
186
+ ```tsx
187
+ // This automatically works - colors swap in dark mode
188
+ <div className="bg-background text-foreground">
189
+ Content adapts to light/dark automatically
190
+ </div>
191
+
192
+ // For dark mode toggle
193
+ <button onClick={() => document.documentElement.classList.toggle('dark')}>
194
+ Toggle Dark Mode
195
+ </button>
196
+ ```
197
+
198
+ ## Border Radius Consistency
199
+
200
+ Use theme's radius value via CSS variable:
201
+
202
+ ```tsx
203
+ // These use --radius from theme
204
+ <div className="rounded-lg"> // var(--radius)
205
+ <div className="rounded-md"> // calc(var(--radius) - 2px)
206
+ <div className="rounded-sm"> // calc(var(--radius) - 4px)
207
+ ```
208
+
209
+ ## Pre-Task Checklist
210
+
211
+ Before generating ANY UI code, mentally check:
212
+
213
+ - [ ] Read `.omgkit/design/theme.json` if exists
214
+ - [ ] All colors use CSS variables (bg-primary, text-foreground, etc.)
215
+ - [ ] No hardcoded hex values
216
+ - [ ] No Tailwind default colors (gray-500, blue-600, etc.)
217
+ - [ ] Border radius uses theme's radius
218
+ - [ ] Dark mode compatible (no light-only or dark-only colors)
219
+
220
+ ## Error Prevention
221
+
222
+ If you catch yourself writing:
223
+ - `bg-blue-500` → Change to `bg-primary`
224
+ - `text-gray-600` → Change to `text-muted-foreground`
225
+ - `border-gray-200` → Change to `border-border`
226
+ - `#E11D48` → Change to CSS variable reference
227
+
228
+ ## Integration with shadcn/ui
229
+
230
+ shadcn/ui components automatically use CSS variables:
231
+
232
+ ```tsx
233
+ // These already use theme colors
234
+ import { Button } from "@/components/ui/button"
235
+ import { Card } from "@/components/ui/card"
236
+ import { Input } from "@/components/ui/input"
237
+
238
+ // Just use them - they read from theme.css
239
+ <Button>Uses --primary automatically</Button>
240
+ <Card>Uses --card automatically</Card>
241
+ <Input /> // Uses --input, --border, --ring automatically
242
+ ```
243
+
244
+ ## Summary
245
+
246
+ **The Golden Rule**: If you're writing a color class, it MUST be one of:
247
+ - `bg-{background|foreground|card|popover|primary|secondary|muted|accent|destructive|border|input|ring}`
248
+ - `text-{foreground|card-foreground|popover-foreground|primary-foreground|secondary-foreground|muted-foreground|accent-foreground|destructive-foreground}`
249
+ - `border-{border|input|ring}`
250
+ - Opacity variants like `bg-primary/90`, `text-muted-foreground/80`
251
+
252
+ **NO EXCEPTIONS**.
@@ -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
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "Corporate Indigo",
3
+ "id": "corporate-indigo",
4
+ "category": "corporate-enterprise",
5
+ "description": "Professional SaaS aesthetic like Stripe and Intercom",
6
+ "colors": {
7
+ "light": {
8
+ "background": "0 0% 100%",
9
+ "foreground": "224 71.4% 4.1%",
10
+ "primary": "238.7 83.5% 66.7%",
11
+ "primary-foreground": "0 0% 100%",
12
+ "secondary": "220 14.3% 95.9%",
13
+ "secondary-foreground": "220.9 39.3% 11%",
14
+ "muted": "220 14.3% 95.9%",
15
+ "muted-foreground": "220 8.9% 46.1%",
16
+ "accent": "220 14.3% 95.9%",
17
+ "accent-foreground": "220.9 39.3% 11%",
18
+ "destructive": "0 84.2% 60.2%",
19
+ "destructive-foreground": "0 0% 98%",
20
+ "border": "220 13% 91%",
21
+ "input": "220 13% 91%",
22
+ "ring": "238.7 83.5% 66.7%",
23
+ "card": "0 0% 100%",
24
+ "card-foreground": "224 71.4% 4.1%",
25
+ "popover": "0 0% 100%",
26
+ "popover-foreground": "224 71.4% 4.1%",
27
+ "chart-1": "238.7 83.5% 66.7%",
28
+ "chart-2": "173 58% 39%",
29
+ "chart-3": "197 37% 24%",
30
+ "chart-4": "43 74% 66%",
31
+ "chart-5": "27 87% 67%",
32
+ "sidebar-background": "0 0% 98%",
33
+ "sidebar-foreground": "240 5.3% 26.1%",
34
+ "sidebar-primary": "238.7 83.5% 66.7%",
35
+ "sidebar-primary-foreground": "0 0% 98%",
36
+ "sidebar-accent": "240 4.8% 95.9%",
37
+ "sidebar-accent-foreground": "240 5.9% 10%",
38
+ "sidebar-border": "220 13% 91%",
39
+ "sidebar-ring": "238.7 83.5% 66.7%"
40
+ },
41
+ "dark": {
42
+ "background": "224 71.4% 4.1%",
43
+ "foreground": "210 20% 98%",
44
+ "primary": "238.7 83.5% 66.7%",
45
+ "primary-foreground": "0 0% 100%",
46
+ "secondary": "215 27.9% 16.9%",
47
+ "secondary-foreground": "210 20% 98%",
48
+ "muted": "215 27.9% 16.9%",
49
+ "muted-foreground": "217.9 10.6% 64.9%",
50
+ "accent": "215 27.9% 16.9%",
51
+ "accent-foreground": "210 20% 98%",
52
+ "destructive": "0 62.8% 30.6%",
53
+ "destructive-foreground": "210 20% 98%",
54
+ "border": "215 27.9% 16.9%",
55
+ "input": "215 27.9% 16.9%",
56
+ "ring": "238.7 83.5% 66.7%",
57
+ "card": "224 71.4% 4.1%",
58
+ "card-foreground": "210 20% 98%",
59
+ "popover": "224 71.4% 4.1%",
60
+ "popover-foreground": "210 20% 98%",
61
+ "chart-1": "220 70% 50%",
62
+ "chart-2": "160 60% 45%",
63
+ "chart-3": "30 80% 55%",
64
+ "chart-4": "280 65% 60%",
65
+ "chart-5": "340 75% 55%",
66
+ "sidebar-background": "224 71.4% 4.1%",
67
+ "sidebar-foreground": "210 20% 98%",
68
+ "sidebar-primary": "238.7 83.5% 66.7%",
69
+ "sidebar-primary-foreground": "0 0% 100%",
70
+ "sidebar-accent": "215 27.9% 16.9%",
71
+ "sidebar-accent-foreground": "210 20% 98%",
72
+ "sidebar-border": "215 27.9% 16.9%",
73
+ "sidebar-ring": "238.7 83.5% 66.7%"
74
+ }
75
+ },
76
+ "radius": "0.5rem",
77
+ "fontFamily": {
78
+ "sans": "Inter, system-ui, sans-serif",
79
+ "mono": "JetBrains Mono, monospace"
80
+ }
81
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "Finance",
3
+ "id": "finance",
4
+ "category": "corporate-enterprise",
5
+ "description": "Banking and fintech aesthetic like Bloomberg and Robinhood",
6
+ "colors": {
7
+ "light": {
8
+ "background": "0 0% 100%",
9
+ "foreground": "175 60% 8%",
10
+ "primary": "173 80% 30%",
11
+ "primary-foreground": "0 0% 100%",
12
+ "secondary": "170 30% 95%",
13
+ "secondary-foreground": "175 60% 12%",
14
+ "muted": "170 30% 95%",
15
+ "muted-foreground": "175 20% 45%",
16
+ "accent": "45 93% 47%",
17
+ "accent-foreground": "175 60% 8%",
18
+ "destructive": "0 84.2% 60.2%",
19
+ "destructive-foreground": "0 0% 98%",
20
+ "border": "170 20% 88%",
21
+ "input": "170 20% 88%",
22
+ "ring": "173 80% 30%",
23
+ "card": "0 0% 100%",
24
+ "card-foreground": "175 60% 8%",
25
+ "popover": "0 0% 100%",
26
+ "popover-foreground": "175 60% 8%",
27
+ "chart-1": "142.1 76.2% 36.3%",
28
+ "chart-2": "0 84.2% 60.2%",
29
+ "chart-3": "173 80% 30%",
30
+ "chart-4": "45 93% 47%",
31
+ "chart-5": "221.2 83.2% 53.3%",
32
+ "sidebar-background": "170 30% 97%",
33
+ "sidebar-foreground": "175 60% 12%",
34
+ "sidebar-primary": "173 80% 30%",
35
+ "sidebar-primary-foreground": "0 0% 100%",
36
+ "sidebar-accent": "170 30% 93%",
37
+ "sidebar-accent-foreground": "175 60% 12%",
38
+ "sidebar-border": "170 20% 88%",
39
+ "sidebar-ring": "173 80% 30%"
40
+ },
41
+ "dark": {
42
+ "background": "175 60% 5%",
43
+ "foreground": "170 30% 95%",
44
+ "primary": "173 80% 40%",
45
+ "primary-foreground": "175 60% 5%",
46
+ "secondary": "175 30% 12%",
47
+ "secondary-foreground": "170 30% 95%",
48
+ "muted": "175 30% 12%",
49
+ "muted-foreground": "175 20% 55%",
50
+ "accent": "45 93% 47%",
51
+ "accent-foreground": "175 60% 5%",
52
+ "destructive": "0 62.8% 30.6%",
53
+ "destructive-foreground": "0 0% 98%",
54
+ "border": "175 30% 15%",
55
+ "input": "175 30% 15%",
56
+ "ring": "173 80% 40%",
57
+ "card": "175 60% 7%",
58
+ "card-foreground": "170 30% 95%",
59
+ "popover": "175 60% 5%",
60
+ "popover-foreground": "170 30% 95%",
61
+ "chart-1": "142.1 76.2% 46.3%",
62
+ "chart-2": "0 84.2% 70.2%",
63
+ "chart-3": "173 80% 50%",
64
+ "chart-4": "45 93% 57%",
65
+ "chart-5": "221.2 83.2% 63.3%",
66
+ "sidebar-background": "175 60% 5%",
67
+ "sidebar-foreground": "170 30% 95%",
68
+ "sidebar-primary": "173 80% 40%",
69
+ "sidebar-primary-foreground": "175 60% 5%",
70
+ "sidebar-accent": "175 30% 12%",
71
+ "sidebar-accent-foreground": "170 30% 95%",
72
+ "sidebar-border": "175 30% 15%",
73
+ "sidebar-ring": "173 80% 40%"
74
+ }
75
+ },
76
+ "radius": "0.375rem",
77
+ "fontFamily": {
78
+ "sans": "Inter, system-ui, sans-serif",
79
+ "mono": "JetBrains Mono, monospace"
80
+ }
81
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "Healthcare",
3
+ "id": "healthcare",
4
+ "category": "corporate-enterprise",
5
+ "description": "Medical and health aesthetic for clean, trustworthy applications",
6
+ "colors": {
7
+ "light": {
8
+ "background": "200 50% 99%",
9
+ "foreground": "200 50% 8%",
10
+ "primary": "192 91% 36%",
11
+ "primary-foreground": "0 0% 100%",
12
+ "secondary": "200 30% 95%",
13
+ "secondary-foreground": "200 50% 12%",
14
+ "muted": "200 30% 95%",
15
+ "muted-foreground": "200 20% 45%",
16
+ "accent": "160 84% 39%",
17
+ "accent-foreground": "0 0% 100%",
18
+ "destructive": "0 84.2% 60.2%",
19
+ "destructive-foreground": "0 0% 98%",
20
+ "border": "200 20% 88%",
21
+ "input": "200 20% 88%",
22
+ "ring": "192 91% 36%",
23
+ "card": "0 0% 100%",
24
+ "card-foreground": "200 50% 8%",
25
+ "popover": "0 0% 100%",
26
+ "popover-foreground": "200 50% 8%",
27
+ "chart-1": "192 91% 36%",
28
+ "chart-2": "160 84% 39%",
29
+ "chart-3": "38 92% 50%",
30
+ "chart-4": "0 84.2% 60.2%",
31
+ "chart-5": "262.1 83.3% 57.8%",
32
+ "sidebar-background": "200 50% 97%",
33
+ "sidebar-foreground": "200 50% 12%",
34
+ "sidebar-primary": "192 91% 36%",
35
+ "sidebar-primary-foreground": "0 0% 100%",
36
+ "sidebar-accent": "200 30% 93%",
37
+ "sidebar-accent-foreground": "200 50% 12%",
38
+ "sidebar-border": "200 20% 88%",
39
+ "sidebar-ring": "192 91% 36%"
40
+ },
41
+ "dark": {
42
+ "background": "200 50% 5%",
43
+ "foreground": "200 30% 95%",
44
+ "primary": "192 91% 46%",
45
+ "primary-foreground": "200 50% 5%",
46
+ "secondary": "200 30% 12%",
47
+ "secondary-foreground": "200 30% 95%",
48
+ "muted": "200 30% 12%",
49
+ "muted-foreground": "200 20% 55%",
50
+ "accent": "160 84% 49%",
51
+ "accent-foreground": "200 50% 5%",
52
+ "destructive": "0 62.8% 30.6%",
53
+ "destructive-foreground": "0 0% 98%",
54
+ "border": "200 30% 15%",
55
+ "input": "200 30% 15%",
56
+ "ring": "192 91% 46%",
57
+ "card": "200 50% 7%",
58
+ "card-foreground": "200 30% 95%",
59
+ "popover": "200 50% 5%",
60
+ "popover-foreground": "200 30% 95%",
61
+ "chart-1": "192 91% 56%",
62
+ "chart-2": "160 84% 59%",
63
+ "chart-3": "38 92% 60%",
64
+ "chart-4": "0 84.2% 70.2%",
65
+ "chart-5": "262.1 83.3% 67.8%",
66
+ "sidebar-background": "200 50% 5%",
67
+ "sidebar-foreground": "200 30% 95%",
68
+ "sidebar-primary": "192 91% 46%",
69
+ "sidebar-primary-foreground": "200 50% 5%",
70
+ "sidebar-accent": "200 30% 12%",
71
+ "sidebar-accent-foreground": "200 30% 95%",
72
+ "sidebar-border": "200 30% 15%",
73
+ "sidebar-ring": "192 91% 46%"
74
+ }
75
+ },
76
+ "radius": "0.5rem",
77
+ "fontFamily": {
78
+ "sans": "Inter, system-ui, sans-serif",
79
+ "mono": "JetBrains Mono, monospace"
80
+ }
81
+ }