@loworbitstudio/visor-core 0.5.0 → 0.6.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/index.css CHANGED
@@ -5,4 +5,6 @@
5
5
  ============================================ */
6
6
 
7
7
  /* Full design token bundle */
8
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
9
+
8
10
  @import './tokens.css';
@@ -3,7 +3,9 @@
3
3
  Generated by @loworbitstudio/visor-core
4
4
  DO NOT EDIT — run `npm run build` to regenerate
5
5
  ============================================ */
6
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
6
7
 
8
+ @layer visor-primitives {
7
9
  /* --- Primitive: Colors --- */
8
10
  :root {
9
11
  --color-neutral-50: #f9fafb;
@@ -116,6 +118,7 @@
116
118
 
117
119
  /* --- Primitive: Font Sizes --- */
118
120
  :root {
121
+ --font-size-2xs: 0.6875rem; /* 11px */
119
122
  --font-size-xs: 0.75rem; /* 12px */
120
123
  --font-size-sm: 0.875rem; /* 14px */
121
124
  --font-size-base: 1rem; /* 16px */
@@ -214,3 +217,4 @@
214
217
  --motion-easing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
215
218
  --motion-easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
216
219
  }
220
+ }
package/dist/semantic.css CHANGED
@@ -3,7 +3,9 @@
3
3
  Generated by @loworbitstudio/visor-core
4
4
  DO NOT EDIT — run `npm run build` to regenerate
5
5
  ============================================ */
6
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
6
7
 
8
+ @layer visor-semantic {
7
9
  /* --- Semantic: Text --- */
8
10
  :root {
9
11
  --text-primary: var(--color-neutral-900);
@@ -45,6 +47,11 @@
45
47
  --surface-error-default: var(--color-error-500);
46
48
  --surface-info-subtle: var(--color-info-50);
47
49
  --surface-info-default: var(--color-info-500);
50
+ --surface-elev-0: var(--color-neutral-950);
51
+ --surface-elev-1: var(--color-neutral-900);
52
+ --surface-elev-2: var(--color-neutral-800);
53
+ --surface-elev-3: var(--color-neutral-700);
54
+ --surface-elev-4: var(--color-neutral-600);
48
55
  }
49
56
 
50
57
 
@@ -169,3 +176,4 @@
169
176
  --sidebar-ring: var(--color-primary-500);
170
177
  --sidebar-text-muted: var(--color-neutral-500);
171
178
  }
179
+ }
@@ -1,4 +1,6 @@
1
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
1
2
 
3
+ @layer visor-adaptive {
2
4
  /* ── Section 1: Shared tokens (mode-independent) ── */
3
5
 
4
6
  /* --- Primitive: Colors --- */
@@ -219,6 +221,11 @@
219
221
  --surface-error-default: #ef4444;
220
222
  --surface-info-subtle: #001d2e;
221
223
  --surface-info-default: #0ea5e9;
224
+ --surface-elev-0: #090909;
225
+ --surface-elev-1: #1b1b1b;
226
+ --surface-elev-2: #2e2e2e;
227
+ --surface-elev-3: #424242;
228
+ --surface-elev-4: #555555;
222
229
  }
223
230
 
224
231
 
@@ -299,6 +306,11 @@
299
306
  --surface-error-default: #ef4444;
300
307
  --surface-info-subtle: #001d2e;
301
308
  --surface-info-default: #0ea5e9;
309
+ --surface-elev-0: #090909;
310
+ --surface-elev-1: #1b1b1b;
311
+ --surface-elev-2: #2e2e2e;
312
+ --surface-elev-3: #424242;
313
+ --surface-elev-4: #555555;
302
314
  }
303
315
  }
304
316
 
@@ -383,6 +395,11 @@ html:not(.dark) .blackout-theme {
383
395
  --surface-error-default: #ef4444;
384
396
  --surface-info-subtle: #ecf7ff;
385
397
  --surface-info-default: #0ea5e9;
398
+ --surface-elev-0: #ffffff;
399
+ --surface-elev-1: #f5f5f5;
400
+ --surface-elev-2: #f1f1f1;
401
+ --surface-elev-3: #eaeaea;
402
+ --surface-elev-4: #e0e0e0;
386
403
  }
