@dixy-ui/themes 0.1.0-beta.2 → 0.1.0-beta.4

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 (94) hide show
  1. package/dist/ansi-panes.css +79 -5
  2. package/dist/arcade/ornament.d.ts +3 -0
  3. package/dist/arcade/ornament.js +8 -0
  4. package/dist/arcade-cabinet.css +1086 -0
  5. package/dist/art-deco.css +79 -5
  6. package/dist/atomic-lounge.css +83 -5
  7. package/dist/authoring.d.ts +8 -8
  8. package/dist/azulejo-tile.css +83 -5
  9. package/dist/blueprint.css +79 -5
  10. package/dist/brutalist-concrete.css +83 -5
  11. package/dist/bytes.json +97 -67
  12. package/dist/candy-clay.css +85 -5
  13. package/dist/catalog.d.ts +294 -42
  14. package/dist/catalog.js +301 -43
  15. package/dist/character.d.ts +1 -1
  16. package/dist/character.js +6 -0
  17. package/dist/chrome.js +13 -3
  18. package/dist/compile-css.js +23 -5
  19. package/dist/dispatch.css +731 -0
  20. package/dist/diwali-lights.css +83 -5
  21. package/dist/documents.d.ts +115 -7
  22. package/dist/documents.js +10 -2
  23. package/dist/foundations.d.ts +8 -0
  24. package/dist/foundations.js +10 -0
  25. package/dist/frame-styles.d.ts +3 -0
  26. package/dist/frame-styles.js +6 -0
  27. package/dist/freighter.css +145 -15
  28. package/dist/glass-ui.css +79 -5
  29. package/dist/holi-colours.css +83 -5
  30. package/dist/ledger.css +566 -0
  31. package/dist/living-forest.css +85 -5
  32. package/dist/mainframe.css +764 -0
  33. package/dist/manifests.d.ts +144 -144
  34. package/dist/material-light.css +83 -5
  35. package/dist/neon-night-market.css +83 -5
  36. package/dist/ocean-depths.css +85 -5
  37. package/dist/orbital-hud.css +145 -15
  38. package/dist/organic-paint-launch.d.ts +9 -0
  39. package/dist/organic-paint-launch.js +121 -46
  40. package/dist/organic-paint.d.ts +1 -1
  41. package/dist/organic-settings.d.ts +109 -25
  42. package/dist/organic-settings.js +49 -0
  43. package/dist/papel-picado.css +83 -5
  44. package/dist/phosphor-terminal.css +83 -5
  45. package/dist/prism-glass.css +79 -5
  46. package/dist/recipes.d.ts +162 -0
  47. package/dist/recipes.js +164 -0
  48. package/dist/resolve.d.ts +18 -2
  49. package/dist/retro-os.css +79 -5
  50. package/dist/riso-zine.css +79 -5
  51. package/dist/save-point.css +948 -0
  52. package/dist/savepoint/ornament.d.ts +3 -0
  53. package/dist/savepoint/ornament.js +8 -0
  54. package/dist/scrapbook.css +79 -5
  55. package/dist/signal.css +563 -0
  56. package/dist/skins/arcade-cabinet.d.ts +68 -0
  57. package/dist/skins/arcade-cabinet.js +68 -0
  58. package/dist/skins/dispatch.d.ts +57 -0
  59. package/dist/skins/dispatch.js +57 -0
  60. package/dist/skins/ledger.d.ts +57 -0
  61. package/dist/skins/ledger.js +57 -0
  62. package/dist/skins/mainframe.d.ts +57 -0
  63. package/dist/skins/mainframe.js +57 -0
  64. package/dist/skins/save-point.d.ts +68 -0
  65. package/dist/skins/save-point.js +68 -0
  66. package/dist/skins/signal.d.ts +57 -0
  67. package/dist/skins/signal.js +57 -0
  68. package/dist/skins/sunset-drive.d.ts +68 -0
  69. package/dist/skins/sunset-drive.js +68 -0
  70. package/dist/solar-sail.css +79 -5
  71. package/dist/starters-launch.d.ts +25 -1
  72. package/dist/starters-launch.js +343 -49
  73. package/dist/studio-hardware.css +83 -5
  74. package/dist/sumi-ink.css +79 -5
  75. package/dist/sunset/ornament.d.ts +3 -0
  76. package/dist/sunset/ornament.js +8 -0
  77. package/dist/sunset-drive.css +1024 -0
  78. package/dist/swiss-poster.css +149 -15
  79. package/dist/tactile-atelier.css +85 -5
  80. package/dist/theme-document.schema.json +34 -6
  81. package/dist/theme-fix.d.ts +11 -0
  82. package/dist/theme-fix.js +32 -0
  83. package/dist/theme-fixes.d.ts +2 -0
  84. package/dist/theme-fixes.js +1 -0
  85. package/dist/theme-schema.d.ts +6 -6
  86. package/dist/theme-schema.js +2 -0
  87. package/dist/tokyo-transit.css +83 -5
  88. package/dist/winamp-signal.css +83 -5
  89. package/dist/y2k-titanium.css +151 -15
  90. package/dist/yule-knit.css +79 -5
  91. package/package.json +50 -8
  92. package/dist/lunar-new-year.css +0 -811
  93. package/dist/skins/lunar-new-year.d.ts +0 -68
  94. package/dist/skins/lunar-new-year.js +0 -68
