@dixy-ui/themes 0.1.0-beta.3 → 0.1.0-beta.5

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 (92) hide show
  1. package/README.md +3 -3
  2. package/dist/ansi-panes.css +75 -8
  3. package/dist/arcade/ornament.d.ts +3 -0
  4. package/dist/arcade/ornament.js +8 -0
  5. package/dist/arcade-cabinet.css +1084 -0
  6. package/dist/art-deco.css +75 -8
  7. package/dist/atomic-lounge.css +79 -8
  8. package/dist/authoring.d.ts +8 -8
  9. package/dist/azulejo-tile.css +79 -8
  10. package/dist/blueprint.css +75 -8
  11. package/dist/brutalist-concrete.css +80 -9
  12. package/dist/bytes.json +97 -62
  13. package/dist/candy-clay.css +81 -8
  14. package/dist/catalog.d.ts +294 -0
  15. package/dist/catalog.js +301 -0
  16. package/dist/character.d.ts +1 -1
  17. package/dist/character.js +6 -0
  18. package/dist/chrome.js +13 -3
  19. package/dist/compile-css.js +27 -7
  20. package/dist/dispatch.css +729 -0
  21. package/dist/diwali-lights.css +79 -8
  22. package/dist/documents.d.ts +115 -7
  23. package/dist/documents.js +10 -2
  24. package/dist/foundations.d.ts +8 -0
  25. package/dist/foundations.js +10 -0
  26. package/dist/frame-styles.d.ts +3 -0
  27. package/dist/frame-styles.js +6 -0
  28. package/dist/freighter.css +141 -18
  29. package/dist/glass-ui.css +75 -8
  30. package/dist/holi-colours.css +79 -8
  31. package/dist/ledger.css +564 -0
  32. package/dist/living-forest.css +81 -8
  33. package/dist/mainframe.css +762 -0
  34. package/dist/manifests.d.ts +144 -144
  35. package/dist/material-light.css +79 -8
  36. package/dist/neon-night-market.css +79 -8
  37. package/dist/ocean-depths.css +81 -8
  38. package/dist/orbital-hud.css +141 -18
  39. package/dist/organic-paint-launch.d.ts +9 -0
  40. package/dist/organic-paint-launch.js +121 -46
  41. package/dist/organic-paint.d.ts +1 -1
  42. package/dist/organic-settings.d.ts +109 -25
  43. package/dist/organic-settings.js +49 -0
  44. package/dist/papel-picado.css +79 -8
  45. package/dist/phosphor-terminal.css +79 -8
  46. package/dist/prism-glass.css +75 -8
  47. package/dist/recipes.d.ts +162 -0
  48. package/dist/recipes.js +164 -0
  49. package/dist/resolve.d.ts +18 -2
  50. package/dist/retro-os.css +75 -8
  51. package/dist/riso-zine.css +75 -8
  52. package/dist/save-point.css +946 -0
  53. package/dist/savepoint/ornament.d.ts +3 -0
  54. package/dist/savepoint/ornament.js +8 -0
  55. package/dist/scrapbook.css +75 -8
  56. package/dist/signal.css +561 -0
  57. package/dist/skins/arcade-cabinet.d.ts +68 -0
  58. package/dist/skins/arcade-cabinet.js +68 -0
  59. package/dist/skins/dispatch.d.ts +57 -0
  60. package/dist/skins/dispatch.js +57 -0
  61. package/dist/skins/ledger.d.ts +57 -0
  62. package/dist/skins/ledger.js +57 -0
  63. package/dist/skins/mainframe.d.ts +57 -0
  64. package/dist/skins/mainframe.js +57 -0
  65. package/dist/skins/save-point.d.ts +68 -0
  66. package/dist/skins/save-point.js +68 -0
  67. package/dist/skins/signal.d.ts +57 -0
  68. package/dist/skins/signal.js +57 -0
  69. package/dist/skins/sunset-drive.d.ts +68 -0
  70. package/dist/skins/sunset-drive.js +68 -0
  71. package/dist/solar-sail.css +75 -8
  72. package/dist/starters-launch.d.ts +24 -0
  73. package/dist/starters-launch.js +343 -0
  74. package/dist/studio-hardware.css +79 -8
  75. package/dist/sumi-ink.css +75 -8
  76. package/dist/sunset/ornament.d.ts +3 -0
  77. package/dist/sunset/ornament.js +8 -0
  78. package/dist/sunset-drive.css +1022 -0
  79. package/dist/swiss-poster.css +145 -18
  80. package/dist/tactile-atelier.css +81 -8
  81. package/dist/theme-document.schema.json +34 -6
  82. package/dist/theme-fix.d.ts +11 -0
  83. package/dist/theme-fix.js +32 -0
  84. package/dist/theme-fixes.d.ts +2 -0
  85. package/dist/theme-fixes.js +1 -0
  86. package/dist/theme-schema.d.ts +6 -6
  87. package/dist/theme-schema.js +2 -0
  88. package/dist/tokyo-transit.css +79 -8
  89. package/dist/winamp-signal.css +79 -8
  90. package/dist/y2k-titanium.css +147 -18
  91. package/dist/yule-knit.css +75 -8
  92. package/package.json +50 -3