387
404
 
388
405
 
@@ -459,4 +476,4 @@ html:not(.dark) .blackout-theme {
459
476
  --color-fd-popover-foreground: rgba(255, 255, 255, 0.75);
460
477
  --color-fd-ring: #666666;
461
478
  }
462
-
479
+ }
@@ -3,7 +3,9 @@
3
3
  Generated by @loworbitstudio/visor-core
4
4
  DO NOT EDIT — run `npm run build` to regenerate
5
5
  ============================================ */
6
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
6
7
 
8
+ @layer visor-adaptive {
7
9
  /* --- Adaptive: Text (dark) — manual toggle --- */
8
10
  .dark,
9
11
  .theme-dark,
@@ -49,6 +51,11 @@
49
51
  --surface-error-default: var(--color-error-500);
50
52
  --surface-info-subtle: var(--color-info-900);
51
53
  --surface-info-default: var(--color-info-500);
54
+ --surface-elev-0: var(--color-neutral-950);
55
+ --surface-elev-1: var(--color-neutral-900);
56
+ --surface-elev-2: var(--color-neutral-800);
57
+ --surface-elev-3: var(--color-neutral-700);
58
+ --surface-elev-4: var(--color-neutral-600);
52
59
  }
53
60
 
54
61
 
@@ -183,6 +190,11 @@
183
190
  --surface-error-default: var(--color-error-500);
184
191
  --surface-info-subtle: var(--color-info-900);
185
192
  --surface-info-default: var(--color-info-500);
193
+ --surface-elev-0: var(--color-neutral-950);
194
+ --surface-elev-1: var(--color-neutral-900);
195
+ --surface-elev-2: var(--color-neutral-800);
196
+ --surface-elev-3: var(--color-neutral-700);
197
+ --surface-elev-4: var(--color-neutral-600);
186
198
  }
187
199
  }
188
200
 
@@ -272,3 +284,4 @@
272
284
  --sidebar-text-muted: var(--color-neutral-400);
273
285
  }
274
286
  }
287
+ }
@@ -3,7 +3,9 @@
3
3
  Generated by @loworbitstudio/visor-core
4
4
  DO NOT EDIT — run `npm run build` to regenerate
5
5
  ============================================ */
6
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
6
7
 
8
+ @layer visor-adaptive {
7
9
  /* --- Adaptive: Text (light) --- */
8
10
  :root {
9
11
  --text-primary: var(--color-neutral-900);
@@ -45,6 +47,11 @@
45
47
  --surface-error-default: var(--color-error-500);
46
48
  --surface-info-subtle: var(--color-info-50);
47
49
  --surface-info-default: var(--color-info-500);
50
+ --surface-elev-0: var(--color-white);
51
+ --surface-elev-1: var(--color-neutral-50);
52
+ --surface-elev-2: var(--color-neutral-100);
53
+ --surface-elev-3: var(--color-neutral-200);
54
+ --surface-elev-4: var(--color-neutral-300);
48
55
  }
49
56
 
50
57
 
@@ -121,3 +128,4 @@
121
128
  --sidebar-ring: var(--color-primary-500);
122
129
  --sidebar-text-muted: var(--color-neutral-500);
123
130
  }
131
+ }
@@ -14,7 +14,9 @@
14
14
  font-display: swap;
15
15
  }
16
16
 
17
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
17
18
 
19
+ @layer visor-adaptive {
18
20
  /* ── Section 1: Shared tokens (mode-independent) ── */
19
21
 
20
22
  /* --- Primitive: Colors --- */
@@ -251,6 +253,11 @@
251
253
  --surface-error-default: #ef4444;
252
254
  --surface-info-subtle: #001d2e;
253
255
  --surface-info-default: #0ea5e9;
256
+ --surface-elev-0: #07090e;
257
+ --surface-elev-1: #171b22;
258
+ --surface-elev-2: #292e38;
259
+ --surface-elev-3: #3d424d;
260
+ --surface-elev-4: #505561;
254
261
  }