@@ -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)),
@@ -279,6 +284,28 @@
279
284
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
280
285
  background-color: var(--dixy-skin-surface);
281
286
  }
287
+ :is(
288
+ .dixy-dialog-popup,
289
+ .dixy-alert-dialog-popup,
290
+ .dixy-drawer-popup,
291
+ .dixy-popover-popup,
292
+ .dixy-preview-card-popup,
293
+ .dixy-tooltip-popup,
294
+ .dixy-select-popup,
295
+ .dixy-combobox-popup,
296
+ .dixy-autocomplete-popup,
297
+ .dixy-menu-popup,
298
+ .dixy-context-menu-popup,
299
+ .dixy-navigation-menu-popup
300
+ )[data-dixy-skin="dixy/freighter"]:not([data-dixy-material-override]):not(
301
+ :where([data-dixy-material-override]) *
302
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
303
+ background-color: color-mix(
304
+ in srgb,
305
+ var(--dixy-color-background-surface-raised) 94%,
306
+ var(--dixy-skin-surface)
307
+ );
308
+ }
282
309
  :is(
283
310
  .dixy-input,
284
311
  .dixy-textarea,
@@ -292,6 +319,11 @@
292
319
  )[data-dixy-skin="dixy/freighter"] {
293
320
  border-radius: calc(var(--dixy-radius-control) * 1);
294
321
  }
322
+ :is(.dixy-textarea)[data-dixy-skin="dixy/freighter"] {
323
+ border-radius: calc(
324
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
325
+ );
326
+ }
295
327
  :is(
296
328
  .dixy-input,
297
329
  .dixy-textarea,
@@ -306,7 +338,7 @@
306
338
  :where([data-dixy-material-override]) *
307
339
  ) {
308
340
  border-width: var(--dixy-input-border-width);
309
- border-color: var(--dixy-skin-edge);
341
+ border-color: var(--dixy-skin-field-edge);
310
342
  background-image: var(--dixy-skin-paint);
311
343
  background-color: var(--dixy-color-background-canvas);
312
344
  background-size:
@@ -316,6 +348,43 @@
316
348
  100% 100%;
317
349
  box-shadow: var(--dixy-skin-inset);
318
350
  }
351
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
352
+ skin's paint to that so its image and grain size always land together;
353
+ otherwise the material image is tiled at the grain size (stripes). */
354
+ :is(
355
+ .dixy-card,
356
+ .dixy-box,
357
+ .dixy-dialog-popup,
358
+ .dixy-alert-dialog-popup,
359
+ .dixy-drawer-popup,
360
+ .dixy-popover-popup,
361
+ .dixy-preview-card-popup,
362
+ .dixy-tooltip-popup,
363
+ .dixy-select-popup,
364
+ .dixy-combobox-popup,
365
+ .dixy-autocomplete-popup,
366
+ .dixy-menu-popup,
367
+ .dixy-context-menu-popup,
368
+ .dixy-navigation-menu-popup,
369
+ .dixy-toast-root,
370
+ .dixy-alert,
371
+ .dixy-list-box,
372
+ .dixy-calendar,
373
+ .dixy-range-calendar,
374
+ .dixy-input,
375
+ .dixy-textarea,
376
+ .dixy-native-select,
377
+ .dixy-select-trigger,
378
+ .dixy-input-group,
379
+ .dixy-combobox-input-group,
380
+ .dixy-autocomplete-input-group,
381
+ .dixy-number-field-group,
382
+ .dixy-otp-field-input
383
+ )[data-dixy-skin="dixy/freighter"]:not([data-dixy-material-override]):not(
384
+ :where([data-dixy-material-override]) *
385
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
386
+ background-image: var(--dixy-skin-paint);
387
+ }
319
388
  :is(.dixy-button)[data-dixy-skin="dixy/freighter"]:not(
320
389
  [data-dixy-material-override]
321
390
  ):not(:where([data-dixy-material-override]) *):is(
@@ -346,14 +415,19 @@
346
415
  border: 1px solid var(--dixy-skin-edge);
347
416
  box-shadow: var(--dixy-skin-inset);
348
417
  }
