@happyvertical/smrt-ui 0.55.17 → 0.55.19

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.
Files changed (90) hide show
  1. package/README.md +7 -0
  2. package/dist/components/calendar/CalendarView.svelte +2 -2
  3. package/dist/components/chat/ReactionPicker.svelte +2 -2
  4. package/dist/components/data/CollectionList.svelte +1 -1
  5. package/dist/components/data/CollectionToolbar.svelte +1 -1
  6. package/dist/components/data/DataTable.svelte +44 -32
  7. package/dist/components/data/SortableHeader.svelte +2 -2
  8. package/dist/components/feedback/Alert.svelte +4 -3
  9. package/dist/components/feedback/LoadingOverlay.svelte +2 -2
  10. package/dist/components/feedback/Modal.svelte +11 -9
  11. package/dist/components/feedback/PhoneSheet.svelte +2 -2
  12. package/dist/components/feedback/ToastViewport.svelte +1 -1
  13. package/dist/components/forms/CameraCapture.svelte +2 -2
  14. package/dist/components/forms/Checkbox.svelte +1 -1
  15. package/dist/components/forms/Combobox.svelte +1 -1
  16. package/dist/components/forms/FilePicker.svelte +1 -1
  17. package/dist/components/forms/Input.svelte +11 -7
  18. package/dist/components/forms/InputGroup.svelte +1 -1
  19. package/dist/components/forms/Listbox.svelte +1 -1
  20. package/dist/components/forms/Radio.svelte +1 -1
  21. package/dist/components/forms/RangeSlider.svelte +1 -1
  22. package/dist/components/forms/SearchInput.svelte +2 -2
  23. package/dist/components/forms/SegmentedControl.svelte +1 -1
  24. package/dist/components/forms/Select.svelte +11 -7
  25. package/dist/components/forms/SignaturePad.svelte +2 -2
  26. package/dist/components/forms/Slider.svelte +1 -1
  27. package/dist/components/forms/StagedControlReview.svelte +1 -1
  28. package/dist/components/forms/Switch.svelte +1 -1
  29. package/dist/components/forms/TagsInput.svelte +1 -1
  30. package/dist/components/forms/Textarea.svelte +10 -6
  31. package/dist/components/forms/Toggle.svelte +2 -2
  32. package/dist/components/forms/ToggleButton.svelte +1 -1
  33. package/dist/components/layout/PageHeader.svelte +2 -2
  34. package/dist/components/nav/Tabs.svelte +47 -17
  35. package/dist/components/permissions/PermissionPicker.svelte +1 -1
  36. package/dist/components/roles/RoleSelector.svelte +2 -2
  37. package/dist/components/ui/AccordionItem.svelte +1 -1
  38. package/dist/components/ui/Badge.svelte +2 -1
  39. package/dist/components/ui/Button.svelte +38 -29
  40. package/dist/components/ui/Card.svelte +11 -10
  41. package/dist/components/ui/Chip.svelte +31 -7
  42. package/dist/components/ui/Disclosure.svelte +1 -1
  43. package/dist/components/ui/Dropdown.svelte +20 -15
  44. package/dist/components/ui/IconToggle.svelte +2 -2
  45. package/dist/components/ui/Popover.svelte +4 -4
  46. package/dist/components/ui/Tooltip.svelte +1 -0
  47. package/dist/components/ui/Tree.svelte +2 -2
  48. package/dist/themes/CUSTOM_THEME_GUIDE.md +16 -1
  49. package/dist/themes/README.md +126 -0
  50. package/dist/themes/ThemeProvider.svelte +173 -13
  51. package/dist/themes/ThemeProvider.svelte.d.ts +7 -2
  52. package/dist/themes/ThemeProvider.svelte.d.ts.map +1 -1
  53. package/dist/themes/create-theme.d.ts +22 -1
  54. package/dist/themes/create-theme.d.ts.map +1 -1
  55. package/dist/themes/create-theme.js +93 -5
  56. package/dist/themes/css-generator.d.ts.map +1 -1
  57. package/dist/themes/css-generator.js +15 -16
  58. package/dist/themes/derive.d.ts +31 -0
  59. package/dist/themes/derive.d.ts.map +1 -0
  60. package/dist/themes/derive.js +183 -0
  61. package/dist/themes/glass/index.d.ts.map +1 -1
  62. package/dist/themes/glass/index.js +127 -14
  63. package/dist/themes/happyvertical/index.d.ts.map +1 -1
  64. package/dist/themes/happyvertical/index.js +101 -20
  65. package/dist/themes/index.d.ts +2 -2
  66. package/dist/themes/index.d.ts.map +1 -1
  67. package/dist/themes/index.js +1 -1
  68. package/dist/themes/material/index.d.ts.map +1 -1
  69. package/dist/themes/material/index.js +129 -28
  70. package/dist/themes/required-tokens.generated.json +31 -0
  71. package/dist/themes/shared.d.ts +35 -0
  72. package/dist/themes/shared.d.ts.map +1 -1
  73. package/dist/themes/shared.js +32 -0
  74. package/dist/themes/smrt/index.d.ts +3 -0
  75. package/dist/themes/smrt/index.d.ts.map +1 -1
  76. package/dist/themes/smrt/index.js +108 -26
  77. package/dist/themes/studio/index.d.ts.map +1 -1
  78. package/dist/themes/studio/index.js +116 -40
  79. package/dist/themes/styles/base.css +225 -0
  80. package/dist/themes/styles/glass.css +103 -19
  81. package/dist/themes/styles/happyvertical.css +104 -12
  82. package/dist/themes/styles/material.css +127 -35
  83. package/dist/themes/styles/smrt.css +122 -30
  84. package/dist/themes/styles/studio.css +128 -36
  85. package/dist/themes/theme-script.d.ts +3 -1
  86. package/dist/themes/theme-script.d.ts.map +1 -1
  87. package/dist/themes/theme-script.js +7 -2
  88. package/dist/themes/types.d.ts +118 -6
  89. package/dist/themes/types.d.ts.map +1 -1
  90. package/package.json +3 -3
@@ -36,6 +36,10 @@
36
36
  --smrt-color-on-tertiary: #ffffff;