@@ -31,6 +31,11 @@
31
31
  --dixy-font-title-sm-family:
32
32
  "Archivo Black", "Arial Black", ui-sans-serif, sans-serif;
33
33
  --dixy-skin-edge: #9b9a94;
34
+ --dixy-skin-field-edge: color-mix(
35
+ in oklab,
36
+ var(--dixy-color-base-9) 50%,
37
+ var(--dixy-color-base-8)
38
+ );
34
39
  --dixy-organic-density: 50;
35
40
  --dixy-organic-cornerDensity: 70;
36
41
  --dixy-organic-canopyDepth: 40;
@@ -128,7 +133,6 @@
128
133
  --dixy-organic-b: #0e0f10;
129
134
  --dixy-organic-c: #e5533d;
130
135
  --dixy-organic-d: #a5a59c;
131
- --dixy-skin-selected: var(--dixy-skin-finish);
132
136
  --dixy-color-text-primary: color-mix(
133
137
  in srgb,
134
138
  var(--dixy-color-base-12) 85%,
@@ -146,6 +150,7 @@
146
150
  #2b2e30
147
151
  );
148
152
  }
153
+
149
154
  .dixy-theme[data-dixy-skin="dixy/freighter"][data-relief="2"] {
150
155
  --dixy-skin-shadow:
151
156
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -171,11 +176,9 @@
171
176
  }
172
177
  }
