@vyantra/tokens 0.1.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.
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ console.log('Hello from tokens package!');
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC"}
@@ -0,0 +1,423 @@
1
+ /* =============================================================================
2
+ @vyantra/tokens — tokens.css
3
+ ─────────────────────────────────────────────
4
+ HOW IT WORKS
5
+ • Primitives → raw values, NEVER used directly in components
6
+ • Semantic → role names, the ONLY tokens components reference
7
+ • Two themes → :root = light [data-theme="dark"] = dark overrides
8
+ • Custom theme → override any semantic token on your own selector
9
+
10
+ USAGE IN COMPONENTS
11
+ ✓ color: var(--color-text-primary)
12
+ ✗ color: #111827
13
+ ============================================================================= */
14
+
15
+ /* ─── Google Fonts ─────────────────────────────────────────────────────────── */
16
+ @import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&display=swap');
17
+
18
+ /* =============================================================================
19
+ PRIMITIVES (colour palette — don't use in components)
20
+ ============================================================================= */
21
+ :root {
22
+ /* Blue */
23
+ --primitive-blue-50: #eff6ff;
24
+ --primitive-blue-100: #dbeafe;
25
+ --primitive-blue-200: #bfdbfe;
26
+ --primitive-blue-300: #93c5fd;
27
+ --primitive-blue-400: #60a5fa;
28
+ --primitive-blue-500: #3b82f6;
29
+ --primitive-blue-600: #2563eb;
30
+ --primitive-blue-700: #1d4ed8;
31
+ --primitive-blue-800: #1e40af;
32
+
33
+ /* Violet */
34
+ --primitive-violet-50: #f5f3ff;
35
+ --primitive-violet-100: #ede9fe;
36
+ --primitive-violet-200: #ddd6fe;
37
+ --primitive-violet-300: #c4b5fd;
38
+ --primitive-violet-400: #a78bfa;
39
+ --primitive-violet-500: #8b5cf6;
40
+ --primitive-violet-600: #7c3aed;
41
+ --primitive-violet-700: #6d28d9;
42
+ --primitive-violet-800: #5b21b6;
43
+
44
+ /* Green */
45
+ --primitive-green-50: #f0fdf4;
46
+ --primitive-green-100: #dcfce7;
47
+ --primitive-green-200: #bbf7d0;
48
+ --primitive-green-300: #86efac;
49
+ --primitive-green-400: #4ade80;
50
+ --primitive-green-600: #16a34a;
51
+ --primitive-green-700: #15803d;
52
+ --primitive-green-800: #166534;
53
+
54
+ /* Red */
55
+ --primitive-red-50: #fef2f2;
56
+ --primitive-red-100: #fee2e2;
57
+ --primitive-red-200: #fecaca;
58
+ --primitive-red-300: #fca5a5;
59
+ --primitive-red-400: #f87171;
60
+ --primitive-red-500: #ef4444;
61
+ --primitive-red-600: #dc2626;
62
+ --primitive-red-700: #b91c1c;
63
+ --primitive-red-800: #991b1b;
64
+
65
+ /* Amber */
66
+ --primitive-amber-50: #fffbeb;
67
+ --primitive-amber-100: #fef3c7;
68
+ --primitive-amber-200: #fde68a;
69
+ --primitive-amber-300: #fcd34d;
70
+ --primitive-amber-400: #fbbf24;
71
+ --primitive-amber-500: #f59e0b;
72
+ --primitive-amber-600: #d97706;
73
+ --primitive-amber-700: #b45309;
74
+ --primitive-amber-800: #92400e;
75
+
76
+ /* Cyan */
77
+ --primitive-cyan-50: #ecfeff;
78
+ --primitive-cyan-100: #cffafe;
79
+ --primitive-cyan-200: #a5f3fc;
80
+ --primitive-cyan-300: #67e8f9;
81
+ --primitive-cyan-400: #22d3ee;
82
+ --primitive-cyan-500: #06b6d4;
83
+ --primitive-cyan-600: #0891b2;
84
+ --primitive-cyan-700: #0e7490;
85
+ --primitive-cyan-800: #155e75;
86
+
87
+ /* Neutral */
88
+ --primitive-neutral-0: #ffffff;
89
+ --primitive-neutral-50: #f9fafb;
90
+ --primitive-neutral-100: #f3f4f6;
91
+ --primitive-neutral-200: #e5e7eb;
92
+ --primitive-neutral-300: #d1d5db;
93
+ --primitive-neutral-400: #9ca3af;
94
+ --primitive-neutral-500: #6b7280;
95
+ --primitive-neutral-600: #4b5563;
96
+ --primitive-neutral-700: #374151;
97
+ --primitive-neutral-800: #1f2937;
98
+ --primitive-neutral-900: #111827;
99
+ --primitive-neutral-950: #030712;
100
+ }
101
+
102
+ /* =============================================================================
103
+ LIGHT THEME (default)
104
+ ============================================================================= */
105
+ :root,
106
+ [data-theme="light"] {
107
+
108
+ /* ── Surfaces ── */
109
+ --color-bg: var(--primitive-neutral-0);
110
+ --color-bg-subtle: var(--primitive-neutral-50);
111
+ --color-bg-muted: var(--primitive-neutral-100);
112
+ --color-bg-emphasis: var(--primitive-neutral-200);
113
+ --color-bg-inverse: var(--primitive-neutral-900);
114
+
115
+ /* ── Borders ── */
116
+ --color-border: var(--primitive-neutral-200);
117
+ --color-border-strong: var(--primitive-neutral-300);
118
+ --color-border-focus: var(--primitive-blue-500);
119
+
120
+ /* ── Text ── */
121
+ --color-text-primary: var(--primitive-neutral-900);
122
+ --color-text-secondary: var(--primitive-neutral-600);
123
+ --color-text-tertiary: var(--primitive-neutral-500);
124
+ --color-text-disabled: var(--primitive-neutral-400);
125
+ --color-text-inverse: var(--primitive-neutral-0);
126
+ --color-text-link: var(--primitive-blue-600);
127
+ --color-text-link-hover: var(--primitive-blue-700);
128
+
129
+ /* ── Primary (blue) ── */
130
+ --color-primary: var(--primitive-blue-600);
131
+ --color-primary-hover: var(--primitive-blue-700);
132
+ --color-primary-active: var(--primitive-blue-800);
133
+ --color-primary-subtle: var(--primitive-blue-50);
134
+ --color-primary-muted: var(--primitive-blue-100);
135
+ --color-primary-border: var(--primitive-blue-200);
136
+ --color-primary-text: var(--primitive-blue-700);
137
+ --color-on-primary: var(--primitive-neutral-0);
138
+
139
+ /* ── Secondary (violet) ── */
140
+ --color-secondary: var(--primitive-violet-600);
141
+ --color-secondary-hover: var(--primitive-violet-700);
142
+ --color-secondary-active: var(--primitive-violet-800);
143
+ --color-secondary-subtle: var(--primitive-violet-50);
144
+ --color-secondary-muted: var(--primitive-violet-100);
145
+ --color-secondary-border: var(--primitive-violet-200);
146
+ --color-secondary-text: var(--primitive-violet-700);
147
+ --color-on-secondary: var(--primitive-neutral-0);
148
+
149
+ /* ── Success (green) ── */
150
+ --color-success: var(--primitive-green-600);
151
+ --color-success-hover: var(--primitive-green-700);
152
+ --color-success-active: var(--primitive-green-800);
153
+ --color-success-subtle: var(--primitive-green-50);
154
+ --color-success-muted: var(--primitive-green-100);
155
+ --color-success-border: var(--primitive-green-200);
156
+ --color-success-text: var(--primitive-green-700);
157
+ --color-on-success: var(--primitive-neutral-0);
158
+
159
+ /* ── Warning (amber) ── */
160
+ --color-warning: var(--primitive-amber-600);
161
+ --color-warning-hover: var(--primitive-amber-700);
162
+ --color-warning-active: var(--primitive-amber-800);
163
+ --color-warning-subtle: var(--primitive-amber-50);
164
+ --color-warning-muted: var(--primitive-amber-100);
165
+ --color-warning-border: var(--primitive-amber-200);
166
+ --color-warning-text: var(--primitive-amber-700);
167
+ --color-on-warning: var(--primitive-neutral-0);
168
+
169
+ /* ── Danger (red) ── */
170
+ --color-danger: var(--primitive-red-600);
171
+ --color-danger-hover: var(--primitive-red-700);
172
+ --color-danger-active: var(--primitive-red-800);
173
+ --color-danger-subtle: var(--primitive-red-50);
174
+ --color-danger-muted: var(--primitive-red-100);
175
+ --color-danger-border: var(--primitive-red-200);
176
+ --color-danger-text: var(--primitive-red-700);
177
+ --color-on-danger: var(--primitive-neutral-0);
178
+
179
+ /* ── Info (cyan) ── */
180
+ --color-info: var(--primitive-cyan-600);
181
+ --color-info-hover: var(--primitive-cyan-700);
182
+ --color-info-active: var(--primitive-cyan-800);
183
+ --color-info-subtle: var(--primitive-cyan-50);
184
+ --color-info-muted: var(--primitive-cyan-100);
185
+ --color-info-border: var(--primitive-cyan-200);
186
+ --color-info-text: var(--primitive-cyan-700);
187
+ --color-on-info: var(--primitive-neutral-0);
188
+
189
+ /* ── Neutral ── */
190
+ --color-neutral: var(--primitive-neutral-700);
191
+ --color-neutral-hover: var(--primitive-neutral-800);
192
+ --color-neutral-active: var(--primitive-neutral-900);
193
+ --color-neutral-subtle: var(--primitive-neutral-50);
194
+ --color-neutral-muted: var(--primitive-neutral-100);
195
+ --color-neutral-border: var(--primitive-neutral-200);
196
+ --color-neutral-text: var(--primitive-neutral-700);
197
+ --color-on-neutral: var(--primitive-neutral-0);
198
+
199
+ /* ── Focus ring ── */
200
+ --color-focus-ring-offset: var(--primitive-neutral-0);
201
+
202
+ /* ── Overlay ── */
203
+ --color-overlay: rgba(0,0,0,0.4);
204
+
205
+ /* ── Docs shell ── */
206
+ --docs-sidebar-bg: var(--primitive-neutral-50);
207
+ --docs-sidebar-border:var(--primitive-neutral-200);
208
+ --docs-controls-bg: rgba(255,255,255,0.9);
209
+ --docs-preview-bg: var(--primitive-neutral-50);
210
+ --docs-code-bg: var(--primitive-neutral-950);
211
+ }
212
+
213
+ /* =============================================================================
214
+ DARK THEME — override only what changes
215
+ ============================================================================= */
216
+ [data-theme="dark"] {
217
+
218
+ /* ── Surfaces ── */
219
+ --color-bg: #0c0d11;
220
+ --color-bg-subtle: #111318;
221
+ --color-bg-muted: #181920;
222
+ --color-bg-emphasis: #1f2029;
223
+ --color-bg-inverse: #f0f1f5;
224
+
225
+ /* ── Borders ── */
226
+ --color-border: rgba(255,255,255,0.07);
227
+ --color-border-strong: rgba(255,255,255,0.13);
228
+ --color-border-focus: var(--primitive-blue-400);
229
+
230
+ /* ── Text ── */
231
+ --color-text-primary: #ecedf2;
232
+ --color-text-secondary: #9399a8;
233
+ --color-text-tertiary: #585e6e;
234
+ --color-text-disabled: #383d4a;
235
+ --color-text-inverse: #0c0d11;
236
+ --color-text-link: var(--primitive-blue-400);
237
+ --color-text-link-hover: var(--primitive-blue-300);
238
+
239
+ /* ── Primary ── */
240
+ --color-primary: var(--primitive-blue-500);
241
+ --color-primary-hover: var(--primitive-blue-400);
242
+ --color-primary-active: var(--primitive-blue-300);
243
+ --color-primary-subtle: rgba(59,130,246,0.09);
244
+ --color-primary-muted: rgba(59,130,246,0.16);
245
+ --color-primary-border: rgba(59,130,246,0.28);
246
+ --color-primary-text: var(--primitive-blue-400);
247
+ --color-on-primary: #ffffff;
248
+
249
+ /* ── Secondary ── */
250
+ --color-secondary: var(--primitive-violet-500);
251
+ --color-secondary-hover: var(--primitive-violet-400);
252
+ --color-secondary-active: var(--primitive-violet-300);
253
+ --color-secondary-subtle: rgba(139,92,246,0.09);
254
+ --color-secondary-muted: rgba(139,92,246,0.16);
255
+ --color-secondary-border: rgba(139,92,246,0.28);
256
+ --color-secondary-text: var(--primitive-violet-400);
257
+ --color-on-secondary: #ffffff;
258
+
259
+ /* ── Success ── */
260
+ --color-success: var(--primitive-green-400);
261
+ --color-success-hover: #6ee7a0;
262
+ --color-success-active: #a7f0c0;
263
+ --color-success-subtle: rgba(74,222,128,0.09);
264
+ --color-success-muted: rgba(74,222,128,0.16);
265
+ --color-success-border: rgba(74,222,128,0.28);
266
+ --color-success-text: var(--primitive-green-400);
267
+ --color-on-success: #052e16;
268
+
269
+ /* ── Warning ── */
270
+ --color-warning: var(--primitive-amber-400);
271
+ --color-warning-hover: var(--primitive-amber-300);
272
+ --color-warning-active: var(--primitive-amber-200);
273
+ --color-warning-subtle: rgba(251,191,36,0.09);
274
+ --color-warning-muted: rgba(251,191,36,0.16);
275
+ --color-warning-border: rgba(251,191,36,0.28);
276
+ --color-warning-text: var(--primitive-amber-400);
277
+ --color-on-warning: #1c1100;
278
+
279
+ /* ── Danger ── */
280
+ --color-danger: var(--primitive-red-400);
281
+ --color-danger-hover: var(--primitive-red-300);
282
+ --color-danger-active: var(--primitive-red-200);
283
+ --color-danger-subtle: rgba(248,113,113,0.09);
284
+ --color-danger-muted: rgba(248,113,113,0.16);
285
+ --color-danger-border: rgba(248,113,113,0.28);
286
+ --color-danger-text: var(--primitive-red-400);
287
+ --color-on-danger: #1c0000;
288
+
289
+ /* ── Info ── */
290
+ --color-info: var(--primitive-cyan-400);
291
+ --color-info-hover: var(--primitive-cyan-300);
292
+ --color-info-active: var(--primitive-cyan-200);
293
+ --color-info-subtle: rgba(34,211,238,0.09);
294
+ --color-info-muted: rgba(34,211,238,0.16);
295
+ --color-info-border: rgba(34,211,238,0.28);
296
+ --color-info-text: var(--primitive-cyan-400);
297
+ --color-on-info: #001a1e;
298
+
299
+ /* ── Neutral ── */
300
+ --color-neutral: var(--primitive-neutral-400);
301
+ --color-neutral-hover: var(--primitive-neutral-300);
302
+ --color-neutral-active: var(--primitive-neutral-200);
303
+ --color-neutral-subtle: rgba(255,255,255,0.04);
304
+ --color-neutral-muted: rgba(255,255,255,0.08);
305
+ --color-neutral-border: rgba(255,255,255,0.12);
306
+ --color-neutral-text: var(--primitive-neutral-400);
307
+ --color-on-neutral: #0c0d11;
308
+
309
+ /* ── Focus ring ── */
310
+ --color-focus-ring-offset: #0c0d11;
311
+
312
+ /* ── Overlay ── */
313
+ --color-overlay: rgba(0,0,0,0.65);
314
+
315
+ /* ── Docs shell ── */
316
+ --docs-sidebar-bg: #090a0d;
317
+ --docs-sidebar-border:rgba(255,255,255,0.06);
318
+ --docs-controls-bg: rgba(12,13,17,0.9);
319
+ --docs-preview-bg: #111318;
320
+ --docs-code-bg: #080a0d;
321
+ }
322
+
323
+ /* =============================================================================
324
+ SPACING
325
+ ============================================================================= */
326
+ :root {
327
+ --spacing-px: 1px;
328
+ --spacing-0: 0px;
329
+ --spacing-0-5: 2px;
330
+ --spacing-1: 4px;
331
+ --spacing-1-5: 6px;
332
+ --spacing-2: 8px;
333
+ --spacing-2-5: 10px;
334
+ --spacing-3: 12px;
335
+ --spacing-3-5: 14px;
336
+ --spacing-4: 16px;
337
+ --spacing-5: 20px;
338
+ --spacing-6: 24px;
339
+ --spacing-7: 28px;
340
+ --spacing-8: 32px;
341
+ --spacing-10: 40px;
342
+ --spacing-12: 48px;
343
+ --spacing-16: 64px;
344
+ --spacing-20: 80px;
345
+ }
346
+
347
+ /* =============================================================================
348
+ TYPOGRAPHY
349
+ ============================================================================= */
350
+ :root {
351
+ --font-sans: 'Geist', system-ui, -apple-system, sans-serif;
352
+ --font-mono: 'Geist Mono', 'JetBrains Mono', monospace;
353
+
354
+ --text-2xs: 0.625rem;
355
+ --text-xs: 0.75rem;
356
+ --text-sm: 0.875rem;
357
+ --text-md: 1rem;
358
+ --text-lg: 1.125rem;
359
+ --text-xl: 1.25rem;
360
+ --text-2xl: 1.5rem;
361
+ --text-3xl: 1.875rem;
362
+ --text-4xl: 2.25rem;
363
+
364
+ --weight-regular: 400;
365
+ --weight-medium: 500;
366
+ --weight-semibold: 600;
367
+ --weight-bold: 700;
368
+
369
+ --leading-none: 1;
370
+ --leading-tight: 1.25;
371
+ --leading-snug: 1.375;
372
+ --leading-normal: 1.5;
373
+ }
374
+
375
+ /* =============================================================================
376
+ RADIUS
377
+ ============================================================================= */
378
+ :root {
379
+ --radius-none: 0px;
380
+ --radius-xs: 2px;
381
+ --radius-sm: 4px;
382
+ --radius-md: 6px;
383
+ --radius-lg: 8px;
384
+ --radius-xl: 12px;
385
+ --radius-2xl: 16px;
386
+ --radius-full: 9999px;
387
+ }
388
+
389
+ /* =============================================================================
390
+ SHADOWS
391
+ ============================================================================= */
392
+ :root {
393
+ --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
394
+ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
395
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
396
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
397
+ }
398
+
399
+ /* =============================================================================
400
+ TRANSITIONS
401
+ ============================================================================= */
402
+ :root {
403
+ --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
404
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
405
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
406
+
407
+ --duration-fast: 100ms;
408
+ --duration-normal: 150ms;
409
+ --duration-slow: 200ms;
410
+ --duration-slower: 300ms;
411
+ }
412
+
413
+ /* =============================================================================
414
+ Z-INDEX
415
+ ============================================================================= */
416
+ :root {
417
+ --z-dropdown: 1000;
418
+ --z-sticky: 1100;
419
+ --z-overlay: 1200;
420
+ --z-modal: 1300;
421
+ --z-toast: 1500;
422
+ --z-tooltip: 1600;
423
+ }
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@vyantra/tokens",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "description": "Design tokens for VyantraUI — colors, spacing, typography",
8
+ "license": "MIT",
9
+ "exports": {
10
+ ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" },
11
+ "./css": "./dist/tokens.css"
12
+ },
13
+ "files": ["dist"],
14
+ "scripts": {
15
+ "build": "tsc && node scripts/build-css.js",
16
+ "dev": "tsc --watch",
17
+ "typecheck": "tsc --noEmit",
18
+ "clean": "rm -rf dist node_modules"
19
+ },
20
+ "devDependencies": {
21
+ "typescript": "^5.4.5"
22
+ },
23
+ "peerDependencies": {
24
+ "react": "^18"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/ashishvora1997/vyantra-ui.git"
29
+ },
30
+ "homepage": "https://github.com/ashishvora1997/vyantra-ui#readme"
31
+ }