255
262
 
256
263
 
@@ -331,6 +338,11 @@
331
338
  --surface-error-default: #ef4444;
332
339
  --surface-info-subtle: #001d2e;
333
340
  --surface-info-default: #0ea5e9;
341
+ --surface-elev-0: #07090e;
342
+ --surface-elev-1: #171b22;
343
+ --surface-elev-2: #292e38;
344
+ --surface-elev-3: #3d424d;
345
+ --surface-elev-4: #505561;
334
346
  }
335
347
  }
336
348
 
@@ -433,6 +445,11 @@ html:not(.dark) .modern-minimal-theme {
433
445
  --surface-error-default: #ef4444;
434
446
  --surface-info-subtle: #ecf7ff;
435
447
  --surface-info-default: #0ea5e9;
448
+ --surface-elev-0: #ffffff;
449
+ --surface-elev-1: #f4f5f7;
450
+ --surface-elev-2: #f0f2f6;
451
+ --surface-elev-3: #eaeef5;
452
+ --surface-elev-4: #e2e8f3;
436
453
  }
437
454
 
438
455
 
@@ -509,4 +526,4 @@ html:not(.dark) .modern-minimal-theme {
509
526
  --color-fd-popover-foreground: rgba(0, 0, 0, 0.9);
510
527
  --color-fd-ring: #04bf81;
511
528
  }
512
-
529
+ }
@@ -1,4 +1,6 @@
1
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
1
2
 
3
+ @layer visor-adaptive {
2
4
  /* ── Section 1: Shared tokens (mode-independent) ── */
3
5
 
4
6
  /* --- Primitive: Colors --- */
@@ -219,6 +221,11 @@
219
221
  --surface-error-default: #ef4444;
220
222
  --surface-info-subtle: #001d2e;
221
223
  --surface-info-default: #0ea5e9;
224
+ --surface-elev-0: #09090c;
225
+ --surface-elev-1: #1a1a1f;
226
+ --surface-elev-2: #2d2d34;
227
+ --surface-elev-3: #41414a;
228
+ --surface-elev-4: #54545d;
222
229
  }
223
230
 
224
231
 
@@ -299,6 +306,11 @@
299
306
  --surface-error-default: #ef4444;
300
307
  --surface-info-subtle: #001d2e;
301
308
  --surface-info-default: #0ea5e9;
309
+ --surface-elev-0: #09090c;
310
+ --surface-elev-1: #1a1a1f;
311
+ --surface-elev-2: #2d2d34;
312
+ --surface-elev-3: #41414a;
313
+ --surface-elev-4: #54545d;
302
314
  }
303
315
  }
304
316
 
@@ -383,6 +395,11 @@ html:not(.dark) .neutral-theme {
383
395
  --surface-error-default: #ef4444;
384
396
  --surface-info-subtle: #ecf7ff;
385
397
  --surface-info-default: #0ea5e9;
398
+ --surface-elev-0: #ffffff;
399
+ --surface-elev-1: #f5f5f6;
400
+ --surface-elev-2: #f2f2f4;
401
+ --surface-elev-3: #ededf2;
402
+ --surface-elev-4: #e7e7ee;
386
403
  }
387
404
 
388
405
 
@@ -459,4 +476,4 @@ html:not(.dark) .neutral-theme {
459
476
  --color-fd-popover-foreground: #18181b;
460
477
  --color-fd-ring: #1798ad;
461
478
  }
462
-
479
+ }
@@ -1,4 +1,6 @@
1
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
1
2
 
3
+ @layer visor-adaptive {
2
4
  /* ── Section 1: Shared tokens (mode-independent) ── */
3
5
 
4
6
  /* --- Primitive: Colors --- */
@@ -219,6 +221,11 @@
219
221
  --surface-error-default: #ef4444;
220
222
  --surface-info-subtle: #001d2e;
221
223
  --surface-info-default: #0ea5e9;
224
+ --surface-elev-0: #080810;
225
+ --surface-elev-1: #191924;
226
+ --surface-elev-2: #2d2d38;
227
+ --surface-elev-3: #41414d;
228
+ --surface-elev-4: #545460;
222
229
  }