37
37
  --smrt-color-tertiary-container: #e7e0ff;
38
38
  --smrt-color-on-tertiary-container: #3a2b8c;
39
+ --smrt-color-info: #2c6a96;
40
+ --smrt-color-on-info: #ffffff;
41
+ --smrt-color-info-container: #dcebf5;
42
+ --smrt-color-on-info-container: #0f3149;
39
43
  --smrt-color-error: #c0362c;
40
44
  --smrt-color-on-error: #ffffff;
41
45
  --smrt-color-error-container: #fbe0dd;
@@ -142,22 +146,22 @@
142
146
  --smrt-typography-body-small-font: 400 0.8125rem/1.55 var(--smrt-font-family);
143
147
  --smrt-typography-label-large-size: 0.8125rem;
144
148
  --smrt-typography-label-large-line-height: 1.4;
145
- --smrt-typography-label-large-weight: 600;
146
- --smrt-typography-label-large-tracking: 0.04em;
149
+ --smrt-typography-label-large-weight: 500;
150
+ --smrt-typography-label-large-tracking: 0.01em;
147
151
  --smrt-typography-label-large-font-family: var(--smrt-font-family);
148
- --smrt-typography-label-large-font: 600 0.8125rem/1.4 var(--smrt-font-family);
152
+ --smrt-typography-label-large-font: 500 0.8125rem/1.4 var(--smrt-font-family);
149
153
  --smrt-typography-label-medium-size: 0.6875rem;
150
154
  --smrt-typography-label-medium-line-height: 1.4;
151
- --smrt-typography-label-medium-weight: 600;
152
- --smrt-typography-label-medium-tracking: 0.08em;
155
+ --smrt-typography-label-medium-weight: 500;
156
+ --smrt-typography-label-medium-tracking: 0.03em;
153
157
  --smrt-typography-label-medium-font-family: var(--smrt-font-family);
154
- --smrt-typography-label-medium-font: 600 0.6875rem/1.4 var(--smrt-font-family);
158
+ --smrt-typography-label-medium-font: 500 0.6875rem/1.4 var(--smrt-font-family);
155
159
  --smrt-typography-label-small-size: 0.625rem;
156
160
  --smrt-typography-label-small-line-height: 1.4;
157
- --smrt-typography-label-small-weight: 600;
158
- --smrt-typography-label-small-tracking: 0.1em;
161
+ --smrt-typography-label-small-weight: 500;
162
+ --smrt-typography-label-small-tracking: 0.05em;
159
163
  --smrt-typography-label-small-font-family: var(--smrt-font-family);
160
- --smrt-typography-label-small-font: 600 0.625rem/1.4 var(--smrt-font-family);
164
+ --smrt-typography-label-small-font: 500 0.625rem/1.4 var(--smrt-font-family);
161
165
  --smrt-spacing-0: 0;
162
166
  --smrt-spacing-1: 0.25rem;
163
167
  --smrt-spacing-2: 0.5rem;
@@ -199,12 +203,12 @@
199
203
  --smrt-radius-medium: 0.5rem;
200
204
  --smrt-radius-large: 0.75rem;
201
205
  --smrt-radius-extra-large: 1rem;
202
- --smrt-elevation-0: none;
203
- --smrt-elevation-1: inset 0 0 0 1px rgba(20, 26, 36, 0.08);
204
- --smrt-elevation-2: 0 18px 44px -28px rgba(20, 26, 36, 0.18);
205
- --smrt-elevation-3: 0 24px 56px -34px rgba(20, 26, 36, 0.22);
206
- --smrt-elevation-4: 0 30px 70px -40px rgba(20, 26, 36, 0.28);
207
- --smrt-elevation-5: 0 40px 90px -50px rgba(20, 26, 36, 0.3);
206
+ --smrt-elevation-0: 0 0 0 0 transparent;
207
+ --smrt-elevation-1: inset 0 0 0 1px var(--smrt-hairline-color);
208
+ --smrt-elevation-2: 0 1px 2px 0 color-mix(in srgb, var(--smrt-shadow-color) 10%, transparent), 0 4px 10px -4px color-mix(in srgb, var(--smrt-shadow-color) 10%, transparent);
209
+ --smrt-elevation-3: 0 1px 3px 0 color-mix(in srgb, var(--smrt-shadow-color) 12%, transparent), 0 8px 18px -6px color-mix(in srgb, var(--smrt-shadow-color) 14%, transparent);
210
+ --smrt-elevation-4: 0 2px 4px 0 color-mix(in srgb, var(--smrt-shadow-color) 14%, transparent), 0 14px 28px -8px color-mix(in srgb, var(--smrt-shadow-color) 16%, transparent);
211
+ --smrt-elevation-5: 0 2px 6px 0 color-mix(in srgb, var(--smrt-shadow-color) 16%, transparent), 0 24px 48px -12px color-mix(in srgb, var(--smrt-shadow-color) 20%, transparent);
208
212
  --smrt-duration-instant: 0ms;
209
213
  --smrt-duration-fast: 100ms;
210
214
  --smrt-duration-normal: 200ms;
@@ -242,6 +246,48 @@
242
246
  --smrt-z-index-toast: 1500;
243
247
  --smrt-z-index-tooltip: 1600;
244
248
  --smrt-z-index-loading: 1700;
