@j3m-quantum/ui 0.2.0 → 0.3.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.
@@ -1,19 +1,32 @@
1
1
  /* ========================================
2
2
  J3M UI STYLES
3
3
 
4
- Main entry point for J3M UI styling.
5
- Import this in your app to get the full J3M theme.
4
+ Import this AFTER shadcn's globals.css to apply J3M theming.
6
5
 
7
- Usage:
8
- @import "tailwindcss";
9
- @import "@j3m-quantum/ui/styles";
6
+ Prerequisites:
7
+ 1. Run `npx shadcn@latest init` first
8
+ 2. npm install @j3m-quantum/ui
9
+
10
+ Usage in your CSS file:
11
+
12
+ For Vite + React:
13
+ @import "tailwindcss";
14
+ @source "../node_modules/@j3m-quantum/ui/dist";
15
+ @import "@j3m-quantum/ui/styles";
16
+
17
+ For Next.js:
18
+ @import "tailwindcss";
19
+ @import "@j3m-quantum/ui/styles";
20
+
21
+ Note: Vite requires the @source directive for Tailwind v4
22
+ to scan the package's compiled classes.
10
23
  ======================================== */
11
24
 
12
- /* 1. Shadcn Base Theme (Tailwind v4 theme colors) */
13
- @import "./base-theme.css";
14
-
15
- /* 2. J3M Design Tokens (primitives, scales) */
25
+ /* 1. J3M Design Tokens (color scales, spacing, radii, glass effects) */
16
26
  @import "./tokens.css";
17
27
 
18
- /* 3. J3M Theme Overrides (component customizations) */
28
+ /* 2. J3M Theme Overrides (maps shadcn vars to J3M colors) */
29
+ @import "./j3m-overrides.css";
30
+
31
+ /* 3. Component-specific overrides (toast styling, glass utilities) */
19
32
  @import "./theme.css";
