@crystin001/theme-settings-lib 1.0.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/dist/theme.js ADDED
@@ -0,0 +1,447 @@
1
+ "use strict";
2
+ /**
3
+ * Theme system with theme families that have light and dark variants
4
+ * Each theme family has both a light and dark mode
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Fonts = exports.Colors = exports.Themes = void 0;
8
+ const react_native_1 = require("react-native");
9
+ exports.Themes = {
10
+ // System theme (uses device preference)
11
+ 'system-light': {
12
+ text: '#11181C',
13
+ background: '#FFFFFF',
14
+ tint: '#0a7ea4',
15
+ icon: '#687076',
16
+ tabIconDefault: '#687076',
17
+ tabIconSelected: '#0a7ea4',
18
+ border: '#E1E4E8',
19
+ card: '#F6F8FA',
20
+ cardText: '#24292E',
21
+ button: '#0a7ea4',
22
+ buttonText: '#FFFFFF',
23
+ buttonSecondary: '#F1F3F5',
24
+ buttonSecondaryText: '#11181C',
25
+ input: '#FFFFFF',
26
+ inputText: '#11181C',
27
+ inputBorder: '#D1D5DB',
28
+ success: '#28A745',
29
+ warning: '#FFC107',
30
+ error: '#DC3545',
31
+ info: '#17A2B8',
32
+ primary: '#0a7ea4',
33
+ secondary: '#6C757D',
34
+ muted: '#6C757D',
35
+ },
36
+ 'system-dark': {
37
+ text: '#ECEDEE',
38
+ background: '#151718',
39
+ tint: '#FFFFFF',
40
+ icon: '#9BA1A6',
41
+ tabIconDefault: '#9BA1A6',
42
+ tabIconSelected: '#FFFFFF',
43
+ border: '#30363D',
44
+ card: '#21262D',
45
+ cardText: '#ECEDEE',
46
+ button: '#238636',
47
+ buttonText: '#FFFFFF',
48
+ buttonSecondary: '#30363D',
49
+ buttonSecondaryText: '#ECEDEE',
50
+ input: '#21262D',
51
+ inputText: '#ECEDEE',
52
+ inputBorder: '#30363D',
53
+ success: '#3FB950',
54
+ warning: '#D29922',
55
+ error: '#F85149',
56
+ info: '#58A6FF',
57
+ primary: '#238636',
58
+ secondary: '#8B949E',
59
+ muted: '#8B949E',
60
+ },
61
+ // Neon Surf theme
62
+ 'neon-surf-light': {
63
+ text: '#0A0E27',
64
+ background: '#E6F7FF',
65
+ tint: '#FF00FF',
66
+ icon: '#00F5FF',
67
+ tabIconDefault: '#00F5FF',
68
+ tabIconSelected: '#FF00FF',
69
+ border: '#00F5FF',
70
+ card: '#D4EDFF',
71
+ cardText: '#0A0E27',
72
+ button: '#FF00FF',
73
+ buttonText: '#1A0A3D',
74
+ buttonSecondary: '#D4EDFF',
75
+ buttonSecondaryText: '#0A0E27',
76
+ input: '#FFFFFF',
77
+ inputText: '#0A0E27',
78
+ inputBorder: '#00F5FF',
79
+ success: '#00FF88',
80
+ warning: '#FF8C00',
81
+ error: '#FF006E',
82
+ info: '#00F5FF',
83
+ primary: '#FF00FF',
84
+ secondary: '#FFD700',
85
+ muted: '#00A8CC',
86
+ },
87
+ 'neon-surf-dark': {
88
+ text: '#FFFFFF',
89
+ background: '#0A0E27',
90
+ tint: '#FF00FF',
91
+ icon: '#00F5FF',
92
+ tabIconDefault: '#00F5FF',
93
+ tabIconSelected: '#FF00FF',
94
+ border: '#00F5FF',
95
+ card: '#1A1F3A',
96
+ cardText: '#FFFFFF',
97
+ button: '#FF00FF',
98
+ buttonText: '#1A0A3D',
99
+ buttonSecondary: '#1A1F3A',
100
+ buttonSecondaryText: '#FFD700',
101
+ input: '#1A1F3A',
102
+ inputText: '#FFFFFF',
103
+ inputBorder: '#00F5FF',
104
+ success: '#00FF88',
105
+ warning: '#FF8C00',
106
+ error: '#FF006E',
107
+ info: '#00F5FF',
108
+ primary: '#FF00FF',
109
+ secondary: '#FFD700',
110
+ muted: '#00A8CC',
111
+ },
112
+ // Pink & Purple theme
113
+ 'pink-purple-light': {
114
+ text: '#2D1B3D',
115
+ background: '#F5E6FF',
116
+ tint: '#B84DCC',
117
+ icon: '#8B5FBF',
118
+ tabIconDefault: '#8B5FBF',
119
+ tabIconSelected: '#B84DCC',
120
+ border: '#D4A5E8',
121
+ card: '#E8D4F5',
122
+ cardText: '#2D1B3D',
123
+ button: '#B84DCC',
124
+ buttonText: '#FFFFFF',
125
+ buttonSecondary: '#E8D4F5',
126
+ buttonSecondaryText: '#2D1B3D',
127
+ input: '#FFFFFF',
128
+ inputText: '#2D1B3D',
129
+ inputBorder: '#D4A5E8',
130
+ success: '#C77DFF',
131
+ warning: '#FF6B9D',
132
+ error: '#E63946',
133
+ info: '#9D4EDD',
134
+ primary: '#B84DCC',
135
+ secondary: '#8B5FBF',
136
+ muted: '#A78BBF',
137
+ },
138
+ 'pink-purple-dark': {
139
+ text: '#F5E6FF',
140
+ background: '#1A0F2E',
141
+ tint: '#D973F5',
142
+ icon: '#B84DCC',
143
+ tabIconDefault: '#B84DCC',
144
+ tabIconSelected: '#D973F5',
145
+ border: '#6B3D8B',
146
+ card: '#2D1B3D',
147
+ cardText: '#F5E6FF',
148
+ button: '#D973F5',
149
+ buttonText: '#1A0F2E',
150
+ buttonSecondary: '#2D1B3D',
151
+ buttonSecondaryText: '#F5E6FF',
152
+ input: '#2D1B3D',
153
+ inputText: '#F5E6FF',
154
+ inputBorder: '#6B3D8B',
155
+ success: '#E6A3FF',
156
+ warning: '#FF8BB3',
157
+ error: '#FF6B7A',
158
+ info: '#C77DFF',
159
+ primary: '#D973F5',
160
+ secondary: '#B84DCC',
161
+ muted: '#8B5FBF',
162
+ },
163
+ // Pastel theme
164
+ 'pastel-light': {
165
+ text: '#4A5568',
166
+ background: '#FFF5F7',
167
+ tint: '#FFB3D9',
168
+ icon: '#A8A8A8',
169
+ tabIconDefault: '#A8A8A8',
170
+ tabIconSelected: '#FFB3D9',
171
+ border: '#FFE5F0',
172
+ card: '#FFF9FB',
173
+ cardText: '#4A5568',
174
+ button: '#FFB3D9',
175
+ buttonText: '#FFFFFF',
176
+ buttonSecondary: '#FFE5F0',
177
+ buttonSecondaryText: '#4A5568',
178
+ input: '#FFFFFF',
179
+ inputText: '#4A5568',
180
+ inputBorder: '#FFE5F0',
181
+ success: '#B5E5CF',
182
+ warning: '#FFE5B4',
183
+ error: '#FFB3BA',
184
+ info: '#B3D9FF',
185
+ primary: '#FFB3D9',
186
+ secondary: '#D4B3FF',
187
+ muted: '#C4C4C4',
188
+ },
189
+ 'pastel-dark': {
190
+ text: '#E8E8E8',
191
+ background: '#2A1F2E',
192
+ tint: '#FFB3D9',
193
+ icon: '#B8B8B8',
194
+ tabIconDefault: '#B8B8B8',
195
+ tabIconSelected: '#FFB3D9',
196
+ border: '#4A3A4A',
197
+ card: '#3A2F3A',
198
+ cardText: '#E8E8E8',
199
+ button: '#FFB3D9',
200
+ buttonText: '#2A1F2E',
201
+ buttonSecondary: '#3A2F3A',
202
+ buttonSecondaryText: '#E8E8E8',
203
+ input: '#3A2F3A',
204
+ inputText: '#E8E8E8',
205
+ inputBorder: '#4A3A4A',
206
+ success: '#B5E5CF',
207
+ warning: '#FFE5B4',
208
+ error: '#FFB3BA',
209
+ info: '#B3D9FF',
210
+ primary: '#FFB3D9',
211
+ secondary: '#D4B3FF',
212
+ muted: '#A8A8A8',
213
+ },
214
+ // GitHub theme
215
+ 'github-light': {
216
+ text: '#24292F',
217
+ background: '#FFFFFF',
218
+ tint: '#0969DA',
219
+ icon: '#656D76',
220
+ tabIconDefault: '#656D76',
221
+ tabIconSelected: '#0969DA',
222
+ border: '#D1D9E0',
223
+ card: '#F6F8FA',
224
+ cardText: '#24292F',
225
+ button: '#0969DA',
226
+ buttonText: '#FFFFFF',
227
+ buttonSecondary: '#F3F4F6',
228
+ buttonSecondaryText: '#24292F',
229
+ input: '#FFFFFF',
230
+ inputText: '#24292F',
231
+ inputBorder: '#D1D9E0',
232
+ success: '#1A7F37',
233
+ warning: '#9A6700',
234
+ error: '#CF222E',
235
+ info: '#0969DA',
236
+ primary: '#0969DA',
237
+ secondary: '#656D76',
238
+ muted: '#656D76',
239
+ },
240
+ 'github-dark': {
241
+ text: '#E6EDF3',
242
+ background: '#0D1117',
243
+ tint: '#58A6FF',
244
+ icon: '#7D8590',
245
+ tabIconDefault: '#7D8590',
246
+ tabIconSelected: '#58A6FF',
247
+ border: '#30363D',
248
+ card: '#161B22',
249
+ cardText: '#E6EDF3',
250
+ button: '#238636',
251
+ buttonText: '#FFFFFF',
252
+ buttonSecondary: '#21262D',
253
+ buttonSecondaryText: '#E6EDF3',
254
+ input: '#161B22',
255
+ inputText: '#E6EDF3',
256
+ inputBorder: '#30363D',
257
+ success: '#3FB950',
258
+ warning: '#D29922',
259
+ error: '#F85149',
260
+ info: '#58A6FF',
261
+ primary: '#238636',
262
+ secondary: '#7D8590',
263
+ muted: '#7D8590',
264
+ },
265
+ // High Contrast theme
266
+ 'high-contrast-light': {
267
+ text: '#000000',
268
+ background: '#FFFFFF',
269
+ tint: '#0000FF',
270
+ icon: '#000000',
271
+ tabIconDefault: '#000000',
272
+ tabIconSelected: '#0000FF',
273
+ border: '#000000',
274
+ card: '#F0F0F0',
275
+ cardText: '#000000',
276
+ button: '#0000FF',
277
+ buttonText: '#FFFFFF',
278
+ buttonSecondary: '#E0E0E0',
279
+ buttonSecondaryText: '#000000',
280
+ input: '#FFFFFF',
281
+ inputText: '#000000',
282
+ inputBorder: '#000000',
283
+ success: '#008000',
284
+ warning: '#FF8C00',
285
+ error: '#FF0000',
286
+ info: '#0000FF',
287
+ primary: '#0000FF',
288
+ secondary: '#000000',
289
+ muted: '#666666',
290
+ },
291
+ 'high-contrast-dark': {
292
+ text: '#FFFFFF',
293
+ background: '#000000',
294
+ tint: '#FFFF00',
295
+ icon: '#FFFFFF',
296
+ tabIconDefault: '#FFFFFF',
297
+ tabIconSelected: '#FFFF00',
298
+ border: '#FFFFFF',
299
+ card: '#1A1A1A',
300
+ cardText: '#FFFFFF',
301
+ button: '#FFFF00',
302
+ buttonText: '#000000',
303
+ buttonSecondary: '#333333',
304
+ buttonSecondaryText: '#FFFFFF',
305
+ input: '#1A1A1A',
306
+ inputText: '#FFFFFF',
307
+ inputBorder: '#FFFFFF',
308
+ success: '#00FF00',
309
+ warning: '#FFFF00',
310
+ error: '#FF0000',
311
+ info: '#00FFFF',
312
+ primary: '#FFFF00',
313
+ secondary: '#FFFFFF',
314
+ muted: '#CCCCCC',
315
+ },
316
+ // Solarized theme
317
+ 'solarized-light': {
318
+ text: '#586E75',
319
+ background: '#FDF6E3',
320
+ tint: '#268BD2',
321
+ icon: '#93A1A1',
322
+ tabIconDefault: '#93A1A1',
323
+ tabIconSelected: '#268BD2',
324
+ border: '#EEE8D5',
325
+ card: '#FEF9E7',
326
+ cardText: '#586E75',
327
+ button: '#268BD2',
328
+ buttonText: '#FDF6E3',
329
+ buttonSecondary: '#EEE8D5',
330
+ buttonSecondaryText: '#586E75',
331
+ input: '#FEF9E7',
332
+ inputText: '#586E75',
333
+ inputBorder: '#EEE8D5',
334
+ success: '#859900',
335
+ warning: '#B58900',
336
+ error: '#DC322F',
337
+ info: '#268BD2',
338
+ primary: '#268BD2',
339
+ secondary: '#93A1A1',
340
+ muted: '#93A1A1',
341
+ },
342
+ 'solarized-dark': {
343
+ text: '#839496',
344
+ background: '#002B36',
345
+ tint: '#268BD2',
346
+ icon: '#657B83',
347
+ tabIconDefault: '#657B83',
348
+ tabIconSelected: '#268BD2',
349
+ border: '#073642',
350
+ card: '#073642',
351
+ cardText: '#839496',
352
+ button: '#268BD2',
353
+ buttonText: '#FDF6E3',
354
+ buttonSecondary: '#073642',
355
+ buttonSecondaryText: '#839496',
356
+ input: '#073642',
357
+ inputText: '#839496',
358
+ inputBorder: '#586E75',
359
+ success: '#859900',
360
+ warning: '#B58900',
361
+ error: '#DC322F',
362
+ info: '#268BD2',
363
+ primary: '#268BD2',
364
+ secondary: '#657B83',
365
+ muted: '#657B83',
366
+ },
367
+ // Dark Plus theme
368
+ 'dark-plus-light': {
369
+ text: '#333333',
370
+ background: '#FFFFFF',
371
+ tint: '#007ACC',
372
+ icon: '#666666',
373
+ tabIconDefault: '#666666',
374
+ tabIconSelected: '#007ACC',
375
+ border: '#CCCCCC',
376
+ card: '#F5F5F5',
377
+ cardText: '#333333',
378
+ button: '#007ACC',
379
+ buttonText: '#FFFFFF',
380
+ buttonSecondary: '#E5E5E5',
381
+ buttonSecondaryText: '#333333',
382
+ input: '#FFFFFF',
383
+ inputText: '#333333',
384
+ inputBorder: '#CCCCCC',
385
+ success: '#89D185',
386
+ warning: '#CE9178',
387
+ error: '#F48771',
388
+ info: '#4EC9B0',
389
+ primary: '#007ACC',
390
+ secondary: '#666666',
391
+ muted: '#999999',
392
+ },
393
+ 'dark-plus-dark': {
394
+ text: '#CCCCCC',
395
+ background: '#1E1E1E',
396
+ tint: '#007ACC',
397
+ icon: '#858585',
398
+ tabIconDefault: '#858585',
399
+ tabIconSelected: '#007ACC',
400
+ border: '#3E3E42',
401
+ card: '#252526',
402
+ cardText: '#CCCCCC',
403
+ button: '#007ACC',
404
+ buttonText: '#FFFFFF',
405
+ buttonSecondary: '#3E3E42',
406
+ buttonSecondaryText: '#CCCCCC',
407
+ input: '#252526',
408
+ inputText: '#CCCCCC',
409
+ inputBorder: '#3E3E42',
410
+ success: '#89D185',
411
+ warning: '#CE9178',
412
+ error: '#F48771',
413
+ info: '#4EC9B0',
414
+ primary: '#007ACC',
415
+ secondary: '#858585',
416
+ muted: '#858585',
417
+ },
418
+ };
419
+ // Legacy Colors export for backward compatibility
420
+ exports.Colors = {
421
+ light: exports.Themes['system-light'],
422
+ dark: exports.Themes['system-dark'],
423
+ };
424
+ exports.Fonts = react_native_1.Platform.select({
425
+ ios: {
426
+ /** iOS `UIFontDescriptorSystemDesignDefault` */
427
+ sans: 'system-ui',
428
+ /** iOS `UIFontDescriptorSystemDesignSerif` */
429
+ serif: 'ui-serif',
430
+ /** iOS `UIFontDescriptorSystemDesignRounded` */
431
+ rounded: 'ui-rounded',
432
+ /** iOS `UIFontDescriptorSystemDesignMonospaced` */
433
+ mono: 'ui-monospace',
434
+ },
435
+ default: {
436
+ sans: 'normal',
437
+ serif: 'serif',
438
+ rounded: 'normal',
439
+ mono: 'monospace',
440
+ },
441
+ web: {
442
+ sans: "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
443
+ serif: "Georgia, 'Times New Roman', serif",
444
+ rounded: "'SF Pro Rounded', 'Hiragino Maru Gothic ProN', Meiryo, 'MS PGothic', sans-serif",
445
+ mono: "SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
446
+ },
447
+ });
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@crystin001/theme-settings-lib",
3
+ "version": "1.0.0",
4
+ "description": "Reusable theme and settings library for mobile apps",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "prepublishOnly": "npm run build",
14
+ "test": "echo \"Error: no test specified\" && exit 1"
15
+ },
16
+ "keywords": [
17
+ "theme",
18
+ "settings",
19
+ "i18n",
20
+ "react-native",
21
+ "expo"
22
+ ],
23
+ "author": "",
24
+ "license": "MIT",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/trial-and-code/theme-settings-lib.git"
28
+ },
29
+ "peerDependencies": {
30
+ "react": "*",
31
+ "react-native": "*",
32
+ "i18next": "^23.11.5",
33
+ "react-i18next": "^15.1.1",
34
+ "expo-localization": "~17.0.0",
35
+ "@react-native-async-storage/async-storage": "~2.2.0",
36
+ "color": "^4.2.3"
37
+ },
38
+ "peerDependenciesMeta": {
39
+ "color": {
40
+ "optional": true
41
+ }
42
+ },
43
+ "devDependencies": {
44
+ "typescript": "^5.0.0",
45
+ "@types/react": "^19.0.0",
46
+ "@types/color": "^3.0.0",
47
+ "color": "^4.2.3",
48
+ "react": "^18.0.0",
49
+ "react-native": "*",
50
+ "i18next": "^23.11.5",
51
+ "react-i18next": "^15.1.1",
52
+ "expo-localization": "~17.0.0",
53
+ "@react-native-async-storage/async-storage": "~2.2.0"
54
+ }
55
+ }
56
+