249
+ --smrt-surface-ground: #edeff2;
250
+ --smrt-surface-panel: #ffffff;
251
+ --smrt-surface-control: #f5f6f8;
252
+ --smrt-surface-raised: #ffffff;
253
+ --smrt-surface-sunken: #e7eaee;
254
+ --smrt-surface-overlay: rgba(0, 0, 0, 0.5);
255
+ --smrt-hairline-color: color-mix(in srgb, var(--smrt-color-on-surface) 12%, transparent);
256
+ --smrt-hairline-strong-color: color-mix(in srgb, var(--smrt-color-on-surface) 30%, transparent);
257
+ --smrt-hairline: 1px solid var(--smrt-hairline-color);
258
+ --smrt-hairline-strong: 1px solid var(--smrt-hairline-strong-color);
259
+ --smrt-inset-highlight: inset 0 1px 0 transparent;
260
+ --smrt-state-hover: 0.10;
261
+ --smrt-state-pressed: 0.16;
262
+ --smrt-state-selected: 0.14;
263
+ --smrt-state-focus: 0.16;
264
+ --smrt-state-dragged: 0.20;
265
+ --smrt-state-disabled: 0.38;
266
+ --smrt-shadow-color: rgb(20 26 36);
267
+ --smrt-control-radius: var(--smrt-radius-sm);
268
+ --smrt-control-radius-small: var(--smrt-radius-sm);
269
+ --smrt-control-height: 2.5rem;
270
+ --smrt-control-height-small: 2rem;
271
+ --smrt-control-weight: 500;
272
+ --smrt-control-border: var(--smrt-hairline-strong);
273
+ --smrt-focus-ring-color: var(--smrt-color-primary);
274
+ --smrt-focus-ring-width: 2px;
275
+ --smrt-focus-ring-offset: 2px;
276
+ --smrt-accent-color: var(--smrt-color-primary);
277
+ --smrt-selection-background: var(--smrt-color-primary-container);
278
+ --smrt-selection-color: var(--smrt-color-on-primary-container);
279
+ --smrt-caret-color: var(--smrt-color-primary);
280
+ --smrt-scrollbar-thumb: var(--smrt-hairline-strong-color);
281
+ --smrt-scrollbar-track: transparent;
282
+ --smrt-glass-blur: 0px;
283
+ --smrt-glass-saturation: 100%;
284
+ --smrt-glass-surface: var(--smrt-surface-panel);
285
+ --smrt-glass-surface-strong: var(--smrt-surface-raised);
286
+ --smrt-glass-border: var(--smrt-hairline-color);
287
+ --smrt-glass-border-opacity: 1;
288
+ --smrt-glass-background-opacity: 1;
289
+ --smrt-duration-scheme: var(--smrt-duration-medium1);
290
+ --smrt-font-feature-settings: "tnum" 1, "cv11" 1;
245
291
  }
246
292
 