173
178
  @layer dixy.components {
174
- .dixy-theme[data-dixy-skin="dixy/freighter"] {
179
+ .dixy-theme[data-dixy-skin="dixy/freighter"]:not(.dixy-portal-scope) {
175
180
  position: relative;
176
181
  isolation: isolate;
177
- }
178
- .dixy-theme[data-dixy-skin="dixy/freighter"]:not(.dixy-portal-scope) {
179
182
  background-color: var(--dixy-skin-ground);
180
183
  background-image: var(--dixy-skin-canvas);
181
184
  }
@@ -279,6 +282,28 @@
279
282
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
280
283
  background-color: var(--dixy-skin-surface);
281
284
  }
285
+ :is(
286
+ .dixy-dialog-popup,
287
+ .dixy-alert-dialog-popup,
288
+ .dixy-drawer-popup,
289
+ .dixy-popover-popup,
290
+ .dixy-preview-card-popup,
291
+ .dixy-tooltip-popup,
292
+ .dixy-select-popup,
293
+ .dixy-combobox-popup,
294
+ .dixy-autocomplete-popup,
295
+ .dixy-menu-popup,
296
+ .dixy-context-menu-popup,
297
+ .dixy-navigation-menu-popup
298
+ )[data-dixy-skin="dixy/freighter"]:not([data-dixy-material-override]):not(
299
+ :where([data-dixy-material-override]) *
300
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
301
+ background-color: color-mix(
302
+ in srgb,
303
+ var(--dixy-color-background-surface-raised) 94%,
304
+ var(--dixy-skin-surface)
305
+ );
306
+ }
282
307
  :is(
283
308
  .dixy-input,
284
309
  .dixy-textarea,
@@ -311,7 +336,7 @@
311
336
  :where([data-dixy-material-override]) *
312
337
  ) {
313
338
  border-width: var(--dixy-input-border-width);
314
- border-color: var(--dixy-skin-edge);
339
+ border-color: var(--dixy-skin-field-edge);
315
340
  background-image: var(--dixy-skin-paint);
316
341
  background-color: var(--dixy-color-background-canvas);
317
342
  background-size:
@@ -321,6 +346,43 @@
321
346
  100% 100%;
322
347
  box-shadow: var(--dixy-skin-inset);
323
348
  }
349
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
350
+ skin's paint to that so its image and grain size always land together;
351
+ otherwise the material image is tiled at the grain size (stripes). */
352
+ :is(
353
+ .dixy-card,
354
+ .dixy-box,
355
+ .dixy-dialog-popup,
356
+ .dixy-alert-dialog-popup,
357
+ .dixy-drawer-popup,
358
+ .dixy-popover-popup,
359
+ .dixy-preview-card-popup,
360
+ .dixy-tooltip-popup,
361
+ .dixy-select-popup,
362
+ .dixy-combobox-popup,
363
+ .dixy-autocomplete-popup,
364
+ .dixy-menu-popup,
365
+ .dixy-context-menu-popup,
366
+ .dixy-navigation-menu-popup,
367
+ .dixy-toast-root,
368
+ .dixy-alert,
369
+ .dixy-list-box,
370
+ .dixy-calendar,
371
+ .dixy-range-calendar,
372
+ .dixy-input,
373
+ .dixy-textarea,
374
+ .dixy-native-select,
375
+ .dixy-select-trigger,
376
+ .dixy-input-group,
377
+ .dixy-combobox-input-group,
378
+ .dixy-autocomplete-input-group,
379
+ .dixy-number-field-group,
380
+ .dixy-otp-field-input
381
+ )[data-dixy-skin="dixy/freighter"]:not([data-dixy-material-override]):not(
382
+ :where([data-dixy-material-override]) *
383
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
384
+ background-image: var(--dixy-skin-paint);
385
+ }
324
386
  :is(.dixy-button)[data-dixy-skin="dixy/freighter"]:not(
325
387
  [data-dixy-material-override]
326
388
  ):not(:where([data-dixy-material-override]) *):is(
@@ -351,14 +413,19 @@
351
413
  border: 1px solid var(--dixy-skin-edge);
352
414
  box-shadow: var(--dixy-skin-inset);
353
415
  }
416
+ /* Selected tabs and toggles are one flat colour, lifted by edge and relief only. A gradient behind the label (thumb art, sheen, material image) splits it across two colours. :not([data-variant="line"]) also outranks materials.css (0,3,0). */
354
417
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/freighter"]:not(
355
418
  [data-dixy-material-override]
356
419
  ):not(:where([data-dixy-material-override]) *) {
357
- background-image: var(--dixy-skin-finish);
358
420
  box-shadow: var(--dixy-skin-control-relief);
359
421
  border: 1px solid var(--dixy-skin-edge);
360
422
  }
361
- /* Toggle groups read like tabs: a sunken track, the selected toggle a raised thumb (slider-knob paint in light, the raised finish in dark so its label stays readable). */
423
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/freighter"]:not(
424
+ [data-dixy-material-override]
425
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
426
+ background-image: none;
427
+ }
428
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
362
429
  .dixy-theme[data-dixy-skin="dixy/freighter"]
363
430
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
364
431
  [data-dixy-material-override]
@@ -373,7 +440,7 @@
373
440
  [data-variant="solid"]