@@ -0,0 +1,115 @@
1
+ /* ========================================
2
+ J3M THEME OVERRIDES
3
+
4
+ Overrides shadcn's default theme variables with J3M colors.
5
+ Import this AFTER shadcn's globals.css to apply J3M branding.
6
+
7
+ Requires: User has run `npx shadcn init` first
8
+ ======================================== */
9
+
10
+ :root {
11
+ /* ========================================
12
+ OVERRIDE SHADCN THEME COLORS WITH J3M
13
+ ======================================== */
14
+
15
+ /* Primary - J3M Orange */
16
+ --primary: var(--j3m-primary-300);
17
+ --primary-foreground: #FFFFFF;
18
+
19
+ /* Secondary - J3M Neutral */
20
+ --secondary: var(--j3m-neutral-200);
21
+ --secondary-foreground: var(--j3m-neutral-900);
22
+
23
+ /* Muted */
24
+ --muted: var(--j3m-neutral-200);
25
+ --muted-foreground: var(--j3m-neutral-600);
26
+
27
+ /* Accent */
28
+ --accent: var(--j3m-primary-100);
29
+ --accent-foreground: var(--j3m-primary-500);
30
+
31
+ /* Destructive - J3M Red */
32
+ --destructive: var(--j3m-red-100);
33
+ --destructive-foreground: #FFFFFF;
34
+
35
+ /* Background & Foreground */
36
+ --background: var(--j3m-neutral-100);
37
+ --foreground: var(--j3m-neutral-1000);
38
+
39
+ /* Card */
40
+ --card: var(--j3m-neutral-100);
41
+ --card-foreground: var(--j3m-neutral-1000);
42
+
43
+ /* Popover */
44
+ --popover: var(--j3m-neutral-100);
45
+ --popover-foreground: var(--j3m-neutral-1000);
46
+
47
+ /* Border & Input */
48
+ --border: var(--j3m-neutral-300);
49
+ --input: var(--j3m-neutral-300);
50
+ --ring: var(--j3m-primary-250);
51
+
52
+ /* Sidebar - J3M branded */
53
+ --sidebar-background: var(--j3m-neutral-100);
54
+ --sidebar-foreground: var(--j3m-neutral-900);
55
+ --sidebar-primary: var(--j3m-primary-300);
56
+ --sidebar-primary-foreground: #FFFFFF;
57
+ --sidebar-accent: var(--j3m-neutral-200);
58
+ --sidebar-accent-foreground: var(--j3m-neutral-900);
59
+ --sidebar-border: var(--j3m-neutral-200);
60
+ --sidebar-ring: var(--j3m-primary-300);
61
+
62
+ /* Chart colors - J3M palette */
63
+ --chart-1: var(--j3m-primary-300);
64
+ --chart-2: var(--j3m-green-200);
65
+ --chart-3: var(--j3m-neutral-700);
66
+ --chart-4: var(--j3m-yellow-100);
67
+ --chart-5: var(--j3m-primary-200);
68
+
69
+ /* Radius - J3M values */
70
+ --radius: var(--j3m-radius-s);
71
+ }
72
+
73
+ /* ========================================
74
+ DARK MODE OVERRIDES
75
+ ======================================== */
76
+
77
+ .dark {
78
+ --primary: var(--j3m-primary-250);
79
+ --primary-foreground: var(--j3m-neutral-1000);
80
+
81
+ --secondary: var(--j3m-neutral-800);
82
+ --secondary-foreground: var(--j3m-neutral-100);
83
+
84
+ --muted: var(--j3m-neutral-800);
85
+ --muted-foreground: var(--j3m-neutral-400);
86
+
87
+ --accent: var(--j3m-neutral-800);
88
+ --accent-foreground: var(--j3m-neutral-100);
89
+
90
+ --destructive: var(--j3m-red-200);
91
+ --destructive-foreground: #FFFFFF;
92
+
93
+ --background: var(--j3m-neutral-1000);
94
+ --foreground: var(--j3m-neutral-100);
95
+
96
+ --card: var(--j3m-neutral-1000);
97
+ --card-foreground: var(--j3m-neutral-100);
98
+
99
+ --popover: var(--j3m-neutral-1000);
100
+ --popover-foreground: var(--j3m-neutral-100);
101
+
102
+ --border: var(--j3m-neutral-800);
103
+ --input: var(--j3m-neutral-800);
104
+ --ring: var(--j3m-primary-250);
105
+
106
+ --sidebar-background: var(--j3m-neutral-1000);
107
+ --sidebar-foreground: var(--j3m-neutral-100);
108
+ --sidebar-primary: var(--j3m-primary-250);
109
+ --sidebar-primary-foreground: var(--j3m-neutral-1000);
110
+ --sidebar-accent: var(--j3m-neutral-800);
111
+ --sidebar-accent-foreground: var(--j3m-neutral-100);
112
+ --sidebar-border: var(--j3m-neutral-800);
113
+ --sidebar-ring: var(--j3m-primary-250);
114
+ }
115
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@j3m-quantum/ui",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "J3M UI Component Library - themed shadcn/ui components with design tokens",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -1,124 +0,0 @@
1
- /* ========================================
2
- SHADCN BASE THEME
3
- Required CSS variables for Tailwind v4 theme colors.
4
- These map to the Tailwind classes used by components.
5
- ======================================== */
6
-
7
- @theme {
8
- /* Core colors */
9
- --color-background: #ffffff;
10
- --color-foreground: #09090b;
11
-
12
- /* Card */
13
- --color-card: #ffffff;
14
- --color-card-foreground: #09090b;
15
-
16
- /* Popover */
17
- --color-popover: #ffffff;
18
- --color-popover-foreground: #09090b;
19
-
20
- /* Primary - J3M Orange */
21
- --color-primary: var(--j3m-primary-300, #F36C21);
22
- --color-primary-foreground: #ffffff;
23
-
24
- /* Secondary */
25
- --color-secondary: #f4f4f5;
26
- --color-secondary-foreground: #18181b;
27
-
28
- /* Muted */
29
- --color-muted: #f4f4f5;
30
- --color-muted-foreground: #71717a;
31
-
32
- /* Accent */
33
- --color-accent: #f4f4f5;
34
- --color-accent-foreground: #18181b;
35
-
36
- /* Destructive */
37
- --color-destructive: #ef4444;
38
- --color-destructive-foreground: #fafafa;
39
-
40
- /* Border & Input */
41
- --color-border: #e4e4e7;
42
- --color-input: #e4e4e7;
43
- --color-ring: var(--j3m-primary-300, #F36C21);
44
-
45
- /* Sidebar */
46
- --color-sidebar: #fafafa;
47
- --color-sidebar-foreground: #09090b;
48
- --color-sidebar-primary: var(--j3m-primary-300, #F36C21);
49
- --color-sidebar-primary-foreground: #ffffff;
50
- --color-sidebar-accent: #f4f4f5;
51
- --color-sidebar-accent-foreground: #18181b;
52
- --color-sidebar-border: #e4e4e7;
53
- --color-sidebar-ring: var(--j3m-primary-300, #F36C21);
54
-
55
- /* Chart colors - J3M branded */
56
- --color-chart-1: var(--j3m-primary-300, #F36C21);
57
- --color-chart-2: var(--j3m-green-200, #1FC16B);
58
- --color-chart-3: var(--j3m-neutral-700, #777777);
59
- --color-chart-4: var(--j3m-yellow-100, #FFDB43);
60
- --color-chart-5: var(--j3m-primary-200, #F79D6B);
61
-
62
- /* Default radius */
63
- --radius: 0.5rem;
64
- }
65
-
66
- /* ========================================
67
- DARK MODE
68
- ======================================== */
69
-
70
- .dark {
71
- --color-background: #09090b;
72
- --color-foreground: #fafafa;
73
-
74
- --color-card: #09090b;
75
- --color-card-foreground: #fafafa;
76
-
77
- --color-popover: #09090b;
78
- --color-popover-foreground: #fafafa;
79
-
80
- --color-primary: var(--j3m-primary-250, #F58446);
81
- --color-primary-foreground: #18181b;
82
-
83
- --color-secondary: #27272a;
84
- --color-secondary-foreground: #fafafa;
85
-
86
- --color-muted: #27272a;
87
- --color-muted-foreground: #a1a1aa;
88
-
89
- --color-accent: #27272a;
90
- --color-accent-foreground: #fafafa;
91
-
92
- --color-destructive: #7f1d1d;
93
- --color-destructive-foreground: #fafafa;
94
-
95
- --color-border: #27272a;
96
- --color-input: #27272a;
97
- --color-ring: var(--j3m-primary-250, #F58446);
98
-
99
- --color-sidebar: #09090b;
100
- --color-sidebar-foreground: #fafafa;
101
- --color-sidebar-primary: var(--j3m-primary-250, #F58446);
102
- --color-sidebar-primary-foreground: #18181b;
103
- --color-sidebar-accent: #27272a;
104
- --color-sidebar-accent-foreground: #fafafa;
105
- --color-sidebar-border: #27272a;
106
- --color-sidebar-ring: var(--j3m-primary-250, #F58446);
107
- }
108
-
109
- /* ========================================
110
- BASE STYLES
111
- ======================================== */
112
-
113
- @layer base {
114
- * {
115
- border-color: var(--color-border);
116
- }
117
-
118
- body {
119
- background-color: var(--color-background);
120
- color: var(--color-foreground);
121
- font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
122
- }
123
- }
124
-