418
+ /* 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). */
349
419
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/freighter"]:not(
350
420
  [data-dixy-material-override]
351
421
  ):not(:where([data-dixy-material-override]) *) {
352
- background-image: var(--dixy-skin-finish);
353
422
  box-shadow: var(--dixy-skin-control-relief);
354
423
  border: 1px solid var(--dixy-skin-edge);
355
424
  }
356
- /* 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). */
425
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/freighter"]:not(
426
+ [data-dixy-material-override]
427
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
428
+ background-image: none;
429
+ }
430
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
357
431
  .dixy-theme[data-dixy-skin="dixy/freighter"]
358
432
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
359
433
  [data-dixy-material-override]
@@ -368,7 +442,7 @@
368
442
  [data-variant="solid"]
369
443
  )[data-pressed]:not([data-disabled]) {
370
444
  background-color: var(--dixy-color-background-surface-raised);
371
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
445
+ background-image: none;
372
446
  box-shadow: var(--dixy-skin-control-relief);
373
447
  border-color: var(--dixy-skin-edge);
374
448
  color: var(--dixy-color-text-primary);
@@ -829,16 +903,72 @@
829
903
  :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/freighter"] {
830
904
  border-radius: 0;
831
905
  --dixy-chrome-bar-radius: 0px;
832
- clip-path: polygon(
833
- 10px 0,
834
- calc(100% - 10px) 0,
835
- 100% 10px,
836
- 100% calc(100% - 10px),
837
- calc(100% - 10px) 100%,
838
- 10px 100%,
839
- 0 calc(100% - 10px),
840
- 0 10px
841
- );
906
+ }
907
+ @supports (corner-shape: bevel) {
908
+ .dixy-theme[data-dixy-skin="dixy/freighter"]
909
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/freighter"] {
910
+ border-radius: 10px;
911
+ corner-shape: bevel;
912
+ }
913
+ }
914
+ @supports not (corner-shape: bevel) {
915
+ .dixy-theme[data-dixy-skin="dixy/freighter"]
916
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/freighter"] {
917
+ clip-path: polygon(
918
+ 10px 0,
919
+ calc(100% - 10px) 0,
920
+ 100% 10px,
921
+ 100% calc(100% - 10px),
922
+ calc(100% - 10px) 100%,
923
+ 10px 100%,
924
+ 0 calc(100% - 10px),
925
+ 0 10px
926
+ );
927
+ }
928
+ .dixy-theme[data-dixy-skin="dixy/freighter"]
929
+ :is(
930
+ .dixy-card,
931
+ .dixy-dialog-popup
932
+ )[data-dixy-skin="dixy/freighter"]::after {
933
+ content: "";
934
+ position: absolute;
935
+ inset: calc(var(--dixy-skin-frame-width, 1px) * -1);
936
+ pointer-events: none;
937
+ z-index: 1;
938
+ background:
939
+ linear-gradient(
940
+ to bottom right,
941
+ transparent 50%,
942
+ var(--dixy-skin-edge) 50%
943
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
944
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
945
+ )
946
+ top left/10px 10px no-repeat,
947
+ linear-gradient(
948
+ to bottom left,
949
+ transparent 50%,
950
+ var(--dixy-skin-edge) 50%
951
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
952
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
953
+ )
954
+ top right/10px 10px no-repeat,
955
+ linear-gradient(
956
+ to top right,
957
+ transparent 50%,
958
+ var(--dixy-skin-edge) 50%
959
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
960
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
961
+ )
962
+ bottom left/10px 10px no-repeat,
963
+ linear-gradient(
964
+ to top left,
965
+ transparent 50%,
966
+ var(--dixy-skin-edge) 50%
967
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
968
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
969
+ )
970
+ bottom right/10px 10px no-repeat;
971
+ }
842
972
  }
843
973
  .dixy-theme[data-dixy-skin="dixy/freighter"]
844
974
  :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)),
@@ -272,6 +277,28 @@
272
277
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
273
278
  background-color: var(--dixy-skin-surface);