374
441
  )[data-pressed]:not([data-disabled]) {
375
442
  background-color: var(--dixy-color-background-surface-raised);
376
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
443
+ background-image: none;
377
444
  box-shadow: var(--dixy-skin-control-relief);
378
445
  border-color: var(--dixy-skin-edge);
379
446
  color: var(--dixy-color-text-primary);
@@ -834,16 +901,72 @@
834
901
  :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/freighter"] {
835
902
  border-radius: 0;
836
903
  --dixy-chrome-bar-radius: 0px;
837
- clip-path: polygon(
838
- 10px 0,
839
- calc(100% - 10px) 0,
840
- 100% 10px,
841
- 100% calc(100% - 10px),
842
- calc(100% - 10px) 100%,
843
- 10px 100%,
844
- 0 calc(100% - 10px),
845
- 0 10px
846
- );
904
+ }
905
+ @supports (corner-shape: bevel) {
906
+ .dixy-theme[data-dixy-skin="dixy/freighter"]
907
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/freighter"] {
908
+ border-radius: 10px;
909
+ corner-shape: bevel;
910
+ }
911
+ }
912
+ @supports not (corner-shape: bevel) {
913
+ .dixy-theme[data-dixy-skin="dixy/freighter"]
914
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/freighter"] {
915
+ clip-path: polygon(
916
+ 10px 0,
917
+ calc(100% - 10px) 0,
918
+ 100% 10px,
919
+ 100% calc(100% - 10px),
920
+ calc(100% - 10px) 100%,
921
+ 10px 100%,
922
+ 0 calc(100% - 10px),
923
+ 0 10px
924
+ );
925
+ }
926
+ .dixy-theme[data-dixy-skin="dixy/freighter"]
927
+ :is(
928
+ .dixy-card,
929
+ .dixy-dialog-popup
930
+ )[data-dixy-skin="dixy/freighter"]::after {
931
+ content: "";
932
+ position: absolute;
933
+ inset: calc(var(--dixy-skin-frame-width, 1px) * -1);
934
+ pointer-events: none;
935
+ z-index: 1;
936
+ background:
937
+ linear-gradient(
938
+ to bottom right,
939
+ transparent 50%,
940
+ var(--dixy-skin-edge) 50%
941
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
942
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
943
+ )
944
+ top left/10px 10px no-repeat,
945
+ linear-gradient(
946
+ to bottom left,
947
+ transparent 50%,
948
+ var(--dixy-skin-edge) 50%
949
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
950
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
951
+ )
952
+ top right/10px 10px no-repeat,
953
+ linear-gradient(
954
+ to top right,
955
+ transparent 50%,
956
+ var(--dixy-skin-edge) 50%
957
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
958
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
959
+ )
960
+ bottom left/10px 10px no-repeat,
961
+ linear-gradient(
962
+ to top left,
963
+ transparent 50%,
964
+ var(--dixy-skin-edge) 50%
965
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
966
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
967
+ )
968
+ bottom right/10px 10px no-repeat;
969
+ }
847
970
  }
848
971
  .dixy-theme[data-dixy-skin="dixy/freighter"]
849
972
  :is(.dixy-card)[data-dixy-skin="dixy/freighter"]
package/dist/glass-ui.css CHANGED
@@ -23,6 +23,11 @@
23
23
  --dixy-font-title-md-family: ui-sans-serif, system-ui, sans-serif;
24
24
  --dixy-font-title-sm-family: ui-sans-serif, system-ui, sans-serif;
25
25
  --dixy-skin-edge: #ffffffb3;
26
+ --dixy-skin-field-edge: color-mix(
27
+ in oklab,
28
+ var(--dixy-color-base-9) 50%,
29
+ var(--dixy-color-base-8)
30
+ );
26
31
  --dixy-organic-density: 50;
27
32
  --dixy-organic-cornerDensity: 60;
28
33
  --dixy-organic-canopyDepth: 50;
@@ -126,7 +131,6 @@
126
131
  --dixy-organic-b: #6ea8ff;
127
132
  --dixy-organic-c: #d68cff;
128
133
  --dixy-organic-d: #e8f0ff;
129
- --dixy-skin-selected: var(--dixy-skin-finish);
130
134
  --dixy-skin-edge: #ffffff38;
131
135
  --dixy-skin-surface: color-mix(
132
136
  in srgb,
@@ -139,6 +143,7 @@
139
143
  #1c2233a6
140
144
  );
141
145
  }
146
+
142
147
  .dixy-theme[data-dixy-skin="dixy/glass-ui"][data-relief="2"] {
143
148
  --dixy-skin-shadow:
144
149
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -164,11 +169,9 @@
164
169
  }
165
170
  }
