@howssatoshi/quantumcss 1.4.2 → 1.5.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,15 +1,16 @@
1
1
  /*!
2
2
  * QuantumCSS + Starlight UI
3
3
  * Advanced utility-first framework with ethereal cosmic aesthetics
4
- * Version: 1.4.2
4
+ * Version: 1.5.0
5
5
  * Features: Modern CSS, JIT Engine, Starlight Components, Dark Mode
6
6
  */
7
7
 
8
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
8
+ @import 'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap';
9
9
 
10
10
  /* CSS Custom Properties (Design Tokens) */
11
11
  :root {
12
12
  color-scheme: dark;
13
+
13
14
  /* Colors */
14
15
  --color-primary: #3b82f6;
15
16
  --color-primary-50: #eff6ff;
@@ -22,7 +23,6 @@
22
23
  --color-primary-700: #1d4ed8;
23
24
  --color-primary-800: #1e40af;
24
25
  --color-primary-900: #1e3a8a;
25
-
26
26
  --color-secondary: #64748b;
27
27
  --color-success: #10b981;
28
28
  --color-warning: #f59e0b;
@@ -61,11 +61,11 @@
61
61
  --radius-full: 9999px;
62
62
 
63
63
  /* Shadows */
64
- --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
65
- --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
66
- --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
67
- --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
68
- --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
64
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 5%);
65
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%);
66
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);
67
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%);
68
+ --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 25%);
69
69
 
70
70
  /* Animation */
71
71
  --duration-75: 75ms;
@@ -76,7 +76,6 @@
76
76
  --duration-500: 500ms;
77
77
  --duration-700: 700ms;
78
78
  --duration-1000: 1000ms;
79
-
80
79
  --ease-linear: linear;
81
80
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
82
81
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
@@ -87,23 +86,26 @@
87
86
  --color-starlight-peach: #ffb38a;
88
87
  --color-starlight-orange: #ff7e5f;
89
88
  --color-starlight-deep: #08081a;
90
- --color-starlight-glow: rgba(0, 212, 255, 0.35);
89
+ --color-starlight-glow: rgb(0 212 255 / 35%);
90
+
91
+ /* Semantic Background Colors */
92
+ --bg-primary: var(--color-starlight-deep);
91
93
 
92
94
  /* Semantic Text Colors */
93
95
  --text-primary: #f1f5f9;
94
- --text-secondary: rgba(241, 245, 249, 0.7);
95
- --text-muted: rgba(241, 245, 249, 0.45);
96
+ --text-secondary: rgb(241 245 249 / 70%);
97
+ --text-muted: rgb(241 245 249 / 45%);
96
98
 
97
99
  /* Light Mode Palette */
98
100
  --light-bg: #f1f5f9;
99
101
  --light-text: #1e293b;
100
102
  --light-text-muted: #64748b;
101
- --light-card-bg: #ffffff;
102
- --light-card-border: rgba(0, 0, 0, 0.06);
103
+ --light-card-bg: #fff;
104
+ --light-card-border: rgb(0 0 0 / 6%);
103
105
 
104
106
  /* Glassmorphism */
105
- --glass-bg: rgba(255, 255, 255, 0.03);
106
- --glass-border: rgba(255, 255, 255, 0.1);
107
+ --glass-bg: rgb(255 255 255 / 3%);
108
+ --glass-border: rgb(255 255 255 / 10%);
107
109
  --glass-blur: blur(16px);
108
110
 
109
111
  /* Transitions */
@@ -115,11 +117,11 @@
115
117
  /* High Contrast (Accessibility) Mode Support */
116
118
  @media (prefers-contrast: more) {
117
119
  :root {
118
- --color-starlight-blue: #0088cc; /* Darkened for better contrast on light */
120
+ --color-starlight-blue: #08c; /* Darkened for better contrast on light */
119
121
  --color-starlight-orange: #d14d33;
120
- --glass-bg: rgba(255, 255, 255, 0.1);
121
- --glass-border: rgba(255, 255, 255, 0.4);
122
- --text-muted: rgba(241, 245, 249, 0.8);
122
+ --glass-bg: rgb(255 255 255 / 10%);
123
+ --glass-border: rgb(255 255 255 / 40%);
124
+ --text-muted: rgb(241 245 249 / 80%);
123
125
  }
124
126
  }