247
293
  [data-theme="smrt"][data-color-scheme="dark"] {
@@ -263,6 +309,10 @@
263
309
  --smrt-color-on-tertiary: #241a4d;
264
310
  --smrt-color-tertiary-container: #2a2350;
265
311
  --smrt-color-on-tertiary-container: #ddd4ff;
312
+ --smrt-color-info: #6fa8d6;
313
+ --smrt-color-on-info: #08202f;
314
+ --smrt-color-info-container: #162a39;
315
+ --smrt-color-on-info-container: #b5d6ee;
266
316
  --smrt-color-error: #ff6b6b;
267
317
  --smrt-color-on-error: #2a0a0a;
268
318
  --smrt-color-error-container: #3a1414;
@@ -369,22 +419,22 @@
369
419
  --smrt-typography-body-small-font: 400 0.8125rem/1.55 var(--smrt-font-family);
370
420
  --smrt-typography-label-large-size: 0.8125rem;
371
421
  --smrt-typography-label-large-line-height: 1.4;
372
- --smrt-typography-label-large-weight: 600;
373
- --smrt-typography-label-large-tracking: 0.04em;
422
+ --smrt-typography-label-large-weight: 500;
423
+ --smrt-typography-label-large-tracking: 0.01em;
374
424
  --smrt-typography-label-large-font-family: var(--smrt-font-family);
375
- --smrt-typography-label-large-font: 600 0.8125rem/1.4 var(--smrt-font-family);
425
+ --smrt-typography-label-large-font: 500 0.8125rem/1.4 var(--smrt-font-family);
376
426
  --smrt-typography-label-medium-size: 0.6875rem;
377
427
  --smrt-typography-label-medium-line-height: 1.4;
378
- --smrt-typography-label-medium-weight: 600;
379
- --smrt-typography-label-medium-tracking: 0.08em;
428
+ --smrt-typography-label-medium-weight: 500;
429
+ --smrt-typography-label-medium-tracking: 0.03em;
380
430
  --smrt-typography-label-medium-font-family: var(--smrt-font-family);
381
- --smrt-typography-label-medium-font: 600 0.6875rem/1.4 var(--smrt-font-family);
431
+ --smrt-typography-label-medium-font: 500 0.6875rem/1.4 var(--smrt-font-family);
382
432
  --smrt-typography-label-small-size: 0.625rem;
383
433
  --smrt-typography-label-small-line-height: 1.4;
384
- --smrt-typography-label-small-weight: 600;
385
- --smrt-typography-label-small-tracking: 0.1em;
434
+ --smrt-typography-label-small-weight: 500;
435
+ --smrt-typography-label-small-tracking: 0.05em;
386
436
  --smrt-typography-label-small-font-family: var(--smrt-font-family);
387
- --smrt-typography-label-small-font: 600 0.625rem/1.4 var(--smrt-font-family);
437
+ --smrt-typography-label-small-font: 500 0.625rem/1.4 var(--smrt-font-family);
388
438
  --smrt-spacing-0: 0;
389
439
  --smrt-spacing-1: 0.25rem;
390
440
  --smrt-spacing-2: 0.5rem;
@@ -426,12 +476,12 @@
426
476
  --smrt-radius-medium: 0.5rem;
427
477
  --smrt-radius-large: 0.75rem;
428
478
  --smrt-radius-extra-large: 1rem;
429
- --smrt-elevation-0: none;
430
- --smrt-elevation-1: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
431
- --smrt-elevation-2: 0 18px 44px -28px rgba(0, 0, 0, 0.6);
432
- --smrt-elevation-3: 0 24px 56px -34px rgba(0, 0, 0, 0.72);
433
- --smrt-elevation-4: 0 30px 66px -40px rgba(0, 0, 0, 0.82);
434
- --smrt-elevation-5: 0 40px 90px -50px rgba(0, 0, 0, 0.88);
479
+ --smrt-elevation-0: 0 0 0 0 transparent;
480
+ --smrt-elevation-1: inset 0 0 0 1px var(--smrt-hairline-color);
481
+ --smrt-elevation-2: var(--smrt-inset-highlight), 0 1px 2px 0 color-mix(in srgb, var(--smrt-shadow-color) 36%, transparent), 0 4px 10px -4px color-mix(in srgb, var(--smrt-shadow-color) 28%, transparent);
482
+ --smrt-elevation-3: var(--smrt-inset-highlight), 0 1px 3px 0 color-mix(in srgb, var(--smrt-shadow-color) 40%, transparent), 0 8px 18px -6px color-mix(in srgb, var(--smrt-shadow-color) 36%, transparent);
483
+ --smrt-elevation-4: var(--smrt-inset-highlight), 0 2px 4px 0 color-mix(in srgb, var(--smrt-shadow-color) 44%, transparent), 0 14px 28px -8px color-mix(in srgb, var(--smrt-shadow-color) 42%, transparent);
484
+ --smrt-elevation-5: var(--smrt-inset-highlight), 0 2px 6px 0 color-mix(in srgb, var(--smrt-shadow-color) 48%, transparent), 0 24px 48px -12px color-mix(in srgb, var(--smrt-shadow-color) 50%, transparent);
435
485
  --smrt-duration-instant: 0ms;
436
486
  --smrt-duration-fast: 100ms;
437
487
  --smrt-duration-normal: 200ms;
@@ -469,6 +519,48 @@
469
519
  --smrt-z-index-toast: 1500;
470
520
  --smrt-z-index-tooltip: 1600;
471
521
  --smrt-z-index-loading: 1700;
522
+ --smrt-surface-ground: #0b0c0e;
523
+ --smrt-surface-panel: #121417;
524
+ --smrt-surface-control: #181b1f;
525
+ --smrt-surface-raised: #1d2126;
526
+ --smrt-surface-sunken: #08090b;
527
+ --smrt-surface-overlay: rgba(0, 0, 0, 0.7);
528
+ --smrt-hairline-color: color-mix(in srgb, var(--smrt-color-on-surface) 9%, transparent);
529
+ --smrt-hairline-strong-color: color-mix(in srgb, var(--smrt-color-on-surface) 24%, transparent);
530
+ --smrt-hairline: 1px solid var(--smrt-hairline-color);
531
+ --smrt-hairline-strong: 1px solid var(--smrt-hairline-strong-color);
532
+ --smrt-inset-highlight: inset 0 1px 0 rgb(255 255 255 / 0.05);
533
+ --smrt-state-hover: 0.10;
534
+ --smrt-state-pressed: 0.16;
535
+ --smrt-state-selected: 0.14;
536
+ --smrt-state-focus: 0.16;
537
+ --smrt-state-dragged: 0.20;
538
+ --smrt-state-disabled: 0.38;
539
+ --smrt-shadow-color: rgb(0 0 0);
540
+ --smrt-control-radius: var(--smrt-radius-sm);
541
+ --smrt-control-radius-small: var(--smrt-radius-sm);
542
+ --smrt-control-height: 2.5rem;
543
+ --smrt-control-height-small: 2rem;
544
+ --smrt-control-weight: 500;
545
+ --smrt-control-border: var(--smrt-hairline-strong);
546
+ --smrt-focus-ring-color: var(--smrt-color-primary);
547
+ --smrt-focus-ring-width: 2px;
548
+ --smrt-focus-ring-offset: 2px;
549
+ --smrt-accent-color: var(--smrt-color-primary);
550
+ --smrt-selection-background: var(--smrt-color-primary-container);
551
+ --smrt-selection-color: var(--smrt-color-on-primary-container);
552
+ --smrt-caret-color: var(--smrt-color-primary);
553
+ --smrt-scrollbar-thumb: var(--smrt-hairline-strong-color);
554
+ --smrt-scrollbar-track: transparent;
555
+ --smrt-glass-blur: 0px;
556
+ --smrt-glass-saturation: 100%;
557
+ --smrt-glass-surface: var(--smrt-surface-panel);
558
+ --smrt-glass-surface-strong: var(--smrt-surface-raised);
559
+ --smrt-glass-border: var(--smrt-hairline-color);
560
+ --smrt-glass-border-opacity: 1;
561
+ --smrt-glass-background-opacity: 1;
562
+ --smrt-duration-scheme: var(--smrt-duration-medium1);
563
+ --smrt-font-feature-settings: "tnum" 1, "cv11" 1;
472
564
  }
473
565
 