166
171
  @layer dixy.components {
167
- .dixy-theme[data-dixy-skin="dixy/glass-ui"] {
172
+ .dixy-theme[data-dixy-skin="dixy/glass-ui"]:not(.dixy-portal-scope) {
168
173
  position: relative;
169
174
  isolation: isolate;
170
- }
171
- .dixy-theme[data-dixy-skin="dixy/glass-ui"]:not(.dixy-portal-scope) {
172
175
  background-color: var(--dixy-skin-ground);
173
176
  background-image: var(--dixy-skin-canvas);
174
177
  }
@@ -272,6 +275,28 @@
272
275
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
273
276
  background-color: var(--dixy-skin-surface);
274
277
  }
278
+ :is(
279
+ .dixy-dialog-popup,
280
+ .dixy-alert-dialog-popup,
281
+ .dixy-drawer-popup,
282
+ .dixy-popover-popup,
283
+ .dixy-preview-card-popup,
284
+ .dixy-tooltip-popup,
285
+ .dixy-select-popup,
286
+ .dixy-combobox-popup,
287
+ .dixy-autocomplete-popup,
288
+ .dixy-menu-popup,
289
+ .dixy-context-menu-popup,
290
+ .dixy-navigation-menu-popup
291
+ )[data-dixy-skin="dixy/glass-ui"]:not([data-dixy-material-override]):not(
292
+ :where([data-dixy-material-override]) *
293
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
294
+ background-color: color-mix(
295
+ in srgb,
296
+ var(--dixy-color-background-surface-raised) 94%,
297
+ var(--dixy-skin-surface)
298
+ );
299
+ }
275
300
  :is(
276
301
  .dixy-input,
277
302
  .dixy-textarea,
@@ -304,7 +329,7 @@
304
329
  :where([data-dixy-material-override]) *
305
330
  ) {
306
331
  border-width: var(--dixy-input-border-width);
307
- border-color: var(--dixy-skin-edge);
332
+ border-color: var(--dixy-skin-field-edge);
308
333
  background-image: var(--dixy-skin-paint);
309
334
  background-color: var(--dixy-color-background-canvas);
310
335
  background-size:
@@ -314,6 +339,43 @@
314
339
  100% 100%;
315
340
  box-shadow: var(--dixy-skin-inset);
316
341
  }
342
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
343
+ skin's paint to that so its image and grain size always land together;
344
+ otherwise the material image is tiled at the grain size (stripes). */
345
+ :is(
346
+ .dixy-card,
347
+ .dixy-box,
348
+ .dixy-dialog-popup,
349
+ .dixy-alert-dialog-popup,
350
+ .dixy-drawer-popup,
351
+ .dixy-popover-popup,
352
+ .dixy-preview-card-popup,
353
+ .dixy-tooltip-popup,
354
+ .dixy-select-popup,
355
+ .dixy-combobox-popup,
356
+ .dixy-autocomplete-popup,
357
+ .dixy-menu-popup,
358
+ .dixy-context-menu-popup,
359
+ .dixy-navigation-menu-popup,
360
+ .dixy-toast-root,
361
+ .dixy-alert,
362
+ .dixy-list-box,
363
+ .dixy-calendar,
364
+ .dixy-range-calendar,
365
+ .dixy-input,
366
+ .dixy-textarea,
367
+ .dixy-native-select,
368
+ .dixy-select-trigger,
369
+ .dixy-input-group,
370
+ .dixy-combobox-input-group,
371
+ .dixy-autocomplete-input-group,
372
+ .dixy-number-field-group,
373
+ .dixy-otp-field-input
374
+ )[data-dixy-skin="dixy/glass-ui"]:not([data-dixy-material-override]):not(
375
+ :where([data-dixy-material-override]) *
376
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
377
+ background-image: var(--dixy-skin-paint);
378
+ }
317
379
  :is(.dixy-button)[data-dixy-skin="dixy/glass-ui"]:not(
318
380
  [data-dixy-material-override]
319
381
  ):not(:where([data-dixy-material-override]) *):is(
@@ -344,14 +406,19 @@
344
406
  border: 1px solid var(--dixy-skin-edge);
345
407
  box-shadow: var(--dixy-skin-inset);
346
408
  }
409
+ /* Selected tabs and toggles are one flat colour, lifted by edge and relief only. A gradient behind the label (thumb art, sheen, material image) splits it across two colours. :not([data-variant="line"]) also outranks materials.css (0,3,0). */
347
410
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/glass-ui"]:not(
348
411
  [data-dixy-material-override]
349
412
  ):not(:where([data-dixy-material-override]) *) {
350
- background-image: var(--dixy-skin-finish);
351
413
  box-shadow: var(--dixy-skin-control-relief);
352
414
  border: 1px solid var(--dixy-skin-edge);
353
415
  }
