@titan-design/react-ui 0.0.1 → 0.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@titan-design/react-ui",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Cross-platform design system built on Gluestack UI",
5
5
  "author": "Henry Jewkes",
6
6
  "license": "MIT",
@@ -26,7 +26,8 @@
26
26
  "types": "./dist/theme/index.d.ts",
27
27
  "import": "./dist/theme/index.mjs",
28
28
  "require": "./dist/theme/index.js"
29
- }
29
+ },
30
+ "./theme/global.css": "./src/theme/global.css"
30
31
  },
31
32
  "engines": {
32
33
  "node": ">=20.0.0"
@@ -39,7 +40,7 @@
39
40
  "test:coverage": "vitest --coverage",
40
41
  "storybook": "storybook dev -p 6006",
41
42
  "build-storybook": "storybook build",
42
- "prepublishOnly": "pnpm build && pnpm test -- --run"
43
+ "prepublishOnly": "tsup && vitest --run"
43
44
  },
44
45
  "peerDependencies": {
45
46
  "lucide-react": ">=0.400.0",
@@ -103,6 +104,7 @@
103
104
  },
104
105
  "files": [
105
106
  "dist",
107
+ "src/theme/global.css",
106
108
  "tailwind.config.js"
107
109
  ],
108
110
  "sideEffects": false,
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Global CSS Variables
3
+ *
4
+ * Dark mode is the default (:root). Light mode is activated with .light class.
5
+ */
6
+
7
+ /* Import fonts - must be at top level, not inside @layer */
8
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Nunito+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@600;700&display=swap');
9
+
10
+ @tailwind base;
11
+ @tailwind components;
12
+ @tailwind utilities;
13
+
14
+ @layer base {
15
+
16
+ /* Dark mode (default) */
17
+ :root {
18
+ --color-brand-primary: #FF7900;
19
+ --color-brand-primary-light: #FF9630;
20
+ --color-brand-primary-dark: #D0620C;
21
+ --color-brand-primary-subtle: rgba(255, 121, 0, 0.12);
22
+ --color-brand-secondary: #406D87;
23
+ --color-brand-secondary-light: #678498;
24
+ --color-brand-secondary-dark: #32556D;
25
+ --color-brand-secondary-subtle: rgba(64, 109, 135, 0.12);
26
+ --color-brand-primary-hover: #FF8500;
27
+ --color-brand-primary-active: #FF9630;
28
+ --color-brand-secondary-hover: #557488;
29
+ --color-brand-secondary-active: #678498;
30
+
31
+ --color-on-brand-primary: #FFFFFF;
32
+ --color-on-brand-secondary: #FFFFFF;
33
+
34
+ --color-status-success: #14B8A6;
35
+ --color-status-success-light: #43C6B7;
36
+ --color-status-success-dark: #0E8074;
37
+ --color-status-success-subtle: rgba(20, 184, 166, 0.12);
38
+ --color-status-error: #D14343;
39
+ --color-status-error-light: #DA6868;
40
+ --color-status-error-dark: #922E2E;
41
+ --color-status-error-subtle: rgba(209, 67, 67, 0.12);
42
+ --color-status-warning: #FFB020;
43
+ --color-status-warning-light: #FFBF4C;
44
+ --color-status-warning-dark: #B27B16;
45
+ --color-status-warning-subtle: rgba(255, 176, 32, 0.12);
46
+ --color-status-info: #2196F3;
47
+ --color-status-info-light: #64B6F7;
48
+ --color-status-info-dark: #0B79D0;
49
+ --color-status-info-subtle: rgba(33, 150, 243, 0.12);
50
+
51
+ --color-on-status-success: #FFFFFF;
52
+ --color-on-status-error: #FFFFFF;
53
+ --color-on-status-warning: #FFFFFF;
54
+ --color-on-status-info: #FFFFFF;
55
+
56
+ --color-result-improve: #4caf50;
57
+ --color-result-improve-light: rgba(76, 175, 80, 0.16);
58
+ --color-result-improve-dark: #248a24;
59
+ --color-result-degrade: #ef5350;
60
+ --color-result-degrade-light: rgba(239, 83, 80, 0.16);
61
+ --color-result-degrade-dark: #b30000;
62
+ --color-result-inconclusive: #9E9A97;
63
+ --color-result-inconclusive-light: rgba(158, 154, 151, 0.16);
64
+ --color-result-neutral: #9CA3AF;
65
+
66
+ --color-on-result-improve: #FFFFFF;
67
+ --color-on-result-degrade: #FFFFFF;
68
+ --color-on-result-inconclusive: #FFFFFF;
69
+
70
+ --color-data-1: #1965B0;
71
+ --color-data-2: #4EB265;
72
+ --color-data-3: #F7F056;
73
+ --color-data-4: #DC050C;
74
+ --color-data-5: #882E72;
75
+ --color-data-6: #F4A736;
76
+ --color-data-7: #7BAFDE;
77
+ --color-data-8: #90C987;
78
+ --color-data-9: #CAACCB;
79
+ --color-data-10: #EE8026;
80
+
81
+ --color-text-primary: #F3F4F6;
82
+ --color-text-secondary: #9CA3AF;
83
+ --color-text-tertiary: #6B7280;
84
+ --color-text-disabled: rgba(255, 255, 255, 0.38);
85
+ --color-text-inverse: #111827;
86
+ --color-text-link: #828DF8;
87
+ --color-text-link-hover: #60A5FA;
88
+
89
+ --color-surface-base: #161616;
90
+ --color-surface-elevated: #191919;
91
+ --color-surface-raised: #1C1C1C;
92
+ --color-surface-overlay: #191919;
93
+ --color-surface-input: #191919;
94
+
95
+ --color-background-base: #101010;
96
+ --color-background-default: #161616;
97
+ --color-background-subtle: #1C1C1C;
98
+
99
+ --color-border-default: #1F1F1F;
100
+ --color-border-subtle: #1C1C1C;
101
+ --color-border-strong: #2C2C2C;
102
+ --color-border-focus: #828DF8;
103
+ --color-border-input: #4B5563;
104
+ --color-border-input-hover: #6B7280;
105
+ --color-border-input-focus: #828DF8;
106
+ --color-border-input-error: #EF4444;
107
+
108
+ --color-interactive-hover: rgba(255, 255, 255, 0.04);
109
+ --color-interactive-focus: rgba(255, 255, 255, 0.12);
110
+ --color-interactive-active: rgba(255, 255, 255, 0.16);
111
+ --color-interactive-selected: rgba(255, 255, 255, 0.08);
112
+ --color-interactive-disabled: rgba(255, 255, 255, 0.12);
113
+ --color-interactive-disabled-text: rgba(255, 255, 255, 0.26);
114
+
115
+ --color-divider: #1F1F1F;
116
+
117
+ --color-avatar-background: #4B5563;
118
+ --color-avatar-text: #FFFFFF;
119
+ }
120
+
121
+ /* Light mode */
122
+ .light,
123
+ :root.light {
124
+ --color-brand-primary: #FF7900;
125
+ --color-brand-primary-light: #FF9630;
126
+ --color-brand-primary-dark: #D0620C;
127
+ --color-brand-primary-subtle: rgba(255, 121, 0, 0.08);
128
+ --color-brand-secondary: #406D87;
129
+ --color-brand-secondary-light: #678498;
130
+ --color-brand-secondary-dark: #32556D;
131
+ --color-brand-secondary-subtle: rgba(64, 109, 135, 0.08);
132
+ --color-brand-primary-hover: #F56C00;
133
+ --color-brand-primary-active: #E06D10;
134
+ --color-brand-secondary-hover: #39617A;
135
+ --color-brand-secondary-active: #32556D;
136
+
137
+ --color-on-brand-primary: #FFFFFF;
138
+ --color-on-brand-secondary: #FFFFFF;
139
+
140
+ --color-status-success: #14B8A6;
141
+ --color-status-success-light: #43C6B7;
142
+ --color-status-success-dark: #0E8074;
143
+ --color-status-success-subtle: #F0FDFA;
144
+ --color-status-error: #D14343;
145
+ --color-status-error-light: #DA6868;
146
+ --color-status-error-dark: #922E2E;
147
+ --color-status-error-subtle: #FEF2F2;
148
+ --color-status-warning: #FFB020;
149
+ --color-status-warning-light: #FFBF4C;
150
+ --color-status-warning-dark: #B27B16;
151
+ --color-status-warning-subtle: #FFFBEB;
152
+ --color-status-info: #2196F3;
153
+ --color-status-info-light: #64B6F7;
154
+ --color-status-info-dark: #0B79D0;
155
+ --color-status-info-subtle: #F0F9FF;
156
+
157
+ --color-on-status-success: #FFFFFF;
158
+ --color-on-status-error: #FFFFFF;
159
+ --color-on-status-warning: #FFFFFF;
160
+ --color-on-status-info: #FFFFFF;
161
+
162
+ --color-result-improve: #4caf50;
163
+ --color-result-improve-light: rgba(76, 175, 80, 0.12);
164
+ --color-result-improve-dark: #248a24;
165
+ --color-result-degrade: #ef5350;
166
+ --color-result-degrade-light: rgba(239, 83, 80, 0.12);
167
+ --color-result-degrade-dark: #b30000;
168
+ --color-result-inconclusive: #9E9A97;
169
+ --color-result-inconclusive-light: rgba(158, 154, 151, 0.12);
170
+ --color-result-neutral: #6B7280;
171
+
172
+ --color-on-result-improve: #FFFFFF;
173
+ --color-on-result-degrade: #FFFFFF;
174
+ --color-on-result-inconclusive: #FFFFFF;
175
+
176
+ --color-data-1: #1965B0;
177
+ --color-data-2: #4EB265;
178
+ --color-data-3: #F7F056;
179
+ --color-data-4: #DC050C;
180
+ --color-data-5: #882E72;
181
+ --color-data-6: #F4A736;
182
+ --color-data-7: #7BAFDE;
183
+ --color-data-8: #90C987;
184
+ --color-data-9: #CAACCB;
185
+ --color-data-10: #EE8026;
186
+
187
+ --color-text-primary: #121828;
188
+ --color-text-secondary: #65748B;
189
+ --color-text-tertiary: #9CA3AF;
190
+ --color-text-disabled: rgba(55, 65, 81, 0.48);
191
+ --color-text-inverse: #FFFFFF;
192
+ --color-text-link: #5048E5;
193
+ --color-text-link-hover: #3832A0;
194
+
195
+ --color-surface-base: #FFFFFF;
196
+ --color-surface-elevated: #FAFAFA;
197
+ --color-surface-raised: #F3F4F6;
198
+ --color-surface-overlay: #FFFFFF;
199
+ --color-surface-input: #FAFAFA;
200
+
201
+ --color-background-base: #EBEBEB;
202
+ --color-background-default: #FFFFFF;
203
+ --color-background-subtle: #FAFAFA;
204
+
205
+ --color-border-default: #E8E9EB;
206
+ --color-border-subtle: #F3F4F6;
207
+ --color-border-strong: #D1D5DB;
208
+ --color-border-focus: #5048E5;
209
+ --color-border-input: #D1D5DB;
210
+ --color-border-input-hover: #9CA3AF;
211
+ --color-border-input-focus: #5048E5;
212
+ --color-border-input-error: #D14343;
213
+
214
+ --color-interactive-hover: rgba(55, 65, 81, 0.04);
215
+ --color-interactive-focus: rgba(55, 65, 81, 0.12);
216
+ --color-interactive-active: rgba(55, 65, 81, 0.16);
217
+ --color-interactive-selected: rgba(55, 65, 81, 0.08);
218
+ --color-interactive-disabled: rgba(55, 65, 81, 0.12);
219
+ --color-interactive-disabled-text: rgba(55, 65, 81, 0.26);
220
+
221
+ --color-divider: #E8E9EB;
222
+
223
+ --color-avatar-background: #6B7280;
224
+ --color-avatar-text: #FFFFFF;
225
+ }
226
+
227
+ /* Base styles */
228
+ html {
229
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
230
+ -webkit-font-smoothing: antialiased;
231
+ -moz-osx-font-smoothing: grayscale;
232
+ }
233
+
234
+ body {
235
+ background-color: var(--color-background-default);
236
+ color: var(--color-text-primary);
237
+ }
238
+
239
+ /* Focus visible styles */
240
+ *:focus-visible {
241
+ outline: 2px solid var(--color-border-focus);
242
+ outline-offset: 2px;
243
+ }
244
+
245
+ /* Selection */
246
+ ::selection {
247
+ background-color: var(--color-brand-primary-subtle);
248
+ color: var(--color-text-primary);
249
+ }
250
+ }