@principal-ade/industry-theme 0.1.2

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/dist/cjs/ThemeProvider.d.ts +19 -0
  2. package/dist/cjs/ThemeProvider.d.ts.map +1 -0
  3. package/dist/cjs/ThemeShowcase.d.ts +24 -0
  4. package/dist/cjs/ThemeShowcase.d.ts.map +1 -0
  5. package/dist/cjs/defaultThemes.d.ts +8 -0
  6. package/dist/cjs/defaultThemes.d.ts.map +1 -0
  7. package/dist/cjs/glassmorphismTheme.d.ts +7 -0
  8. package/dist/cjs/glassmorphismTheme.d.ts.map +1 -0
  9. package/dist/cjs/index.d.ts +130 -0
  10. package/dist/cjs/index.d.ts.map +1 -0
  11. package/dist/cjs/index.js +1798 -0
  12. package/dist/cjs/package.json +1 -0
  13. package/dist/cjs/themeHelpers.d.ts +30 -0
  14. package/dist/cjs/themeHelpers.d.ts.map +1 -0
  15. package/dist/cjs/themes.d.ts +12 -0
  16. package/dist/cjs/themes.d.ts.map +1 -0
  17. package/dist/cjs/utils.d.ts +32 -0
  18. package/dist/cjs/utils.d.ts.map +1 -0
  19. package/dist/esm/ThemeProvider.d.ts +19 -0
  20. package/dist/esm/ThemeProvider.d.ts.map +1 -0
  21. package/dist/esm/ThemeShowcase.d.ts +24 -0
  22. package/dist/esm/ThemeShowcase.d.ts.map +1 -0
  23. package/dist/esm/defaultThemes.d.ts +8 -0
  24. package/dist/esm/defaultThemes.d.ts.map +1 -0
  25. package/dist/esm/glassmorphismTheme.d.ts +7 -0
  26. package/dist/esm/glassmorphismTheme.d.ts.map +1 -0
  27. package/dist/esm/index.d.ts +130 -0
  28. package/dist/esm/index.d.ts.map +1 -0
  29. package/dist/esm/index.js +1753 -0
  30. package/dist/esm/package.json +1 -0
  31. package/dist/esm/themeHelpers.d.ts +30 -0
  32. package/dist/esm/themeHelpers.d.ts.map +1 -0
  33. package/dist/esm/themes.d.ts +12 -0
  34. package/dist/esm/themes.d.ts.map +1 -0
  35. package/dist/esm/utils.d.ts +32 -0
  36. package/dist/esm/utils.d.ts.map +1 -0
  37. package/package.json +64 -0
  38. package/src/README.md +134 -0
  39. package/src/ThemeProvider.tsx +117 -0
  40. package/src/ThemeShowcase.tsx +442 -0
  41. package/src/defaultThemes.ts +369 -0
  42. package/src/glassmorphismTheme.ts +213 -0
  43. package/src/index.ts +230 -0
  44. package/src/themeHelpers.ts +106 -0
  45. package/src/themes.ts +746 -0
  46. package/src/utils.ts +135 -0