223
230
 
224
231
 
@@ -299,6 +306,11 @@
299
306
  --surface-error-default: #ef4444;
300
307
  --surface-info-subtle: #001d2e;
301
308
  --surface-info-default: #0ea5e9;
309
+ --surface-elev-0: #080810;
310
+ --surface-elev-1: #191924;
311
+ --surface-elev-2: #2d2d38;
312
+ --surface-elev-3: #41414d;
313
+ --surface-elev-4: #545460;
302
314
  }
303
315
  }
304
316
 
@@ -383,6 +395,11 @@ html:not(.dark) .space-theme {
383
395
  --surface-error-default: #ef4444;
384
396
  --surface-info-subtle: #ecf7ff;
385
397
  --surface-info-default: #0ea5e9;
398
+ --surface-elev-0: #ffffff;
399
+ --surface-elev-1: #f5f5f8;
400
+ --surface-elev-2: #f1f1f8;
401
+ --surface-elev-3: #ecedf8;
402
+ --surface-elev-4: #e5e6f5;
386
403
  }
387
404
 
388
405
 
@@ -459,4 +476,4 @@ html:not(.dark) .space-theme {
459
476
  --color-fd-popover-foreground: #1a1630;
460
477
  --color-fd-ring: #5b6fff;
461
478
  }
462
-
479
+ }
package/dist/tokens.css CHANGED
@@ -5,10 +5,12 @@
5
5
  ============================================ */
6
6
 
7
7
  /* Import order: primitives → semantic → adaptive */
8
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
8
9
 
9
10
  /* ============================================
10
- Tier 1: Primitives
11
+ Tier 1: Primitives → @layer visor-primitives
11
12
  ============================================ */
13
+ @layer visor-primitives {
12
14
  /* --- Primitive: Colors --- */
13
15
  :root {
14
16
  --color-neutral-50: #f9fafb;
@@ -121,6 +123,7 @@
121
123
 
122
124
  /* --- Primitive: Font Sizes --- */
123
125
  :root {
126
+ --font-size-2xs: 0.6875rem; /* 11px */
124
127
  --font-size-xs: 0.75rem; /* 12px */
125
128
  --font-size-sm: 0.875rem; /* 14px */
126
129
  --font-size-base: 1rem; /* 16px */
@@ -219,10 +222,12 @@
219
222
  --motion-easing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
220
223
  --motion-easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
221
224
  }
225
+ }
222
226
 
223
227
  /* ============================================
224
- Tier 2: Semantic
228
+ Tier 2: Semantic → @layer visor-semantic
225
229
  ============================================ */
230
+ @layer visor-semantic {
226
231
  /* --- Semantic: Text --- */
227
232
  :root {
228
233
  --text-primary: var(--color-neutral-900);
@@ -264,6 +269,11 @@
264
269
  --surface-error-default: var(--color-error-500);
265
270
  --surface-info-subtle: var(--color-info-50);
266
271
  --surface-info-default: var(--color-info-500);
272
+ --surface-elev-0: var(--color-neutral-950);
273
+ --surface-elev-1: var(--color-neutral-900);
274
+ --surface-elev-2: var(--color-neutral-800);
275
+ --surface-elev-3: var(--color-neutral-700);
276
+ --surface-elev-4: var(--color-neutral-600);
267
277
  }
268
278
 
269
279
 
@@ -388,10 +398,12 @@
388
398
  --sidebar-ring: var(--color-primary-500);
389
399
  --sidebar-text-muted: var(--color-neutral-500);
390
400
  }
401
+ }
391
402
 
392
403
  /* ============================================
393
- Tier 3: Adaptive — Light Theme (:root)
404
+ Tier 3: Adaptive — Light + Dark → @layer visor-adaptive
394
405
  ============================================ */