274
279
  }
280
+ :is(
281
+ .dixy-dialog-popup,
282
+ .dixy-alert-dialog-popup,
283
+ .dixy-drawer-popup,
284
+ .dixy-popover-popup,
285
+ .dixy-preview-card-popup,
286
+ .dixy-tooltip-popup,
287
+ .dixy-select-popup,
288
+ .dixy-combobox-popup,
289
+ .dixy-autocomplete-popup,
290
+ .dixy-menu-popup,
291
+ .dixy-context-menu-popup,
292
+ .dixy-navigation-menu-popup
293
+ )[data-dixy-skin="dixy/glass-ui"]:not([data-dixy-material-override]):not(
294
+ :where([data-dixy-material-override]) *
295
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
296
+ background-color: color-mix(
297
+ in srgb,
298
+ var(--dixy-color-background-surface-raised) 94%,
299
+ var(--dixy-skin-surface)
300
+ );
301
+ }
275
302
  :is(
276
303
  .dixy-input,
277
304
  .dixy-textarea,
@@ -285,6 +312,11 @@
285
312
  )[data-dixy-skin="dixy/glass-ui"] {
286
313
  border-radius: calc(var(--dixy-radius-control) * 1);
287
314
  }
315
+ :is(.dixy-textarea)[data-dixy-skin="dixy/glass-ui"] {
316
+ border-radius: calc(
317
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
318
+ );
319
+ }
288
320
  :is(
289
321
  .dixy-input,
290
322
  .dixy-textarea,
@@ -299,7 +331,7 @@
299
331
  :where([data-dixy-material-override]) *
300
332
  ) {
301
333
  border-width: var(--dixy-input-border-width);
302
- border-color: var(--dixy-skin-edge);
334
+ border-color: var(--dixy-skin-field-edge);
303
335
  background-image: var(--dixy-skin-paint);
304
336
  background-color: var(--dixy-color-background-canvas);
305
337
  background-size:
@@ -309,6 +341,43 @@
309
341
  100% 100%;
310
342
  box-shadow: var(--dixy-skin-inset);
311
343
  }
344
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
345
+ skin's paint to that so its image and grain size always land together;
346
+ otherwise the material image is tiled at the grain size (stripes). */
347
+ :is(
348
+ .dixy-card,
349
+ .dixy-box,
350
+ .dixy-dialog-popup,
351
+ .dixy-alert-dialog-popup,
352
+ .dixy-drawer-popup,
353
+ .dixy-popover-popup,
354
+ .dixy-preview-card-popup,
355
+ .dixy-tooltip-popup,
356
+ .dixy-select-popup,
357
+ .dixy-combobox-popup,
358
+ .dixy-autocomplete-popup,
359
+ .dixy-menu-popup,
360
+ .dixy-context-menu-popup,
361
+ .dixy-navigation-menu-popup,
362
+ .dixy-toast-root,
363
+ .dixy-alert,
364
+ .dixy-list-box,
365
+ .dixy-calendar,
366
+ .dixy-range-calendar,
367
+ .dixy-input,
368
+ .dixy-textarea,
369
+ .dixy-native-select,
370
+ .dixy-select-trigger,
371
+ .dixy-input-group,
372
+ .dixy-combobox-input-group,
373
+ .dixy-autocomplete-input-group,
374
+ .dixy-number-field-group,
375
+ .dixy-otp-field-input
376
+ )[data-dixy-skin="dixy/glass-ui"]:not([data-dixy-material-override]):not(
377
+ :where([data-dixy-material-override]) *
378
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
379
+ background-image: var(--dixy-skin-paint);
380
+ }
312
381
  :is(.dixy-button)[data-dixy-skin="dixy/glass-ui"]:not(
313
382
  [data-dixy-material-override]
314
383
  ):not(:where([data-dixy-material-override]) *):is(
@@ -339,14 +408,19 @@
339
408
  border: 1px solid var(--dixy-skin-edge);
340
409
  box-shadow: var(--dixy-skin-inset);
341
410
  }
411
+ /* 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). */
342
412
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/glass-ui"]:not(
343
413
  [data-dixy-material-override]
344
414
  ):not(:where([data-dixy-material-override]) *) {
345
- background-image: var(--dixy-skin-finish);
346
415
  box-shadow: var(--dixy-skin-control-relief);
347
416
  border: 1px solid var(--dixy-skin-edge);
348
417
  }