474
566
  /* ============================================================================
@@ -27,6 +27,10 @@
27
27
  --smrt-color-on-tertiary: #ffffff;
28
28
  --smrt-color-tertiary-container: #f3e8fd;
29
29
  --smrt-color-on-tertiary-container: #6b12b8;
30
+ --smrt-color-info: #9334e6;
31
+ --smrt-color-on-info: #ffffff;
32
+ --smrt-color-info-container: #f3e8fd;
33
+ --smrt-color-on-info-container: #6b12b8;
30
34
  --smrt-color-error: #d93025;
31
35
  --smrt-color-on-error: #ffffff;
32
36
  --smrt-color-error-container: #fce8e6;
@@ -62,31 +66,31 @@
62
66
  --smrt-typography-display-large-size: 3rem;
63
67
  --smrt-typography-display-large-line-height: 1.1;
64
68
  --smrt-typography-display-large-weight: 400;
65
- --smrt-typography-display-large-tracking: -0.01em;
69
+ --smrt-typography-display-large-tracking: -0.02em;
66
70
  --smrt-typography-display-large-font-family: var(--smrt-font-family);
67
71
  --smrt-typography-display-large-font: 400 3rem/1.1 var(--smrt-font-family);
68
72
  --smrt-typography-display-medium-size: 2.5rem;
69
73
  --smrt-typography-display-medium-line-height: 1.15;
70
74
  --smrt-typography-display-medium-weight: 400;
71
- --smrt-typography-display-medium-tracking: -0.008em;
75
+ --smrt-typography-display-medium-tracking: -0.015em;
72
76
  --smrt-typography-display-medium-font-family: var(--smrt-font-family);
73
77
  --smrt-typography-display-medium-font: 400 2.5rem/1.15 var(--smrt-font-family);
74
78
  --smrt-typography-display-small-size: 2rem;
75
79
  --smrt-typography-display-small-line-height: 1.2;
76
80
  --smrt-typography-display-small-weight: 400;
77
- --smrt-typography-display-small-tracking: -0.005em;
81
+ --smrt-typography-display-small-tracking: -0.01em;
78
82
  --smrt-typography-display-small-font-family: var(--smrt-font-family);
79
83
  --smrt-typography-display-small-font: 400 2rem/1.2 var(--smrt-font-family);
80
84
  --smrt-typography-headline-large-size: 1.75rem;
81
85
  --smrt-typography-headline-large-line-height: 1.25;
82
86
  --smrt-typography-headline-large-weight: 400;
83
- --smrt-typography-headline-large-tracking: 0;
87
+ --smrt-typography-headline-large-tracking: -0.01em;
84
88
  --smrt-typography-headline-large-font-family: var(--smrt-font-family);
85
89
  --smrt-typography-headline-large-font: 400 1.75rem/1.25 var(--smrt-font-family);
86
90
  --smrt-typography-headline-medium-size: 1.5rem;
87
91
  --smrt-typography-headline-medium-line-height: 1.3;
88
92
  --smrt-typography-headline-medium-weight: 400;
89
- --smrt-typography-headline-medium-tracking: 0;
93
+ --smrt-typography-headline-medium-tracking: -0.005em;
90
94
  --smrt-typography-headline-medium-font-family: var(--smrt-font-family);
91
95
  --smrt-typography-headline-medium-font: 400 1.5rem/1.3 var(--smrt-font-family);
92
96
  --smrt-typography-headline-small-size: 1.25rem;
@@ -134,13 +138,13 @@
134
138
  --smrt-typography-label-large-size: 0.875rem;
135
139
  --smrt-typography-label-large-line-height: 1.5;
136
140
  --smrt-typography-label-large-weight: 500;
137
- --smrt-typography-label-large-tracking: 0.02em;
141
+ --smrt-typography-label-large-tracking: 0.01em;
138
142
  --smrt-typography-label-large-font-family: var(--smrt-font-family);
139
143
  --smrt-typography-label-large-font: 500 0.875rem/1.5 var(--smrt-font-family);
140
144
  --smrt-typography-label-medium-size: 0.75rem;
141
145
  --smrt-typography-label-medium-line-height: 1.5;
142
146
  --smrt-typography-label-medium-weight: 500;
143
- --smrt-typography-label-medium-tracking: 0.025em;
147
+ --smrt-typography-label-medium-tracking: 0.02em;
144
148
  --smrt-typography-label-medium-font-family: var(--smrt-font-family);
145
149
  --smrt-typography-label-medium-font: 500 0.75rem/1.5 var(--smrt-font-family);
146
150
  --smrt-typography-label-small-size: 0.6875rem;
@@ -190,12 +194,12 @@
190
194
  --smrt-radius-medium: 0.5rem;
191
195
  --smrt-radius-large: 0.75rem;
192
196
  --smrt-radius-extra-large: 1rem;
193
- --smrt-elevation-0: none;
194
- --smrt-elevation-1: inset 0 0 0 1px rgba(60, 64, 67, 0.08);
195
- --smrt-elevation-2: 0 1px 2px 0 rgba(60, 64, 67, 0.08), 0 1px 3px 0 rgba(60, 64, 67, 0.04);
196
- --smrt-elevation-3: 0 2px 4px 0 rgba(60, 64, 67, 0.1), 0 1px 2px 0 rgba(60, 64, 67, 0.06);
197
- --smrt-elevation-4: 0 4px 8px 0 rgba(60, 64, 67, 0.1), 0 2px 4px 0 rgba(60, 64, 67, 0.06);
198
- --smrt-elevation-5: 0 8px 16px 0 rgba(60, 64, 67, 0.12), 0 4px 8px 0 rgba(60, 64, 67, 0.06);
197
+ --smrt-elevation-0: 0 0 0 0 transparent;
198
+ --smrt-elevation-1: inset 0 0 0 1px var(--smrt-hairline-color);
199
+ --smrt-elevation-2: 0 1px 2px 0 color-mix(in srgb, var(--smrt-shadow-color) 10%, transparent), 0 2px 4px -2px color-mix(in srgb, var(--smrt-shadow-color) 8%, transparent);
200
+ --smrt-elevation-3: 0 1px 2px 0 color-mix(in srgb, var(--smrt-shadow-color) 12%, transparent), 0 4px 8px -3px color-mix(in srgb, var(--smrt-shadow-color) 10%, transparent);
201
+ --smrt-elevation-4: 0 2px 3px 0 color-mix(in srgb, var(--smrt-shadow-color) 12%, transparent), 0 8px 16px -4px color-mix(in srgb, var(--smrt-shadow-color) 12%, transparent);
202
+ --smrt-elevation-5: 0 2px 4px 0 color-mix(in srgb, var(--smrt-shadow-color) 14%, transparent), 0 16px 32px -8px color-mix(in srgb, var(--smrt-shadow-color) 16%, transparent);
199
203
  --smrt-duration-instant: 0ms;
200
204
  --smrt-duration-fast: 100ms;
201
205
  --smrt-duration-normal: 200ms;
@@ -233,6 +237,48 @@
233
237
  --smrt-z-index-toast: 1500;
234
238
  --smrt-z-index-tooltip: 1600;
235
239
  --smrt-z-index-loading: 1700;
240
+ --smrt-surface-ground: #ffffff;
241
+ --smrt-surface-panel: #ffffff;
242
+ --smrt-surface-control: #f6f7f8;
243
+ --smrt-surface-raised: #ffffff;
244
+ --smrt-surface-sunken: #f1f3f4;
245
+ --smrt-surface-overlay: rgba(0, 0, 0, 0.5);
246
+ --smrt-hairline-color: color-mix(in srgb, var(--smrt-color-on-surface) 12%, transparent);
247
+ --smrt-hairline-strong-color: color-mix(in srgb, var(--smrt-color-on-surface) 32%, transparent);
248
+ --smrt-hairline: 1px solid var(--smrt-hairline-color);
249
+ --smrt-hairline-strong: 1px solid var(--smrt-hairline-strong-color);
250
+ --smrt-inset-highlight: inset 0 1px 0 transparent;
251
+ --smrt-state-hover: 0.06;
252
+ --smrt-state-pressed: 0.10;
253
+ --smrt-state-selected: 0.10;
254
+ --smrt-state-focus: 0.10;
255
+ --smrt-state-dragged: 0.14;
256
+ --smrt-state-disabled: 0.38;
257
+ --smrt-shadow-color: rgb(60 64 67);
258
+ --smrt-control-radius: 0.375rem;
259
+ --smrt-control-radius-small: var(--smrt-radius-sm);
260
+ --smrt-control-height: 2.5rem;
261
+ --smrt-control-height-small: 2rem;
262
+ --smrt-control-weight: 500;
263
+ --smrt-control-border: var(--smrt-hairline-strong);
264
+ --smrt-focus-ring-color: var(--smrt-color-primary);
265
+ --smrt-focus-ring-width: 2px;
266
+ --smrt-focus-ring-offset: 2px;
267
+ --smrt-accent-color: var(--smrt-color-primary);
268
+ --smrt-selection-background: var(--smrt-color-primary-container);
269
+ --smrt-selection-color: var(--smrt-color-on-primary-container);
270
+ --smrt-caret-color: var(--smrt-color-primary);
271
+ --smrt-scrollbar-thumb: var(--smrt-hairline-strong-color);
272
+ --smrt-scrollbar-track: transparent;
273
+ --smrt-glass-blur: 0px;
274
+ --smrt-glass-saturation: 100%;
275
+ --smrt-glass-surface: var(--smrt-surface-panel);
276
+ --smrt-glass-surface-strong: var(--smrt-surface-raised);
277
+ --smrt-glass-border: var(--smrt-hairline-color);
278
+ --smrt-glass-border-opacity: 1;
279
+ --smrt-glass-background-opacity: 1;
280
+ --smrt-duration-scheme: var(--smrt-duration-medium1);
281
+ --smrt-font-feature-settings: normal;
236
282
  }
237
283
 
238
284
  [data-theme="studio"][data-color-scheme="dark"] {
@@ -254,6 +300,10 @@
254
300
  --smrt-color-on-tertiary: #3e1385;
255
301
  --smrt-color-tertiary-container: #6b12b8;
256
302
  --smrt-color-on-tertiary-container: #f3e8fd;
303
+ --smrt-color-info: #c58af9;
304
+ --smrt-color-on-info: #3e1385;
305
+ --smrt-color-info-container: #6b12b8;
306
+ --smrt-color-on-info-container: #f3e8fd;
257
307
  --smrt-color-error: #f28b82;
258
308
  --smrt-color-on-error: #5c150c;
259
309
  --smrt-color-error-container: #a50e0e;
@@ -266,18 +316,18 @@
266
316
  --smrt-color-on-success: #0d3b1f;
267
317
  --smrt-color-success-container: #137333;
268
318
  --smrt-color-on-success-container: #e6f4ea;
269
- --smrt-color-surface: #0e0e0e;
319
+ --smrt-color-surface: #131416;
270
320
  --smrt-color-on-surface: #e8eaed;
271
- --smrt-color-surface-variant: #1f1f1f;
321
+ --smrt-color-surface-variant: #1c1d20;
272
322
  --smrt-color-on-surface-variant: #9aa0a6;
273
- --smrt-color-surface-container: #1f1f1f;
274
- --smrt-color-surface-container-low: #141414;
275
- --smrt-color-surface-container-high: #2d2d2d;
276
- --smrt-color-surface-container-highest: #3c4043;
277
- --smrt-color-surface-container-lowest: #0a0a0a;
278
- --smrt-color-surface-dim: #141414;
279
- --smrt-color-surface-bright: #2d2d2d;
280
- --smrt-color-background: #0e0e0e;
323
+ --smrt-color-surface-container: #1a1b1e;
324
+ --smrt-color-surface-container-low: #16171a;
325
+ --smrt-color-surface-container-high: #202124;
326
+ --smrt-color-surface-container-highest: #292a2d;
327
+ --smrt-color-surface-container-lowest: #0e0f10;
328
+ --smrt-color-surface-dim: #0e0f10;
329
+ --smrt-color-surface-bright: #2b2c2f;
330
+ --smrt-color-background: #131416;
281
331
  --smrt-color-on-background: #e8eaed;
282
332
  --smrt-color-outline: #8c8e92;
283
333
  --smrt-color-outline-variant: #3c4043;
@@ -289,31 +339,31 @@
289
339
  --smrt-typography-display-large-size: 3rem;
290
340
  --smrt-typography-display-large-line-height: 1.1;
291
341
  --smrt-typography-display-large-weight: 400;
292
- --smrt-typography-display-large-tracking: -0.01em;
342
+ --smrt-typography-display-large-tracking: -0.02em;
293
343
  --smrt-typography-display-large-font-family: var(--smrt-font-family);
294
344
  --smrt-typography-display-large-font: 400 3rem/1.1 var(--smrt-font-family);
295
345
  --smrt-typography-display-medium-size: 2.5rem;
296
346
  --smrt-typography-display-medium-line-height: 1.15;
297
347
  --smrt-typography-display-medium-weight: 400;
298
- --smrt-typography-display-medium-tracking: -0.008em;
348
+ --smrt-typography-display-medium-tracking: -0.015em;
299
349
  --smrt-typography-display-medium-font-family: var(--smrt-font-family);
300
350
  --smrt-typography-display-medium-font: 400 2.5rem/1.15 var(--smrt-font-family);
301
351
  --smrt-typography-display-small-size: 2rem;
302
352
  --smrt-typography-display-small-line-height: 1.2;
303
353
  --smrt-typography-display-small-weight: 400;
304
- --smrt-typography-display-small-tracking: -0.005em;
354
+ --smrt-typography-display-small-tracking: -0.01em;
305
355
  --smrt-typography-display-small-font-family: var(--smrt-font-family);
306
356
  --smrt-typography-display-small-font: 400 2rem/1.2 var(--smrt-font-family);
307
357
  --smrt-typography-headline-large-size: 1.75rem;
308
358
  --smrt-typography-headline-large-line-height: 1.25;
309
359
  --smrt-typography-headline-large-weight: 400;
310
- --smrt-typography-headline-large-tracking: 0;
360
+ --smrt-typography-headline-large-tracking: -0.01em;
311
361
  --smrt-typography-headline-large-font-family: var(--smrt-font-family);
312
362
  --smrt-typography-headline-large-font: 400 1.75rem/1.25 var(--smrt-font-family);
313
363
  --smrt-typography-headline-medium-size: 1.5rem;
314
364
  --smrt-typography-headline-medium-line-height: 1.3;
315
365
  --smrt-typography-headline-medium-weight: 400;
316
- --smrt-typography-headline-medium-tracking: 0;
366
+ --smrt-typography-headline-medium-tracking: -0.005em;
317
367
  --smrt-typography-headline-medium-font-family: var(--smrt-font-family);
318
368
  --smrt-typography-headline-medium-font: 400 1.5rem/1.3 var(--smrt-font-family);
319
369
  --smrt-typography-headline-small-size: 1.25rem;
@@ -361,13 +411,13 @@
361
411
  --smrt-typography-label-large-size: 0.875rem;
362
412
  --smrt-typography-label-large-line-height: 1.5;
363
413
  --smrt-typography-label-large-weight: 500;
364
- --smrt-typography-label-large-tracking: 0.02em;
414
+ --smrt-typography-label-large-tracking: 0.01em;
365
415
  --smrt-typography-label-large-font-family: var(--smrt-font-family);
366
416
  --smrt-typography-label-large-font: 500 0.875rem/1.5 var(--smrt-font-family);
367
417
  --smrt-typography-label-medium-size: 0.75rem;
368
418
  --smrt-typography-label-medium-line-height: 1.5;
369
419
  --smrt-typography-label-medium-weight: 500;
370
- --smrt-typography-label-medium-tracking: 0.025em;
420
+ --smrt-typography-label-medium-tracking: 0.02em;
371
421
  --smrt-typography-label-medium-font-family: var(--smrt-font-family);
372
422
  --smrt-typography-label-medium-font: 500 0.75rem/1.5 var(--smrt-font-family);
373
423
  --smrt-typography-label-small-size: 0.6875rem;
@@ -417,12 +467,12 @@
417
467
  --smrt-radius-medium: 0.5rem;
418
468
  --smrt-radius-large: 0.75rem;
419
469
  --smrt-radius-extra-large: 1rem;
420
- --smrt-elevation-0: none;
421
- --smrt-elevation-1: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
422
- --smrt-elevation-2: 0 1px 2px 0 rgba(0, 0, 0, 0.2), 0 1px 3px 0 rgba(0, 0, 0, 0.1);
423
- --smrt-elevation-3: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 1px 2px 0 rgba(0, 0, 0, 0.1);
424
- --smrt-elevation-4: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 2px 4px 0 rgba(0, 0, 0, 0.1);
425
- --smrt-elevation-5: 0 8px 16px 0 rgba(0, 0, 0, 0.25), 0 4px 8px 0 rgba(0, 0, 0, 0.1);
470
+ --smrt-elevation-0: 0 0 0 0 transparent;
471
+ --smrt-elevation-1: inset 0 0 0 1px var(--smrt-hairline-color);
472
+ --smrt-elevation-2: var(--smrt-inset-highlight), 0 1px 2px 0 color-mix(in srgb, var(--smrt-shadow-color) 28%, transparent), 0 2px 4px -2px color-mix(in srgb, var(--smrt-shadow-color) 20%, transparent);
473
+ --smrt-elevation-3: var(--smrt-inset-highlight), 0 1px 2px 0 color-mix(in srgb, var(--smrt-shadow-color) 30%, transparent), 0 4px 8px -3px color-mix(in srgb, var(--smrt-shadow-color) 24%, transparent);
474
+ --smrt-elevation-4: var(--smrt-inset-highlight), 0 2px 3px 0 color-mix(in srgb, var(--smrt-shadow-color) 32%, transparent), 0 8px 16px -4px color-mix(in srgb, var(--smrt-shadow-color) 28%, transparent);
475
+ --smrt-elevation-5: var(--smrt-inset-highlight), 0 2px 4px 0 color-mix(in srgb, var(--smrt-shadow-color) 34%, transparent), 0 16px 32px -8px color-mix(in srgb, var(--smrt-shadow-color) 32%, transparent);
426
476
  --smrt-duration-instant: 0ms;
427
477
  --smrt-duration-fast: 100ms;
428
478
  --smrt-duration-normal: 200ms;
@@ -460,6 +510,48 @@
460
510
  --smrt-z-index-toast: 1500;
461
511
  --smrt-z-index-tooltip: 1600;
462
512
  --smrt-z-index-loading: 1700;
513
+ --smrt-surface-ground: #131416;
514
+ --smrt-surface-panel: #131416;
515
+ --smrt-surface-control: #1c1d20;
516
+ --smrt-surface-raised: #292a2d;
517
+ --smrt-surface-sunken: #0e0f10;
518
+ --smrt-surface-overlay: rgba(0, 0, 0, 0.7);
519
+ --smrt-hairline-color: color-mix(in srgb, var(--smrt-color-on-surface) 14%, transparent);
520
+ --smrt-hairline-strong-color: color-mix(in srgb, var(--smrt-color-on-surface) 32%, transparent);
521
+ --smrt-hairline: 1px solid var(--smrt-hairline-color);
522
+ --smrt-hairline-strong: 1px solid var(--smrt-hairline-strong-color);
523
+ --smrt-inset-highlight: inset 0 1px 0 rgb(255 255 255 / 0.05);
524
+ --smrt-state-hover: 0.06;
525
+ --smrt-state-pressed: 0.10;
526
+ --smrt-state-selected: 0.10;
527
+ --smrt-state-focus: 0.10;
528
+ --smrt-state-dragged: 0.14;
529
+ --smrt-state-disabled: 0.38;
530
+ --smrt-shadow-color: rgb(0 0 0);
531
+ --smrt-control-radius: 0.375rem;
532
+ --smrt-control-radius-small: var(--smrt-radius-sm);
533
+ --smrt-control-height: 2.5rem;
534
+ --smrt-control-height-small: 2rem;
535
+ --smrt-control-weight: 500;
536
+ --smrt-control-border: var(--smrt-hairline-strong);
537
+ --smrt-focus-ring-color: var(--smrt-color-primary);
538
+ --smrt-focus-ring-width: 2px;
539
+ --smrt-focus-ring-offset: 2px;
540
+ --smrt-accent-color: var(--smrt-color-primary);
541
+ --smrt-selection-background: var(--smrt-color-primary-container);
542
+ --smrt-selection-color: var(--smrt-color-on-primary-container);
543
+ --smrt-caret-color: var(--smrt-color-primary);
544
+ --smrt-scrollbar-thumb: var(--smrt-hairline-strong-color);
545
+ --smrt-scrollbar-track: transparent;
546
+ --smrt-glass-blur: 0px;
547
+ --smrt-glass-saturation: 100%;
548
+ --smrt-glass-surface: var(--smrt-surface-panel);
549
+ --smrt-glass-surface-strong: var(--smrt-surface-raised);
550
+ --smrt-glass-border: var(--smrt-hairline-color);
551
+ --smrt-glass-border-opacity: 1;
552
+ --smrt-glass-background-opacity: 1;
553
+ --smrt-duration-scheme: var(--smrt-duration-medium1);
554
+ --smrt-font-feature-settings: normal;
463
555
  }
464
556
 
465
557
  /* Studio utility classes for flat design */