125
127
 
@@ -165,7 +167,7 @@
165
167
  html {
166
168
  line-height: 1.6;
167
169
  -webkit-text-size-adjust: 100%;
168
- font-family: 'Inter', system-ui, -apple-system, sans-serif;
170
+ font-family: Inter, system-ui, -apple-system, sans-serif;
169
171
  font-size: 16px;
170
172
  -webkit-font-smoothing: antialiased;
171
173
  -moz-osx-font-smoothing: grayscale;
@@ -287,8 +289,14 @@ textarea {
287
289
  .gap-5 { gap: var(--space-5); }
288
290
  .gap-6 { gap: var(--space-6); }
289
291
  .gap-8 { gap: var(--space-8); }
290
-
291
- /* Spacing Utilities */
292
+ .gap-10 { gap: var(--space-10); }
293
+ .gap-12 { gap: var(--space-12); }
294
+ .gap-16 { gap: var(--space-16); }
295
+ .gap-20 { gap: var(--space-20); }
296
+ .gap-24 { gap: var(--space-24); }
297
+ .gap-32 { gap: var(--space-32); }
298
+
299
+ /* Spacing Utilities - All Sides */
292
300
  .m-0 { margin: var(--space-0); }
293
301
  .m-1 { margin: var(--space-1); }
294
302
  .m-2 { margin: var(--space-2); }
@@ -297,11 +305,113 @@ textarea {
297
305
  .m-5 { margin: var(--space-5); }
298
306
  .m-6 { margin: var(--space-6); }
299
307
  .m-8 { margin: var(--space-8); }
308
+ .m-10 { margin: var(--space-10); }
309
+ .m-12 { margin: var(--space-12); }
310
+ .m-16 { margin: var(--space-16); }
311
+ .m-20 { margin: var(--space-20); }
312
+ .m-24 { margin: var(--space-24); }
313
+ .m-32 { margin: var(--space-32); }
300
314
  .m-auto { margin: auto; }
301
315
 
316
+ /* Margin - X Axis */
317
+ .mx-0 { margin-left: var(--space-0); margin-right: var(--space-0); }
318
+ .mx-1 { margin-left: var(--space-1); margin-right: var(--space-1); }
319
+ .mx-2 { margin-left: var(--space-2); margin-right: var(--space-2); }
320
+ .mx-3 { margin-left: var(--space-3); margin-right: var(--space-3); }
321
+ .mx-4 { margin-left: var(--space-4); margin-right: var(--space-4); }
322
+ .mx-5 { margin-left: var(--space-5); margin-right: var(--space-5); }
323
+ .mx-6 { margin-left: var(--space-6); margin-right: var(--space-6); }
324
+ .mx-8 { margin-left: var(--space-8); margin-right: var(--space-8); }
325
+ .mx-10 { margin-left: var(--space-10); margin-right: var(--space-10); }
326
+ .mx-12 { margin-left: var(--space-12); margin-right: var(--space-12); }
327
+ .mx-16 { margin-left: var(--space-16); margin-right: var(--space-16); }
328
+ .mx-20 { margin-left: var(--space-20); margin-right: var(--space-20); }
329
+ .mx-24 { margin-left: var(--space-24); margin-right: var(--space-24); }
330
+ .mx-32 { margin-left: var(--space-32); margin-right: var(--space-32); }
302
331
  .mx-auto { margin-left: auto; margin-right: auto; }
332
+
333
+ /* Margin - Y Axis */
334
+ .my-0 { margin-top: var(--space-0); margin-bottom: var(--space-0); }
335
+ .my-1 { margin-top: var(--space-1); margin-bottom: var(--space-1); }
336
+ .my-2 { margin-top: var(--space-2); margin-bottom: var(--space-2); }
337
+ .my-3 { margin-top: var(--space-3); margin-bottom: var(--space-3); }
338
+ .my-4 { margin-top: var(--space-4); margin-bottom: var(--space-4); }
339
+ .my-5 { margin-top: var(--space-5); margin-bottom: var(--space-5); }
340
+ .my-6 { margin-top: var(--space-6); margin-bottom: var(--space-6); }
341
+ .my-8 { margin-top: var(--space-8); margin-bottom: var(--space-8); }
342
+ .my-10 { margin-top: var(--space-10); margin-bottom: var(--space-10); }
343
+ .my-12 { margin-top: var(--space-12); margin-bottom: var(--space-12); }
344
+ .my-16 { margin-top: var(--space-16); margin-bottom: var(--space-16); }
345
+ .my-20 { margin-top: var(--space-20); margin-bottom: var(--space-20); }
346
+ .my-24 { margin-top: var(--space-24); margin-bottom: var(--space-24); }
347
+ .my-32 { margin-top: var(--space-32); margin-bottom: var(--space-32); }
303
348
  .my-auto { margin-top: auto; margin-bottom: auto; }
304
349
 
350
+ /* Margin - Top */
351
+ .mt-0 { margin-top: var(--space-0); }
352
+ .mt-1 { margin-top: var(--space-1); }
353
+ .mt-2 { margin-top: var(--space-2); }
354
+ .mt-3 { margin-top: var(--space-3); }
355
+ .mt-4 { margin-top: var(--space-4); }
356
+ .mt-5 { margin-top: var(--space-5); }
357
+ .mt-6 { margin-top: var(--space-6); }
358
+ .mt-8 { margin-top: var(--space-8); }
359
+ .mt-10 { margin-top: var(--space-10); }
360
+ .mt-12 { margin-top: var(--space-12); }
361
+ .mt-16 { margin-top: var(--space-16); }
362
+ .mt-20 { margin-top: var(--space-20); }
363
+ .mt-24 { margin-top: var(--space-24); }
364
+ .mt-32 { margin-top: var(--space-32); }
365
+
366
+ /* Margin - Right */
367
+ .mr-0 { margin-right: var(--space-0); }
368
+ .mr-1 { margin-right: var(--space-1); }
369
+ .mr-2 { margin-right: var(--space-2); }
370
+ .mr-3 { margin-right: var(--space-3); }
371
+ .mr-4 { margin-right: var(--space-4); }
372
+ .mr-5 { margin-right: var(--space-5); }
373
+ .mr-6 { margin-right: var(--space-6); }
374
+ .mr-8 { margin-right: var(--space-8); }
375
+ .mr-10 { margin-right: var(--space-10); }
376
+ .mr-12 { margin-right: var(--space-12); }
377
+ .mr-16 { margin-right: var(--space-16); }
378
+ .mr-20 { margin-right: var(--space-20); }
379
+ .mr-24 { margin-right: var(--space-24); }
380
+ .mr-32 { margin-right: var(--space-32); }
381
+
382
+ /* Margin - Bottom */
383
+ .mb-0 { margin-bottom: var(--space-0); }
384
+ .mb-1 { margin-bottom: var(--space-1); }
385
+ .mb-2 { margin-bottom: var(--space-2); }
386
+ .mb-3 { margin-bottom: var(--space-3); }
387
+ .mb-4 { margin-bottom: var(--space-4); }
388
+ .mb-5 { margin-bottom: var(--space-5); }
389
+ .mb-6 { margin-bottom: var(--space-6); }
390
+ .mb-8 { margin-bottom: var(--space-8); }
391
+ .mb-10 { margin-bottom: var(--space-10); }
392
+ .mb-12 { margin-bottom: var(--space-12); }
393
+ .mb-16 { margin-bottom: var(--space-16); }
394
+ .mb-20 { margin-bottom: var(--space-20); }
395
+ .mb-24 { margin-bottom: var(--space-24); }
396
+ .mb-32 { margin-bottom: var(--space-32); }
397
+
398
+ /* Margin - Left */
399
+ .ml-0 { margin-left: var(--space-0); }
400
+ .ml-1 { margin-left: var(--space-1); }
401
+ .ml-2 { margin-left: var(--space-2); }
402
+ .ml-3 { margin-left: var(--space-3); }
403
+ .ml-4 { margin-left: var(--space-4); }
404
+ .ml-5 { margin-left: var(--space-5); }
405
+ .ml-6 { margin-left: var(--space-6); }
406
+ .ml-8 { margin-left: var(--space-8); }
407
+ .ml-10 { margin-left: var(--space-10); }
408
+ .ml-12 { margin-left: var(--space-12); }
409
+ .ml-16 { margin-left: var(--space-16); }
410
+ .ml-20 { margin-left: var(--space-20); }
411
+ .ml-24 { margin-left: var(--space-24); }
412
+ .ml-32 { margin-left: var(--space-32); }
413
+
414
+ /* Padding - All Sides */
305
415
  .p-0 { padding: var(--space-0); }
306
416
  .p-1 { padding: var(--space-1); }
307
417
  .p-2 { padding: var(--space-2); }
@@ -310,6 +420,108 @@ textarea {
310
420
  .p-5 { padding: var(--space-5); }
311
421
  .p-6 { padding: var(--space-6); }
312
422
  .p-8 { padding: var(--space-8); }
423
+ .p-10 { padding: var(--space-10); }
424
+ .p-12 { padding: var(--space-12); }
425
+ .p-16 { padding: var(--space-16); }
426
+ .p-20 { padding: var(--space-20); }
427
+ .p-24 { padding: var(--space-24); }
428
+ .p-32 { padding: var(--space-32); }
429
+
430
+ /* Padding - X Axis */
431
+ .px-0 { padding-left: var(--space-0); padding-right: var(--space-0); }
432
+ .px-1 { padding-left: var(--space-1); padding-right: var(--space-1); }
433
+ .px-2 { padding-left: var(--space-2); padding-right: var(--space-2); }
434
+ .px-3 { padding-left: var(--space-3); padding-right: var(--space-3); }
435
+ .px-4 { padding-left: var(--space-4); padding-right: var(--space-4); }
436
+ .px-5 { padding-left: var(--space-5); padding-right: var(--space-5); }
437
+ .px-6 { padding-left: var(--space-6); padding-right: var(--space-6); }
438
+ .px-8 { padding-left: var(--space-8); padding-right: var(--space-8); }
439
+ .px-10 { padding-left: var(--space-10); padding-right: var(--space-10); }
440
+ .px-12 { padding-left: var(--space-12); padding-right: var(--space-12); }
441
+ .px-16 { padding-left: var(--space-16); padding-right: var(--space-16); }
442
+ .px-20 { padding-left: var(--space-20); padding-right: var(--space-20); }
443
+ .px-24 { padding-left: var(--space-24); padding-right: var(--space-24); }
444
+ .px-32 { padding-left: var(--space-32); padding-right: var(--space-32); }
445
+
446
+ /* Padding - Y Axis */
447
+ .py-0 { padding-top: var(--space-0); padding-bottom: var(--space-0); }
448
+ .py-1 { padding-top: var(--space-1); padding-bottom: var(--space-1); }
449
+ .py-2 { padding-top: var(--space-2); padding-bottom: var(--space-2); }
450
+ .py-3 { padding-top: var(--space-3); padding-bottom: var(--space-3); }
451
+ .py-4 { padding-top: var(--space-4); padding-bottom: var(--space-4); }
452
+ .py-5 { padding-top: var(--space-5); padding-bottom: var(--space-5); }
453
+ .py-6 { padding-top: var(--space-6); padding-bottom: var(--space-6); }
454
+ .py-8 { padding-top: var(--space-8); padding-bottom: var(--space-8); }
455
+ .py-10 { padding-top: var(--space-10); padding-bottom: var(--space-10); }
456
+ .py-12 { padding-top: var(--space-12); padding-bottom: var(--space-12); }
457
+ .py-16 { padding-top: var(--space-16); padding-bottom: var(--space-16); }
458
+ .py-20 { padding-top: var(--space-20); padding-bottom: var(--space-20); }
459
+ .py-24 { padding-top: var(--space-24); padding-bottom: var(--space-24); }
460
+ .py-32 { padding-top: var(--space-32); padding-bottom: var(--space-32); }
461
+
462
+ /* Padding - Top */
463
+ .pt-0 { padding-top: var(--space-0); }
464
+ .pt-1 { padding-top: var(--space-1); }
465
+ .pt-2 { padding-top: var(--space-2); }
466
+ .pt-3 { padding-top: var(--space-3); }
467
+ .pt-4 { padding-top: var(--space-4); }
468
+ .pt-5 { padding-top: var(--space-5); }
469
+ .pt-6 { padding-top: var(--space-6); }
470
+ .pt-8 { padding-top: var(--space-8); }
471
+ .pt-10 { padding-top: var(--space-10); }
472
+ .pt-12 { padding-top: var(--space-12); }
473
+ .pt-16 { padding-top: var(--space-16); }
474
+ .pt-20 { padding-top: var(--space-20); }
475
+ .pt-24 { padding-top: var(--space-24); }
476
+ .pt-32 { padding-top: var(--space-32); }
477
+
478
+ /* Padding - Right */
479
+ .pr-0 { padding-right: var(--space-0); }
480
+ .pr-1 { padding-right: var(--space-1); }
481
+ .pr-2 { padding-right: var(--space-2); }
482
+ .pr-3 { padding-right: var(--space-3); }
483
+ .pr-4 { padding-right: var(--space-4); }
484
+ .pr-5 { padding-right: var(--space-5); }
485
+ .pr-6 { padding-right: var(--space-6); }
486
+ .pr-8 { padding-right: var(--space-8); }
487
+ .pr-10 { padding-right: var(--space-10); }
488
+ .pr-12 { padding-right: var(--space-12); }
489
+ .pr-16 { padding-right: var(--space-16); }
490
+ .pr-20 { padding-right: var(--space-20); }
491
+ .pr-24 { padding-right: var(--space-24); }
492
+ .pr-32 { padding-right: var(--space-32); }
493
+
494
+ /* Padding - Bottom */
495
+ .pb-0 { padding-bottom: var(--space-0); }
496
+ .pb-1 { padding-bottom: var(--space-1); }
497
+ .pb-2 { padding-bottom: var(--space-2); }
498
+ .pb-3 { padding-bottom: var(--space-3); }
499
+ .pb-4 { padding-bottom: var(--space-4); }
500
+ .pb-5 { padding-bottom: var(--space-5); }
501
+ .pb-6 { padding-bottom: var(--space-6); }
502
+ .pb-8 { padding-bottom: var(--space-8); }
503
+ .pb-10 { padding-bottom: var(--space-10); }
504
+ .pb-12 { padding-bottom: var(--space-12); }
505
+ .pb-16 { padding-bottom: var(--space-16); }
506
+ .pb-20 { padding-bottom: var(--space-20); }
507
+ .pb-24 { padding-bottom: var(--space-24); }
508
+ .pb-32 { padding-bottom: var(--space-32); }
509
+
510
+ /* Padding - Left */
511
+ .pl-0 { padding-left: var(--space-0); }
512
+ .pl-1 { padding-left: var(--space-1); }
513
+ .pl-2 { padding-left: var(--space-2); }
514
+ .pl-3 { padding-left: var(--space-3); }
515
+ .pl-4 { padding-left: var(--space-4); }
516
+ .pl-5 { padding-left: var(--space-5); }
517
+ .pl-6 { padding-left: var(--space-6); }
518
+ .pl-8 { padding-left: var(--space-8); }
519
+ .pl-10 { padding-left: var(--space-10); }
520
+ .pl-12 { padding-left: var(--space-12); }
521
+ .pl-16 { padding-left: var(--space-16); }
522
+ .pl-20 { padding-left: var(--space-20); }
523
+ .pl-24 { padding-left: var(--space-24); }
524
+ .pl-32 { padding-left: var(--space-32); }
313
525
 
314
526
  /* Typography Utilities */
315
527
  .text-xs { font-size: 0.75rem; line-height: 1rem; }
@@ -341,8 +553,8 @@ textarea {
341
553
  .text-warning { color: var(--color-warning); }
342
554
  .text-error { color: var(--color-error); }
343
555
  .text-neutral { color: var(--color-neutral); }
344
- .text-white { color: #ffffff; }
345
- .text-black { color: #000000; }
556
+ .text-white { color: #fff; }
557
+ .text-black { color: #000; }
346
558
 
347
559
  .bg-primary { background-color: var(--color-primary); }
348
560
  .bg-secondary { background-color: var(--color-secondary); }
@@ -350,11 +562,11 @@ textarea {
350
562
  .bg-warning { background-color: var(--color-warning); }
351
563
  .bg-error { background-color: var(--color-error); }
352
564
  .bg-neutral { background-color: var(--color-neutral); }
353
- .bg-white { background-color: #ffffff; color: #0f172a; }
354
- .bg-black { background-color: #000000; color: #ffffff; }
565
+ .bg-white { background-color: #fff; color: #0f172a; }
566
+ .bg-black { background-color: #000; color: #fff; }
355
567
 
356
568
  /* Border Utilities */
357
- .border-0 { border-width: 0px; }
569
+ .border-0 { border-width: 0; }
358
570
  .border { border-width: 1px; }
359
571
  .border-2 { border-width: 2px; }
360
572
  .border-4 { border-width: 4px; }
@@ -389,11 +601,11 @@ textarea {
389
601
  .relative { position: relative; }
390
602
  .sticky { position: sticky; }
391
603
 
392
- .inset-0 { inset: 0px; }
393
- .top-0 { top: 0px; }
394
- .right-0 { right: 0px; }
395
- .bottom-0 { bottom: 0px; }
396
- .left-0 { left: 0px; }
604
+ .inset-0 { inset: 0; }
605
+ .top-0 { top: 0; }
606
+ .right-0 { right: 0; }
607
+ .bottom-0 { bottom: 0; }
608
+ .left-0 { left: 0; }
397
609
 
398
610
  /* Size Utilities */
399
611
  .w-auto { width: auto; }
@@ -455,6 +667,7 @@ textarea {
455
667
  margin: -1px;
456
668
  overflow: hidden;
457
669
  clip: rect(0, 0, 0, 0);
670
+ clip-path: inset(50%);
458
671
  white-space: nowrap;
459
672
  border-width: 0;
460
673
  }
@@ -467,9 +680,29 @@ textarea {
467
680
  margin: 0;
468
681
  overflow: visible;
469
682
  clip: auto;
683
+ clip-path: none;
470
684
  white-space: normal;
471
685
  }
472
686
 
687
+ /* Z-Index Utilities */
688
+ .z-auto { z-index: auto; }
689
+ .z-0 { z-index: 0; }
690
+ .z-10 { z-index: 10; }
691
+ .z-20 { z-index: 20; }
692
+ .z-30 { z-index: 30; }
693
+ .z-40 { z-index: 40; }
694
+ .z-50 { z-index: 50; }
695
+ .z-100 { z-index: 100; }
696
+ .z-200 { z-index: 200; }
697
+ .z-300 { z-index: 300; }
698
+ .z-400 { z-index: 400; }
699
+ .z-500 { z-index: 500; }
700
+ .z-600 { z-index: 600; }
701
+ .z-700 { z-index: 700; }
702
+ .z-800 { z-index: 800; }
703
+ .z-900 { z-index: 900; }
704
+ .z-1000 { z-index: 1000; }
705
+
473
706
  /* ====== QUANTUM CSS ENHANCEMENTS ====== */
474
707
 
475
708
  /* Utility for Quick Prototyping */
@@ -543,17 +776,8 @@ textarea {
543
776
 
544
777
 
545
778
  ::-webkit-scrollbar-thumb {
546
-
547
-
548
-
549
779
  background: linear-gradient(135deg, var(--color-starlight-peach) 0%, var(--color-starlight-blue) 100%);
550
-
551
-
552
-
553
780
  border-radius: 10px;
554
-
555
-
556
-
557
781
  border: 2px solid var(--color-starlight-deep);
558
782
 
559
783
 
@@ -562,24 +786,44 @@ textarea {
562
786
 
563
787
 
564
788
 
565
- body.light-mode,
789
+ html[data-theme="light"],
790
+ body.light-mode {
791
+ color-scheme: light;
566
792
 
567
- html.light-mode {
793
+ --bg-primary: var(--light-bg);
794
+ --text-primary: var(--light-text);
795
+ --text-secondary: var(--light-text-muted);
796
+ --text-muted: var(--light-text-muted);
568
797
 
569
798
  scrollbar-color: var(--color-starlight-blue) transparent;
799
+ }
570
800
 
801
+ html[data-theme="dark"],
802
+ body.dark-mode {
803
+ color-scheme: dark;
804
+
805
+ --bg-primary: var(--color-starlight-deep);
806
+ --text-primary: #f1f5f9;
571
807
  }
572
808
 
809
+ /* Force theme colors on body to override template-specific hardcoded styles */
810
+ html[data-theme="light"] body,
811
+ body.light-mode {
812
+ background: var(--light-bg) !important;
813
+ color: var(--light-text) !important;
814
+ }
573
815
 
816
+ html[data-theme="dark"] body,
817
+ body.dark-mode {
818
+ background: var(--color-starlight-deep) !important;
819
+ color: #f1f5f9 !important;
820
+ }
574
821
 
575
- body.light-mode::-webkit-scrollbar-thumb,
576
822
 
577
- body.light-mode ::-webkit-scrollbar-thumb {
578
823
 
824
+ html[data-theme="light"] ::-webkit-scrollbar-thumb {
579
825
  background: linear-gradient(135deg, var(--color-starlight-peach) 40%, var(--color-starlight-blue) 100%);
580
-
581
826
  border-color: var(--light-bg);
582
-
583
827
  }
584
828
 
585
829
 
@@ -589,17 +833,8 @@ body.light-mode ::-webkit-scrollbar-thumb {
589
833
 
590
834
 
591
835
  :focus, :focus-visible {
592
-
593
-
594
-
595
836
  outline: none;
596
-
597
-
598
-
599
837
  box-shadow: 0 0 0 2px var(--color-starlight-deep), 0 0 0 4px var(--color-starlight-blue);
600
-
601
-
602
-
603
838
  transition: box-shadow var(--transition-fast);
604
839
 
605
840
 
@@ -612,14 +847,8 @@ body.light-mode ::-webkit-scrollbar-thumb {
612
847
 
613
848
 
614
849
 
615
- body.light-mode :focus, body.light-mode :focus-visible {
616
-
617
-
618
-
619
- box-shadow: 0 0 0 2px var(--light-bg), 0 0 0 4px rgba(59, 130, 246, 0.4);
620
-
621
-
622
-
850
+ html[data-theme="light"] :focus, html[data-theme="light"] :focus-visible {
851
+ box-shadow: 0 0 0 2px var(--light-bg), 0 0 0 4px rgb(59 130 246 / 40%);
623
852
  }
624
853
 
625
854
 
@@ -629,25 +858,10 @@ body.light-mode :focus, body.light-mode :focus-visible {
629
858
 
630
859
 
631
860
  body {
632
-
633
-
634
-
635
861
  margin: 0;
636
-
637
-
638
-
639
862
  min-height: 100vh;
640
-
641
-
642
-
643
- background-color: var(--color-starlight-deep);
644
-
645
-
646
-
863
+ background-color: var(--bg-primary);
647
864
  color: var(--text-primary);
648
-
649
-
650
-
651
865
  transition: background-color var(--transition-slow), color var(--transition-slow);
652
866
 
653
867
 
@@ -660,16 +874,6 @@ body {
660
874
 
661
875
 
662
876
 
663
- body.light-mode,
664
- html.light-mode {
665
- color-scheme: light;
666
- background-color: var(--light-bg);
667
- color: var(--light-text);
668
- --text-primary: var(--light-text);
669
- --text-secondary: var(--light-text-muted);
670
- --text-muted: var(--light-text-muted);
671
- }
672
-
673
877
  /* Tactile Active State for all interactive elements */
674
878
  button:active,
675
879
  input:active,