package/src/themes.ts ADDED
@@ -0,0 +1,746 @@
1
+ /**
2
+ * Collection of available themes for PrincipleMD
3
+ */
4
+
5
+ import { Theme } from './index';
6
+ export { glassmorphismTheme } from './glassmorphismTheme';
7
+ export {
8
+ defaultMarkdownTheme,
9
+ defaultEditorTheme,
10
+ defaultTerminalTheme,
11
+ } from './defaultThemes';
12
+
13
+ // Regal theme (previous default) - Dark Academia with warm amber gold
14
+ export const regalTheme: Theme = {
15
+ // Spacing scale (used for margin, padding, etc.)
16
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
17
+
18
+ // Typography
19
+ fonts: {
20
+ body: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
21
+ heading: '"Crimson Text", "Georgia", "Times New Roman", serif',
22
+ monospace: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace',
23
+ },
24
+
25
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
26
+
27
+ fontScale: 1.0,
28
+
29
+ fontWeights: {
30
+ body: 400,
31
+ heading: 600,
32
+ bold: 700,
33
+ light: 300,
34
+ medium: 500,
35
+ semibold: 600,
36
+ },
37
+
38
+ lineHeights: {
39
+ body: 1.5,
40
+ heading: 1.2,
41
+ tight: 1.25,
42
+ relaxed: 1.75,
43
+ },
44
+
45
+ // Layout
46
+ breakpoints: ['640px', '768px', '1024px', '1280px'],
47
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
48
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
49
+ shadows: [
50
+ 'none',
51
+ '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
52
+ '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
53
+ '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
54
+ '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
55
+ '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
56
+ ],
57
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
58
+
59
+ // Colors (light mode default) - Dark Academia theme with muted gold
60
+ colors: {
61
+ // Base colors
62
+ text: '#f1e8dc', // Warm cream
63
+ background: '#1a1f2e', // Deep midnight blue
64
+ primary: '#d4a574', // Warm amber gold
65
+ secondary: '#e0b584', // Lighter amber on hover
66
+ accent: '#c9b8a3', // Muted gold
67
+ highlight: 'rgba(212, 165, 116, 0.15)', // Translucent amber
68
+ muted: '#8b7968', // Faded bronze
69
+
70
+ // Status colors - Jewel tones
71
+ success: '#5c8a72', // Forest green
72
+ warning: '#d4a574', // Amber (same as primary for consistency)
73
+ error: '#a85751', // Burgundy red
74
+ info: '#d4a574', // Using primary amber
75
+
76
+ // Additional semantic colors
77
+ border: 'rgba(212, 165, 116, 0.2)', // Translucent gold
78
+ backgroundSecondary: '#212738', // Slightly lighter navy
79
+ backgroundTertiary: '#2d3446', // Tertiary dark blue
80
+ backgroundLight: 'rgba(212, 165, 116, 0.08)', // Very light amber
81
+ backgroundHover: 'rgba(212, 165, 116, 0.15)', // Translucent amber hover
82
+ surface: '#212738', // Dark navy surface
83
+ textSecondary: '#c9b8a3', // Muted gold
84
+ textTertiary: '#8b7968', // Faded bronze
85
+ textMuted: '#8b7968', // Faded bronze
86
+
87
+ // Search highlight colors
88
+ highlightBg: 'rgba(255, 193, 7, 0.25)', // Semi-transparent amber/yellow
89
+ highlightBorder: 'rgba(255, 193, 7, 0.5)', // Stronger amber for border
90
+ },
91
+
92
+ // Component variants
93
+ buttons: {
94
+ primary: {
95
+ color: 'background',
96
+ bg: 'primary',
97
+ '&:hover': {
98
+ bg: 'secondary',
99
+ },
100
+ },
101
+ secondary: {
102
+ color: 'text',
103
+ bg: 'muted',
104
+ '&:hover': {
105
+ bg: 'backgroundSecondary',
106
+ },
107
+ },
108
+ ghost: {
109
+ color: 'primary',
110
+ bg: 'transparent',
111
+ '&:hover': {
112
+ bg: 'muted',
113
+ },
114
+ },
115
+ },
116
+
117
+ text: {
118
+ heading: {
119
+ fontFamily: 'heading',
120
+ fontWeight: 'heading',
121
+ lineHeight: 'heading',
122
+ },
123
+ body: {
124
+ fontFamily: 'body',
125
+ fontWeight: 'body',
126
+ lineHeight: 'body',
127
+ },
128
+ caption: {
129
+ fontSize: 1,
130
+ color: 'textSecondary',
131
+ },
132
+ },
133
+
134
+ cards: {
135
+ primary: {
136
+ bg: 'background',
137
+ border: '1px solid',
138
+ borderColor: 'border',
139
+ borderRadius: 2,
140
+ },
141
+ secondary: {
142
+ bg: 'backgroundSecondary',
143
+ border: '1px solid',
144
+ borderColor: 'border',
145
+ borderRadius: 2,
146
+ },
147
+ },
148
+ };
149
+
150
+ // Terminal theme - Minimalistic developer-focused dark theme with transparency
151
+ export const terminalTheme: Theme = {
152
+ // Spacing scale (used for margin, padding, etc.)
153
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
154
+
155
+ // Typography - More monospace focused
156
+ fonts: {
157
+ body: '"SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace',
158
+ heading: '"SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace',
159
+ monospace: '"SF Mono", "Monaco", "Inconsolata", "Fira Code", monospace',
160
+ },
161
+
162
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
163
+
164
+ fontScale: 1.0,
165
+
166
+ fontWeights: {
167
+ body: 400,
168
+ heading: 500,
169
+ bold: 600,
170
+ light: 300,
171
+ medium: 500,
172
+ semibold: 600,
173
+ },
174
+
175
+ lineHeights: {
176
+ body: 1.6,
177
+ heading: 1.3,
178
+ tight: 1.4,
179
+ relaxed: 1.8,
180
+ },
181
+
182
+ // Layout
183
+ breakpoints: ['640px', '768px', '1024px', '1280px'],
184
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
185
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
186
+ shadows: [
187
+ 'none',
188
+ '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
189
+ '0 2px 4px 0 rgba(0, 0, 0, 0.06)',
190
+ '0 4px 6px 0 rgba(0, 0, 0, 0.07)',
191
+ '0 8px 12px 0 rgba(0, 0, 0, 0.08)',
192
+ '0 16px 24px 0 rgba(0, 0, 0, 0.10)',
193
+ ],
194
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
195
+
196
+ // Colors - Dark terminal theme with transparency
197
+ colors: {
198
+ // Base colors - Dark terminal inspired with transparency
199
+ text: '#e4e4e4', // Light gray
200
+ background: 'rgba(10, 10, 10, 0.85)', // Semi-transparent almost black
201
+ primary: '#66b3ff', // Bright terminal blue
202
+ secondary: '#80c4ff', // Lighter blue
203
+ accent: '#66ff99', // Bright terminal green
204
+ highlight: 'rgba(102, 179, 255, 0.15)', // Translucent blue
205
+ muted: 'rgba(26, 26, 26, 0.8)', // Semi-transparent dark gray
206
+
207
+ // Status colors - Terminal inspired
208
+ success: '#66ff99', // Bright green
209
+ warning: '#ffcc66', // Bright amber
210
+ error: '#ff6666', // Bright red
211
+ info: '#66b3ff', // Bright blue
212
+
213
+ // Additional semantic colors with transparency
214
+ border: 'rgba(255, 255, 255, 0.1)', // Transparent white border
215
+ backgroundSecondary: 'rgba(15, 15, 15, 0.9)', // Semi-transparent slightly lighter black
216
+ backgroundTertiary: 'rgba(20, 20, 20, 0.9)', // Semi-transparent even lighter black
217
+ backgroundLight: 'rgba(255, 255, 255, 0.05)', // Very transparent white
218
+ backgroundHover: 'rgba(102, 179, 255, 0.08)', // Subtle blue hover
219
+ surface: 'rgba(15, 15, 15, 0.95)', // Nearly opaque dark surface
220
+ textSecondary: 'rgba(255, 255, 255, 0.7)', // 70% white
221
+ textTertiary: 'rgba(255, 255, 255, 0.5)', // 50% white
222
+ textMuted: 'rgba(255, 255, 255, 0.4)', // 40% white
223
+
224
+ // Search highlight colors
225
+ highlightBg: 'rgba(255, 235, 59, 0.25)', // Yellow highlight
226
+ highlightBorder: 'rgba(255, 235, 59, 0.5)', // Stronger yellow for border
227
+ },
228
+
229
+ // Light mode for terminal theme
230
+ modes: {
231
+ light: {
232
+ // Base colors - Light terminal with transparency
233
+ text: '#1a1a1a', // Almost black
234
+ background: 'rgba(255, 255, 255, 0.9)', // Semi-transparent white
235
+ primary: '#0066cc', // Classic terminal blue
236
+ secondary: '#0052a3', // Darker blue
237
+ accent: '#00cc88', // Terminal green
238
+ highlight: 'rgba(0, 102, 204, 0.08)', // Very light blue highlight
239
+ muted: 'rgba(245, 245, 245, 0.8)', // Semi-transparent light gray
240
+
241
+ // Status colors - Terminal inspired
242
+ success: '#00cc88', // Green
243
+ warning: '#ffaa00', // Amber
244
+ error: '#ff3333', // Red
245
+ info: '#0066cc', // Blue
246
+
247
+ // Additional semantic colors with transparency
248
+ border: 'rgba(0, 0, 0, 0.1)', // Transparent black border
249
+ backgroundSecondary: 'rgba(250, 250, 250, 0.9)', // Semi-transparent very light gray
250
+ backgroundTertiary: 'rgba(245, 245, 245, 0.9)', // Semi-transparent light gray
251
+ backgroundLight: 'rgba(0, 0, 0, 0.02)', // Very transparent black
252
+ backgroundHover: 'rgba(0, 102, 204, 0.04)', // Very subtle blue hover
253
+ surface: 'rgba(255, 255, 255, 0.95)', // Nearly opaque white surface
254
+ textSecondary: 'rgba(0, 0, 0, 0.6)', // 60% black
255
+ textTertiary: 'rgba(0, 0, 0, 0.4)', // 40% black
256
+ textMuted: 'rgba(0, 0, 0, 0.3)', // 30% black
257
+
258
+ // Search highlight colors
259
+ highlightBg: 'rgba(255, 235, 59, 0.3)', // Light yellow highlight
260
+ highlightBorder: 'rgba(255, 235, 59, 0.6)', // Stronger yellow for border
261
+ },
262
+ },
263
+
264
+ // Component variants
265
+ buttons: {
266
+ primary: {
267
+ color: 'white',
268
+ bg: 'primary',
269
+ borderWidth: 0,
270
+ '&:hover': {
271
+ bg: 'secondary',
272
+ },
273
+ },
274
+ secondary: {
275
+ color: 'primary',
276
+ bg: 'transparent',
277
+ borderWidth: 1,
278
+ borderStyle: 'solid',
279
+ borderColor: 'primary',
280
+ '&:hover': {
281
+ bg: 'highlight',
282
+ },
283
+ },
284
+ ghost: {
285
+ color: 'text',
286
+ bg: 'transparent',
287
+ '&:hover': {
288
+ bg: 'backgroundHover',
289
+ },
290
+ },
291
+ },
292
+
293
+ text: {
294
+ heading: {
295
+ fontFamily: 'heading',
296
+ fontWeight: 'heading',
297
+ lineHeight: 'heading',
298
+ },
299
+ body: {
300
+ fontFamily: 'body',
301
+ fontWeight: 'body',
302
+ lineHeight: 'body',
303
+ },
304
+ caption: {
305
+ fontSize: 1,
306
+ color: 'textSecondary',
307
+ },
308
+ },
309
+
310
+ cards: {
311
+ primary: {
312
+ bg: 'surface',
313
+ border: '1px solid',
314
+ borderColor: 'border',
315
+ borderRadius: 1,
316
+ },
317
+ secondary: {
318
+ bg: 'backgroundSecondary',
319
+ border: '1px solid',
320
+ borderColor: 'border',
321
+ borderRadius: 1,
322
+ },
323
+ },
324
+ };
325
+
326
+ // Matrix theme - Classic Matrix green-on-black terminal look
327
+ export const matrixTheme: Theme = {
328
+ // Spacing scale (used for margin, padding, etc.)
329
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
330
+
331
+ // Typography - Classic terminal/Matrix fonts
332
+ fonts: {
333
+ body: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
334
+ heading: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
335
+ monospace: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
336
+ },
337
+
338
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
339
+
340
+ fontScale: 1.0,
341
+
342
+ fontWeights: {
343
+ body: 400,
344
+ heading: 500,
345
+ bold: 600,
346
+ light: 300,
347
+ medium: 500,
348
+ semibold: 600,
349
+ },
350
+
351
+ lineHeights: {
352
+ body: 1.5,
353
+ heading: 1.2,
354
+ tight: 1.3,
355
+ relaxed: 1.7,
356
+ },
357
+
358
+ // Layout
359
+ breakpoints: ['640px', '768px', '1024px', '1280px'],
360
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
361
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
362
+ shadows: [
363
+ 'none',
364
+ '0 0 5px rgba(0, 216, 53, 0.15)',
365
+ '0 0 10px rgba(0, 216, 53, 0.2)',
366
+ '0 0 15px rgba(0, 216, 53, 0.25)',
367
+ '0 0 20px rgba(0, 216, 53, 0.3)',
368
+ '0 0 30px rgba(0, 216, 53, 0.4)',
369
+ ],
370
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
371
+
372
+ // Colors - Matrix inspired theme with softer whites and green accents
373
+ colors: {
374
+ // Base colors - Softer whites with Matrix green accents
375
+ text: '#a8a8a8', // Much softer white for main text
376
+ background: '#000000', // Pure black background
377
+ primary: '#00d835', // Softer Matrix green for primary actions
378
+ secondary: '#00a828', // Darker softer green for secondary
379
+ accent: '#00d835', // Softer Matrix green accent
380
+ highlight: 'rgba(0, 216, 53, 0.15)', // Translucent softer green highlight
381
+ muted: '#0a0a0a', // Very dark gray
382
+
383
+ // Status colors - More variety while keeping Matrix feel
384
+ success: '#00d835', // Softer Matrix green
385
+ warning: '#d4a000', // Softer amber warning
386
+ error: '#d63333', // Softer red for errors
387
+ info: '#00a8d6', // Softer cyan for info
388
+
389
+ // Additional semantic colors
390
+ border: 'rgba(0, 216, 53, 0.2)', // Subtle softer green border
391
+ backgroundSecondary: '#0a0a0a', // Very dark gray
392
+ backgroundTertiary: '#111111', // Slightly lighter dark gray
393
+ backgroundLight: 'rgba(0, 216, 53, 0.03)', // Very faint softer green glow
394
+ backgroundHover: 'rgba(0, 216, 53, 0.08)', // Subtle softer green hover
395
+ surface: '#050505', // Almost black
396
+ textSecondary: '#808080', // Even softer gray for secondary text
397
+ textTertiary: '#606060', // Much softer medium gray
398
+ textMuted: '#484848', // Much softer darker gray
399
+
400
+ // Search highlight colors
401
+ highlightBg: 'rgba(0, 216, 53, 0.25)', // Softer green highlight
402
+ highlightBorder: 'rgba(0, 216, 53, 0.5)', // Stronger softer green for border
403
+ },
404
+
405
+ // Component variants
406
+ buttons: {
407
+ primary: {
408
+ color: 'black',
409
+ bg: 'primary',
410
+ borderWidth: 0,
411
+ '&:hover': {
412
+ bg: 'secondary',
413
+ },
414
+ },
415
+ secondary: {
416
+ color: 'primary',
417
+ bg: 'transparent',
418
+ borderWidth: 1,
419
+ borderStyle: 'solid',
420
+ borderColor: 'primary',
421
+ '&:hover': {
422
+ bg: 'highlight',
423
+ },
424
+ },
425
+ ghost: {
426
+ color: 'text',
427
+ bg: 'transparent',
428
+ '&:hover': {
429
+ bg: 'backgroundHover',
430
+ },
431
+ },
432
+ },
433
+
434
+ text: {
435
+ heading: {
436
+ fontFamily: 'heading',
437
+ fontWeight: 'heading',
438
+ lineHeight: 'heading',
439
+ },
440
+ body: {
441
+ fontFamily: 'body',
442
+ fontWeight: 'body',
443
+ lineHeight: 'body',
444
+ },
445
+ caption: {
446
+ fontSize: 1,
447
+ color: 'textSecondary',
448
+ },
449
+ },
450
+
451
+ cards: {
452
+ primary: {
453
+ bg: 'surface',
454
+ border: '1px solid',
455
+ borderColor: 'border',
456
+ borderRadius: 0, // No rounded corners for authentic terminal look
457
+ },
458
+ secondary: {
459
+ bg: 'backgroundSecondary',
460
+ border: '1px solid',
461
+ borderColor: 'border',
462
+ borderRadius: 0,
463
+ },
464
+ },
465
+ };
466
+
467
+ // Matrix Minimal theme - Matrix aesthetic with white primary/secondary
468
+ export const matrixMinimalTheme: Theme = {
469
+ // Spacing scale (used for margin, padding, etc.)
470
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
471
+
472
+ // Typography - Classic terminal/Matrix fonts
473
+ fonts: {
474
+ body: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
475
+ heading: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
476
+ monospace: '"Courier New", "Courier", "Lucida Console", "Monaco", monospace',
477
+ },
478
+
479
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
480
+
481
+ fontScale: 1.0,
482
+
483
+ fontWeights: {
484
+ body: 400,
485
+ heading: 500,
486
+ bold: 600,
487
+ light: 300,
488
+ medium: 500,
489
+ semibold: 600,
490
+ },
491
+
492
+ lineHeights: {
493
+ body: 1.5,
494
+ heading: 1.2,
495
+ tight: 1.3,
496
+ relaxed: 1.7,
497
+ },
498
+
499
+ // Layout
500
+ breakpoints: ['640px', '768px', '1024px', '1280px'],
501
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
502
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
503
+ shadows: [
504
+ 'none',
505
+ '0 1px 2px rgba(0, 0, 0, 0.05)',
506
+ '0 2px 4px rgba(0, 0, 0, 0.1)',
507
+ '0 4px 8px rgba(0, 0, 0, 0.15)',
508
+ '0 8px 16px rgba(0, 0, 0, 0.2)',
509
+ '0 0 20px rgba(0, 216, 53, 0.1)', // Subtle softer green glow for special elements
510
+ ],
511
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
512
+
513
+ // Colors - Minimal Matrix theme with white primary/secondary and green accents
514
+ colors: {
515
+ // Base colors - Whites with Matrix green as accent only
516
+ text: '#a8a8a8', // Much softer white for main text
517
+ background: '#000000', // Pure black background
518
+ primary: '#b8b8b8', // Much softer off-white for primary
519
+ secondary: '#909090', // Much softer light gray for secondary
520
+ accent: '#00d835', // Softer Matrix green for accents only
521
+ highlight: 'rgba(0, 216, 53, 0.1)', // Very subtle softer green highlight
522
+ muted: '#0a0a0a', // Very dark gray
523
+
524
+ // Status colors - Practical colors
525
+ success: '#00d835', // Softer Matrix green for success
526
+ warning: '#d4a000', // Softer amber warning
527
+ error: '#d63333', // Softer red for errors
528
+ info: '#00a8d6', // Softer cyan for info
529
+
530
+ // Additional semantic colors
531
+ border: 'rgba(184, 184, 184, 0.1)', // Subtle softer off-white border
532
+ backgroundSecondary: '#0a0a0a', // Very dark gray
533
+ backgroundTertiary: '#111111', // Slightly lighter dark gray
534
+ backgroundLight: 'rgba(184, 184, 184, 0.02)', // Very faint softer off-white glow
535
+ backgroundHover: 'rgba(0, 216, 53, 0.05)', // Very subtle softer green hover
536
+ surface: '#050505', // Almost black
537
+ textSecondary: '#808080', // Even softer gray for secondary text
538
+ textTertiary: '#606060', // Much softer medium gray
539
+ textMuted: '#484848', // Much softer darker gray
540
+
541
+ // Search highlight colors
542
+ highlightBg: 'rgba(0, 216, 53, 0.2)', // Softer green highlight for search
543
+ highlightBorder: 'rgba(0, 216, 53, 0.4)', // Stronger softer green for border
544
+ },
545
+
546
+ // Component variants
547
+ buttons: {
548
+ primary: {
549
+ color: 'black',
550
+ bg: 'primary',
551
+ borderWidth: 0,
552
+ '&:hover': {
553
+ bg: 'secondary',
554
+ },
555
+ },
556
+ secondary: {
557
+ color: 'primary',
558
+ bg: 'transparent',
559
+ borderWidth: 1,
560
+ borderStyle: 'solid',
561
+ borderColor: 'primary',
562
+ '&:hover': {
563
+ bg: 'backgroundHover',
564
+ },
565
+ },
566
+ ghost: {
567
+ color: 'text',
568
+ bg: 'transparent',
569
+ '&:hover': {
570
+ bg: 'backgroundHover',
571
+ },
572
+ },
573
+ },
574
+
575
+ text: {
576
+ heading: {
577
+ fontFamily: 'heading',
578
+ fontWeight: 'heading',
579
+ lineHeight: 'heading',
580
+ },
581
+ body: {
582
+ fontFamily: 'body',
583
+ fontWeight: 'body',
584
+ lineHeight: 'body',
585
+ },
586
+ caption: {
587
+ fontSize: 1,
588
+ color: 'textSecondary',
589
+ },
590
+ },
591
+
592
+ cards: {
593
+ primary: {
594
+ bg: 'surface',
595
+ border: '1px solid',
596
+ borderColor: 'border',
597
+ borderRadius: 0, // No rounded corners for terminal look
598
+ },
599
+ secondary: {
600
+ bg: 'backgroundSecondary',
601
+ border: '1px solid',
602
+ borderColor: 'border',
603
+ borderRadius: 0,
604
+ },
605
+ },
606
+ };
607
+
608
+ // Slate theme - Sophisticated grey-based theme with vibrant accents
609
+ export const slateTheme: Theme = {
610
+ // Spacing scale (used for margin, padding, etc.)
611
+ space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
612
+
613
+ // Typography
614
+ fonts: {
615
+ body: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
616
+ heading: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
617
+ monospace: '"Fira Code", "SF Mono", Monaco, Inconsolata, monospace',
618
+ },
619
+
620
+ fontSizes: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],
621
+
622
+ fontScale: 1.0,
623
+
624
+ fontWeights: {
625
+ body: 400,
626
+ heading: 600,
627
+ bold: 700,
628
+ light: 300,
629
+ medium: 500,
630
+ semibold: 600,
631
+ },
632
+
633
+ lineHeights: {
634
+ body: 1.6,
635
+ heading: 1.3,
636
+ tight: 1.25,
637
+ relaxed: 1.75,
638
+ },
639
+
640
+ // Layout
641
+ breakpoints: ['640px', '768px', '1024px', '1280px'],
642
+ sizes: [16, 32, 64, 128, 256, 512, 768, 1024, 1536],
643
+ radii: [0, 2, 4, 6, 8, 12, 16, 24],
644
+ shadows: [
645
+ 'none',
646
+ '0 1px 3px 0 rgba(0, 0, 0, 0.2)',
647
+ '0 4px 6px -1px rgba(0, 0, 0, 0.2)',
648
+ '0 10px 15px -3px rgba(0, 0, 0, 0.2)',
649
+ '0 20px 25px -5px rgba(0, 0, 0, 0.25)',
650
+ '0 25px 50px -12px rgba(0, 0, 0, 0.3)',
651
+ ],
652
+ zIndices: [0, 1, 10, 20, 30, 40, 50],
653
+
654
+ // Colors - Grey-based with vibrant accents
655
+ colors: {
656
+ // Base colors - Various shades of grey with white accents
657
+ text: '#9ca3af', // Medium grey for most text
658
+ background: '#1a1c1e', // Very dark charcoal
659
+ primary: '#d1d5db', // Light grey for primary
660
+ secondary: '#6b7280', // Medium grey for secondary
661
+ accent: '#f59e0b', // Vibrant amber
662
+ highlight: 'rgba(209, 213, 219, 0.15)', // Translucent light grey
663
+ muted: '#2d3134', // Dark grey
664
+
665
+ // Status colors - Vibrant and practical
666
+ success: '#10b981', // Emerald green
667
+ warning: '#f59e0b', // Amber
668
+ error: '#ef4444', // Red
669
+ info: '#3b82f6', // Blue
670
+
671
+ // Additional semantic colors - Grey palette
672
+ border: 'rgba(156, 163, 175, 0.15)', // Subtle grey border
673
+ backgroundSecondary: '#22252a', // Slightly lighter dark grey
674
+ backgroundTertiary: '#2d3134', // Even lighter dark grey
675
+ backgroundLight: 'rgba(156, 163, 175, 0.05)', // Very faint grey
676
+ backgroundHover: 'rgba(156, 163, 175, 0.1)', // Subtle grey hover
677
+ surface: '#1f2124', // Near-black surface
678
+ textSecondary: '#e5e7eb', // Light grey for important text (closer to white)
679
+ textTertiary: '#6b7280', // Darker grey
680
+ textMuted: '#4b5563', // Even darker grey
681
+
682
+ // Search highlight colors
683
+ highlightBg: 'rgba(245, 158, 11, 0.25)', // Amber highlight
684
+ highlightBorder: 'rgba(245, 158, 11, 0.5)', // Stronger amber for border
685
+ },
686
+
687
+ // Component variants
688
+ buttons: {
689
+ primary: {
690
+ color: '#1a1c1e', // Dark text on light grey
691
+ bg: 'primary',
692
+ borderWidth: 0,
693
+ '&:hover': {
694
+ bg: '#9ca3af', // Darker grey on hover
695
+ },
696
+ },
697
+ secondary: {
698
+ color: '#e5e7eb', // Light text on medium grey
699
+ bg: 'secondary',
700
+ borderWidth: 0,
701
+ '&:hover': {
702
+ bg: '#4b5563', // Darker grey on hover
703
+ },
704
+ },
705
+ ghost: {
706
+ color: 'textSecondary',
707
+ bg: 'transparent',
708
+ '&:hover': {
709
+ bg: 'backgroundHover',
710
+ },
711
+ },
712
+ },
713
+
714
+ text: {
715
+ heading: {
716
+ fontFamily: 'heading',
717
+ fontWeight: 'heading',
718
+ lineHeight: 'heading',
719
+ color: 'textSecondary', // Headers in lighter grey/white
720
+ },
721
+ body: {
722
+ fontFamily: 'body',
723
+ fontWeight: 'body',
724
+ lineHeight: 'body',
725
+ },
726
+ caption: {
727
+ fontSize: 1,
728
+ color: 'textTertiary',
729
+ },
730
+ },
731
+
732
+ cards: {
733
+ primary: {
734
+ bg: 'surface',
735
+ border: '1px solid',
736
+ borderColor: 'border',
737
+ borderRadius: 3,
738
+ },
739
+ secondary: {
740
+ bg: 'backgroundSecondary',
741
+ border: '1px solid',
742
+ borderColor: 'border',
743
+ borderRadius: 3,
744
+ },
745
+ },
746
+ };