349
- /* 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). */
418
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/glass-ui"]:not(
419
+ [data-dixy-material-override]
420
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
421
+ background-image: none;
422
+ }
423
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
350
424
  .dixy-theme[data-dixy-skin="dixy/glass-ui"]
351
425
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
352
426
  [data-dixy-material-override]
@@ -361,7 +435,7 @@
361
435
  [data-variant="solid"]
362
436
  )[data-pressed]:not([data-disabled]) {
363
437
  background-color: var(--dixy-color-background-surface-raised);
364
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
438
+ background-image: none;
365
439
  box-shadow: var(--dixy-skin-control-relief);
366
440
  border-color: var(--dixy-skin-edge);
367
441
  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)),
@@ -275,6 +280,30 @@
275
280
  ):not([data-variant="soft"]) {
276
281
  background-color: var(--dixy-skin-surface);
277
282
  }
283
+ :is(
284
+ .dixy-dialog-popup,
285
+ .dixy-alert-dialog-popup,
286
+ .dixy-drawer-popup,
287
+ .dixy-popover-popup,
288
+ .dixy-preview-card-popup,
289
+ .dixy-tooltip-popup,
290
+ .dixy-select-popup,
291
+ .dixy-combobox-popup,
292
+ .dixy-autocomplete-popup,
293
+ .dixy-menu-popup,
294
+ .dixy-context-menu-popup,
295
+ .dixy-navigation-menu-popup
296
+ )[data-dixy-skin="dixy/holi-colours"]:not(
297
+ [data-dixy-material-override]
298
+ ):not(:where([data-dixy-material-override]) *):not(
299
+ [data-variant="solid"]
300
+ ):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
+ }
278
307
  :is(
279
308
  .dixy-input,
280
309
  .dixy-textarea,
@@ -288,6 +317,11 @@
288
317
  )[data-dixy-skin="dixy/holi-colours"] {
289
318
  border-radius: calc(var(--dixy-radius-control) * 1);
290
319
  }
320
+ :is(.dixy-textarea)[data-dixy-skin="dixy/holi-colours"] {
321
+ border-radius: calc(
322
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
323
+ );
324
+ }
291
325
  :is(
292
326
  .dixy-input,
293
327
  .dixy-textarea,
@@ -302,7 +336,7 @@
302
336
  [data-dixy-material-override]
303
337
  ):not(:where([data-dixy-material-override]) *) {
304
338
  border-width: var(--dixy-input-border-width);
305
- border-color: var(--dixy-skin-edge);
339
+ border-color: var(--dixy-skin-field-edge);
306
340
  background-image: var(--dixy-skin-paint);
307
341
  background-color: var(--dixy-color-background-canvas);
308
342
  background-size:
@@ -312,6 +346,45 @@
312
346
  100% 100%;
313
347
  box-shadow: var(--dixy-skin-inset);
314
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/holi-colours"]:not(
382
+ [data-dixy-material-override]
383
+ ):not(
384
+ :where([data-dixy-material-override]) *
385
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
386
+ background-image: var(--dixy-skin-paint);
387
+ }
315
388
  :is(.dixy-button)[data-dixy-skin="dixy/holi-colours"]:not(
316
389
  [data-dixy-material-override]
317
390
  ):not(:where([data-dixy-material-override]) *):is(
@@ -342,14 +415,19 @@
342
415
  border: 1px solid var(--dixy-skin-edge);
343
416
  box-shadow: var(--dixy-skin-inset);
344
417
  }
418
+ /* 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). */
345
419
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/holi-colours"]:not(
346
420
  [data-dixy-material-override]
347
421
  ):not(:where([data-dixy-material-override]) *) {
348
- background-image: var(--dixy-skin-finish);
349
422
  box-shadow: var(--dixy-skin-control-relief);
350
423
  border: 1px solid var(--dixy-skin-edge);
351
424
  }
352
- /* 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). */
425
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/holi-colours"]:not(
426
+ [data-dixy-material-override]
427
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
428
+ background-image: none;
429
+ }
430
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
353
431
  .dixy-theme[data-dixy-skin="dixy/holi-colours"]
354
432
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
355
433
  [data-dixy-material-override]
@@ -364,7 +442,7 @@
364
442
  [data-variant="solid"]
365
443
  )[data-pressed]:not([data-disabled]) {
366
444
  background-color: var(--dixy-color-background-surface-raised);
367
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
445
+ background-image: none;
368
446
  box-shadow: var(--dixy-skin-control-relief);
369
447
  border-color: var(--dixy-skin-edge);
370
448
  color: var(--dixy-color-text-primary);