406
+ @layer visor-adaptive {
395
407
  /* --- Adaptive: Text (light) --- */
396
408
  :root {
397
409
  --text-primary: var(--color-neutral-900);
@@ -433,6 +445,11 @@
433
445
  --surface-error-default: var(--color-error-500);
434
446
  --surface-info-subtle: var(--color-info-50);
435
447
  --surface-info-default: var(--color-info-500);
448
+ --surface-elev-0: var(--color-white);
449
+ --surface-elev-1: var(--color-neutral-50);
450
+ --surface-elev-2: var(--color-neutral-100);
451
+ --surface-elev-3: var(--color-neutral-200);
452
+ --surface-elev-4: var(--color-neutral-300);
436
453
  }
437
454
 
438
455
 
@@ -510,10 +527,8 @@
510
527
  --sidebar-text-muted: var(--color-neutral-500);
511
528
  }
512
529
 
513
- /* ============================================
514
- Tier 3: Adaptive — Dark Theme (.dark, .theme-dark, [data-theme="dark"])
515
- and @media (prefers-color-scheme: dark)
516
- ============================================ */
530
+
531
+
517
532
  /* --- Adaptive: Text (dark) — manual toggle --- */
518
533
  .dark,
519
534
  .theme-dark,
@@ -559,6 +574,11 @@
559
574
  --surface-error-default: var(--color-error-500);
560
575
  --surface-info-subtle: var(--color-info-900);
561
576
  --surface-info-default: var(--color-info-500);
577
+ --surface-elev-0: var(--color-neutral-950);
578
+ --surface-elev-1: var(--color-neutral-900);
579
+ --surface-elev-2: var(--color-neutral-800);
580
+ --surface-elev-3: var(--color-neutral-700);
581
+ --surface-elev-4: var(--color-neutral-600);
562
582
  }
563
583
 
564
584
 
@@ -693,6 +713,11 @@
693
713
  --surface-error-default: var(--color-error-500);
694
714
  --surface-info-subtle: var(--color-info-900);
695
715
  --surface-info-default: var(--color-info-500);
716
+ --surface-elev-0: var(--color-neutral-950);
717
+ --surface-elev-1: var(--color-neutral-900);
718
+ --surface-elev-2: var(--color-neutral-800);
719
+ --surface-elev-3: var(--color-neutral-700);
720
+ --surface-elev-4: var(--color-neutral-600);
696
721
  }
697
722
  }
698
723
 
@@ -782,7 +807,7 @@
782
807
  --sidebar-text-muted: var(--color-neutral-400);
783
808
  }
784
809
  }
785
-
810
+ }
786
811
  /* ============================================
787
812
  Global: Motion Safety
788
813
  ============================================ */
@@ -0,0 +1,23 @@
1
+ /* ============================================
2
+ Visor Design Tokens — Utilities
3
+ Generated by @loworbitstudio/visor-core
4
+ DO NOT EDIT — run `npm run build` to regenerate
5
+ ============================================ */
6
+ @layer visor-primitives, visor-semantic, visor-adaptive, visor-bridge;
7
+
8
+ @layer visor-adaptive {
9
+ /* --- Typography Utilities --- */
10
+ .eyebrow {
11
+ font-size: var(--font-size-2xs);
12
+ font-weight: var(--font-weight-medium);
13
+ letter-spacing: 0.16em;
14
+ text-transform: uppercase;
15
+ color: var(--text-tertiary);
16
+ }
17
+
18
+ .label-tiny {
19
+ font-size: var(--font-size-2xs);
20
+ font-weight: var(--font-weight-medium);
21
+ color: var(--text-tertiary);
22
+ }
23
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loworbitstudio/visor-core",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Design tokens for the Visor design system — CSS custom properties for theming.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.css",
@@ -16,7 +16,8 @@
16
16
  "./themes/modern-minimal": "./dist/themes/modern-minimal.css",
17
17
  "./themes/neutral": "./dist/themes/neutral.css",
18
18
  "./themes/space": "./dist/themes/space.css",
19
- "./types": "./src/types.ts"
19
+ "./types": "./src/types.ts",
20
+ "./utilities": "./dist/utilities.css"
20
21
  },
21
22
  "scripts": {
22
23
  "build": "tsx src/generate/generate-css.ts",