354
- /* Toggle groups read like tabs: a sunken track, the selected toggle a raised thumb (slider-knob paint in light, the raised finish in dark so its label stays readable). */
416
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/glass-ui"]:not(
417
+ [data-dixy-material-override]
418
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
419
+ background-image: none;
420
+ }
421
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
355
422
  .dixy-theme[data-dixy-skin="dixy/glass-ui"]
356
423
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
357
424
  [data-dixy-material-override]
@@ -366,7 +433,7 @@
366
433
  [data-variant="solid"]
367
434
  )[data-pressed]:not([data-disabled]) {
368
435
  background-color: var(--dixy-color-background-surface-raised);
369
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
436
+ background-image: none;
370
437
  box-shadow: var(--dixy-skin-control-relief);
371
438
  border-color: var(--dixy-skin-edge);
372
439
  color: var(--dixy-color-text-primary);
@@ -41,6 +41,11 @@
41
41
  "Fredoka Variable", "Fredoka", ui-rounded, "SF Pro Rounded", "Nunito",
42
42
  sans-serif;
43
43
  --dixy-skin-edge: #efe7f2;
44
+ --dixy-skin-field-edge: color-mix(
45
+ in oklab,
46
+ var(--dixy-color-base-9) 50%,
47
+ var(--dixy-color-base-8)
48
+ );
44
49
  --dixy-organic-density: 50;
45
50
  --dixy-organic-cornerDensity: 75;
46
51
  --dixy-organic-canopyDepth: 50;
@@ -122,7 +127,6 @@
122
127
  --dixy-organic-b: #ffd43b;
123
128
  --dixy-organic-c: #38d9a9;
124
129
  --dixy-organic-d: #74c0fc;
125
- --dixy-skin-selected: var(--dixy-skin-finish);
126
130
  --dixy-color-text-primary: color-mix(
127
131
  in srgb,
128
132
  var(--dixy-color-base-12) 85%,
@@ -140,6 +144,7 @@
140
144
  #1a1824
141
145
  );
142
146
  }
147
+
143
148
  .dixy-theme[data-dixy-skin="dixy/holi-colours"][data-relief="2"] {
144
149
  --dixy-skin-shadow:
145
150
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -165,11 +170,9 @@
165
170
  }
166
171
  }