@@ -42,7 +42,9 @@ export interface ThemeScriptOptions {
42
42
  * Returns the JS body (no `<script>` tags) of a pre-paint bootstrap that
43
43
  * mirrors ThemeProvider's persistence: reads the stored config, resolves
44
44
  * 'system' via matchMedia, then stamps `data-theme`, `data-color-scheme`,
45
- * the `dark` class, and `color-scheme` style on <html>. Variable values are
45
+ * the `dark` class, and `color-scheme` style on <html>, plus `data-contrast`
46
+ * (`standard|more|forced`, from the persisted preference and
47
+ * `prefers-contrast`/`forced-colors`) and `data-density` (persisted only). Variable values are
46
48
  * delivered by the static stylesheets selected by those attributes, so the
47
49
  * persisted preset/scheme paints correctly before hydration with no inline
48
50
  * variable payload.
@@ -1 +1 @@
1
- {"version":3,"file":"theme-script.d.ts","sourceRoot":"","sources":["../../src/themes/theme-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,WAAW,CAAC;CAClC;AASD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAoBpE"}
1
+ {"version":3,"file":"theme-script.d.ts","sourceRoot":"","sources":["../../src/themes/theme-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,WAAW,CAAC;CAClC;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAuBpE"}
@@ -39,7 +39,9 @@ function inlineJSON(value) {
39
39
  * Returns the JS body (no `<script>` tags) of a pre-paint bootstrap that
40
40
  * mirrors ThemeProvider's persistence: reads the stored config, resolves
41
41
  * 'system' via matchMedia, then stamps `data-theme`, `data-color-scheme`,
42
- * the `dark` class, and `color-scheme` style on <html>. Variable values are
42
+ * the `dark` class, and `color-scheme` style on <html>, plus `data-contrast`
43
+ * (`standard|more|forced`, from the persisted preference and
44
+ * `prefers-contrast`/`forced-colors`) and `data-density` (persisted only). Variable values are
43
45
  * delivered by the static stylesheets selected by those attributes, so the
44
46
  * persisted preset/scheme paints correctly before hydration with no inline
45
47
  * variable payload.
@@ -59,5 +61,8 @@ export function themeScript(options = {}) {
59
61
  // Keep this dependency-free and ES5-ish: it runs inline in every browser
60
62
  // before any framework code. Must stay in sync with
61
63
  // ThemeProvider.svelte's loadPersistedConfig()/resolvedScheme.
62
- return `(function(){try{var presets=${inlineJSON(presetNames)};var scheme=${inlineJSON(fallback)};var preset=${inlineJSON(preset)};${persist ? `try{var raw=localStorage.getItem(${inlineJSON(storageKey)});if(raw){var data=JSON.parse(raw);if(data&&typeof data==='object'){if(data.colorScheme==='light'||data.colorScheme==='dark'||data.colorScheme==='system')scheme=data.colorScheme;if(typeof data.preset==='string'&&presets.indexOf(data.preset)!==-1)preset=data.preset;}}}catch(_){}` : ''}if(scheme==='system'){scheme=window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light';}var el=document.documentElement;el.setAttribute('data-theme',preset);el.setAttribute('data-color-scheme',scheme);el.classList.toggle('dark',scheme==='dark');el.style.colorScheme=scheme;}catch(_){}})();`;
64
+ const read = persist
65
+ ? `try{var raw=localStorage.getItem(${inlineJSON(storageKey)});if(raw){var d=JSON.parse(raw);if(d&&typeof d==='object'){var s=d.colorScheme;if(s==='light'||s==='dark'||s==='system')scheme=s;if(typeof d.preset==='string'&&presets.indexOf(d.preset)!==-1)preset=d.preset;if(d.density==='comfortable'||d.density==='touch')den=d.density;if(d.contrast==='standard'||d.contrast==='more')con=d.contrast;}}}catch(_){}`
66
+ : '';
67
+ return `(function(){try{var presets=${inlineJSON(presetNames)},scheme=${inlineJSON(fallback)},preset=${inlineJSON(preset)},den,con,m=function(q){return window.matchMedia(q).matches};${read}if(scheme==='system')scheme=m('(prefers-color-scheme: dark)')?'dark':'light';var forced=m('(forced-colors: active)'),el=document.documentElement;el.setAttribute('data-theme',preset);el.setAttribute('data-color-scheme',scheme);el.setAttribute('data-contrast',forced?'forced':con==='more'||(con!=='standard'&&m('(prefers-contrast: more)'))?'more':'standard');if(forced)el.setAttribute('data-forced-colors','');if(den)el.setAttribute('data-density',den);el.classList.toggle('dark',scheme==='dark');el.style.colorScheme=scheme;}catch(_){}})();`;
63
68
  }