167
172
  @layer dixy.components {
168
- .dixy-theme[data-dixy-skin="dixy/holi-colours"] {
173
+ .dixy-theme[data-dixy-skin="dixy/holi-colours"]:not(.dixy-portal-scope) {
169
174
  position: relative;
170
175
  isolation: isolate;
171
- }
172
- .dixy-theme[data-dixy-skin="dixy/holi-colours"]:not(.dixy-portal-scope) {
173
176
  background-color: var(--dixy-skin-ground);
174
177
  background-image: var(--dixy-skin-canvas);
175
178
  }
@@ -275,6 +278,30 @@
275
278
  ):not([data-variant="soft"]) {
276
279
  background-color: var(--dixy-skin-surface);
277
280
  }
281
+ :is(
282
+ .dixy-dialog-popup,
283
+ .dixy-alert-dialog-popup,
284
+ .dixy-drawer-popup,
285
+ .dixy-popover-popup,
286
+ .dixy-preview-card-popup,
287
+ .dixy-tooltip-popup,
288
+ .dixy-select-popup,
289
+ .dixy-combobox-popup,
290
+ .dixy-autocomplete-popup,
291
+ .dixy-menu-popup,
292
+ .dixy-context-menu-popup,
293
+ .dixy-navigation-menu-popup
294
+ )[data-dixy-skin="dixy/holi-colours"]:not(
295
+ [data-dixy-material-override]
296
+ ):not(:where([data-dixy-material-override]) *):not(
297
+ [data-variant="solid"]
298
+ ):not([data-variant="soft"]) {
299
+ background-color: color-mix(
300
+ in srgb,
301
+ var(--dixy-color-background-surface-raised) 94%,
302
+ var(--dixy-skin-surface)
303
+ );
304
+ }
278
305
  :is(
279
306
  .dixy-input,
280
307
  .dixy-textarea,
@@ -307,7 +334,7 @@
307
334
  [data-dixy-material-override]
308
335
  ):not(:where([data-dixy-material-override]) *) {
309
336
  border-width: var(--dixy-input-border-width);
310
- border-color: var(--dixy-skin-edge);
337
+ border-color: var(--dixy-skin-field-edge);
311
338
  background-image: var(--dixy-skin-paint);
312
339
  background-color: var(--dixy-color-background-canvas);
313
340
  background-size:
@@ -317,6 +344,45 @@
317
344
  100% 100%;
318
345
  box-shadow: var(--dixy-skin-inset);
319
346
  }
347
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
348
+ skin's paint to that so its image and grain size always land together;
349
+ otherwise the material image is tiled at the grain size (stripes). */
350
+ :is(
351
+ .dixy-card,
352
+ .dixy-box,
353
+ .dixy-dialog-popup,
354
+ .dixy-alert-dialog-popup,
355
+ .dixy-drawer-popup,
356
+ .dixy-popover-popup,
357
+ .dixy-preview-card-popup,
358
+ .dixy-tooltip-popup,
359
+ .dixy-select-popup,
360
+ .dixy-combobox-popup,
361
+ .dixy-autocomplete-popup,
362
+ .dixy-menu-popup,
363
+ .dixy-context-menu-popup,
364
+ .dixy-navigation-menu-popup,
365
+ .dixy-toast-root,
366
+ .dixy-alert,
367
+ .dixy-list-box,
368
+ .dixy-calendar,
369
+ .dixy-range-calendar,
370
+ .dixy-input,
371
+ .dixy-textarea,
372
+ .dixy-native-select,
373
+ .dixy-select-trigger,
374
+ .dixy-input-group,
375
+ .dixy-combobox-input-group,
376
+ .dixy-autocomplete-input-group,
377
+ .dixy-number-field-group,
378
+ .dixy-otp-field-input
379
+ )[data-dixy-skin="dixy/holi-colours"]:not(
380
+ [data-dixy-material-override]
381
+ ):not(
382
+ :where([data-dixy-material-override]) *
383
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
384
+ background-image: var(--dixy-skin-paint);
385
+ }
320
386
  :is(.dixy-button)[data-dixy-skin="dixy/holi-colours"]:not(
321
387
  [data-dixy-material-override]
322
388
  ):not(:where([data-dixy-material-override]) *):is(
@@ -347,14 +413,19 @@
347
413
  border: 1px solid var(--dixy-skin-edge);
348
414
  box-shadow: var(--dixy-skin-inset);
349
415
  }
416
+ /* Selected tabs and toggles are one flat colour, lifted by edge and relief only. A gradient behind the label (thumb art, sheen, material image) splits it across two colours. :not([data-variant="line"]) also outranks materials.css (0,3,0). */
350
417
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/holi-colours"]:not(
351
418
  [data-dixy-material-override]
352
419
  ):not(:where([data-dixy-material-override]) *) {
353
- background-image: var(--dixy-skin-finish);
354
420
  box-shadow: var(--dixy-skin-control-relief);
355
421
  border: 1px solid var(--dixy-skin-edge);
356
422
  }
357
- /* Toggle groups read like tabs: a sunken track, the selected toggle a raised thumb (slider-knob paint in light, the raised finish in dark so its label stays readable). */
423
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/holi-colours"]:not(
424
+ [data-dixy-material-override]
425
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
426
+ background-image: none;
427
+ }
428
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
358
429
  .dixy-theme[data-dixy-skin="dixy/holi-colours"]
359
430
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
360
431
  [data-dixy-material-override]
@@ -369,7 +440,7 @@
369
440
  [data-variant="solid"]
370
441
  )[data-pressed]:not([data-disabled]) {
371
442
  background-color: var(--dixy-color-background-surface-raised);
372
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
443
+ background-image: none;
373
444
  box-shadow: var(--dixy-skin-control-relief);
374
445
  border-color: var(--dixy-skin-edge);
375
446
  color: var(--dixy-color-text-primary);