@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
@@ -33,6 +33,11 @@
33
33
  --dixy-font-title-sm-family:
34
34
  "Figtree Variable", "Figtree", ui-sans-serif, system-ui, sans-serif;
35
35
  --dixy-skin-edge: #e0e4ee;
36
+ --dixy-skin-field-edge: color-mix(
37
+ in oklab,
38
+ var(--dixy-color-base-9) 50%,
39
+ var(--dixy-color-base-8)
40
+ );
36
41
 
37
42
  --dixy-skin-surface: color-mix(
38
43
  in srgb,
@@ -104,7 +109,6 @@
104
109
  --dixy-font-title-sm-letter-spacing: -0.035em;
105
110
  }
106
111
  .dixy-theme[data-dixy-skin="dixy/material-light"][data-appearance="dark"] {
107
- --dixy-skin-selected: var(--dixy-skin-finish);
108
112
  --dixy-skin-edge: #262a35;
109
113
  --dixy-skin-surface: color-mix(
110
114
  in srgb,
@@ -117,6 +121,7 @@
117
121
  #1b1e26
118
122
  );
119
123
  }
124
+
120
125
  .dixy-theme[data-dixy-skin="dixy/material-light"][data-relief="2"] {
121
126
  --dixy-skin-shadow:
122
127
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -252,6 +257,30 @@
252
257
  ):not([data-variant="soft"]) {
253
258
  background-color: var(--dixy-skin-surface);
254
259
  }
260
+ :is(
261
+ .dixy-dialog-popup,
262
+ .dixy-alert-dialog-popup,
263
+ .dixy-drawer-popup,
264
+ .dixy-popover-popup,
265
+ .dixy-preview-card-popup,
266
+ .dixy-tooltip-popup,
267
+ .dixy-select-popup,
268
+ .dixy-combobox-popup,
269
+ .dixy-autocomplete-popup,
270
+ .dixy-menu-popup,
271
+ .dixy-context-menu-popup,
272
+ .dixy-navigation-menu-popup
273
+ )[data-dixy-skin="dixy/material-light"]:not(
274
+ [data-dixy-material-override]
275
+ ):not(:where([data-dixy-material-override]) *):not(
276
+ [data-variant="solid"]
277
+ ):not([data-variant="soft"]) {
278
+ background-color: color-mix(
279
+ in srgb,
280
+ var(--dixy-color-background-surface-raised) 94%,
281
+ var(--dixy-skin-surface)
282
+ );
283
+ }
255
284
  :is(
256
285
  .dixy-input,
257
286
  .dixy-textarea,
@@ -265,6 +294,11 @@
265
294
  )[data-dixy-skin="dixy/material-light"] {
266
295
  border-radius: calc(var(--dixy-radius-control) * 1);
267
296
  }
297
+ :is(.dixy-textarea)[data-dixy-skin="dixy/material-light"] {
298
+ border-radius: calc(
299
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
300
+ );
301
+ }
268
302
  :is(
269
303
  .dixy-input,
270
304
  .dixy-textarea,
@@ -279,7 +313,7 @@
279
313
  [data-dixy-material-override]
280
314
  ):not(:where([data-dixy-material-override]) *) {
281
315
  border-width: var(--dixy-input-border-width);
282
- border-color: var(--dixy-skin-edge);
316
+ border-color: var(--dixy-skin-field-edge);
283
317
  background-image: var(--dixy-skin-paint);
284
318
  background-color: var(--dixy-color-background-canvas);
285
319
  background-size:
@@ -289,6 +323,45 @@
289
323
  100% 100%;
290
324
  box-shadow: var(--dixy-skin-inset);
291
325
  }
326
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
327
+ skin's paint to that so its image and grain size always land together;
328
+ otherwise the material image is tiled at the grain size (stripes). */
329
+ :is(
330
+ .dixy-card,
331
+ .dixy-box,
332
+ .dixy-dialog-popup,
333
+ .dixy-alert-dialog-popup,
334
+ .dixy-drawer-popup,
335
+ .dixy-popover-popup,
336
+ .dixy-preview-card-popup,
337
+ .dixy-tooltip-popup,
338
+ .dixy-select-popup,
339
+ .dixy-combobox-popup,
340
+ .dixy-autocomplete-popup,
341
+ .dixy-menu-popup,
342
+ .dixy-context-menu-popup,
343
+ .dixy-navigation-menu-popup,
344
+ .dixy-toast-root,
345
+ .dixy-alert,
346
+ .dixy-list-box,
347
+ .dixy-calendar,
348
+ .dixy-range-calendar,
349
+ .dixy-input,
350
+ .dixy-textarea,
351
+ .dixy-native-select,
352
+ .dixy-select-trigger,
353
+ .dixy-input-group,
354
+ .dixy-combobox-input-group,
355
+ .dixy-autocomplete-input-group,
356
+ .dixy-number-field-group,
357
+ .dixy-otp-field-input
358
+ )[data-dixy-skin="dixy/material-light"]:not(
359
+ [data-dixy-material-override]
360
+ ):not(
361
+ :where([data-dixy-material-override]) *
362
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
363
+ background-image: var(--dixy-skin-paint);
364
+ }
292
365
  :is(.dixy-button)[data-dixy-skin="dixy/material-light"]:not(
293
366
  [data-dixy-material-override]
294
367
  ):not(:where([data-dixy-material-override]) *):is(
@@ -319,14 +392,19 @@
319
392
  border: 1px solid var(--dixy-skin-edge);
320
393
  box-shadow: var(--dixy-skin-inset);
321
394
  }
395
+ /* 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). */
322
396
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/material-light"]:not(
323
397
  [data-dixy-material-override]
324
398
  ):not(:where([data-dixy-material-override]) *) {
325
- background-image: var(--dixy-skin-finish);
326
399
  box-shadow: var(--dixy-skin-control-relief);
327
400
  border: 1px solid var(--dixy-skin-edge);
328
401
  }
329
- /* 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). */
402
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/material-light"]:not(
403
+ [data-dixy-material-override]
404
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
405
+ background-image: none;
406
+ }
407
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
330
408
  .dixy-theme[data-dixy-skin="dixy/material-light"]
331
409
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
332
410
  [data-dixy-material-override]
@@ -341,7 +419,7 @@
341
419
  [data-variant="solid"]
342
420
  )[data-pressed]:not([data-disabled]) {
343
421
  background-color: var(--dixy-color-background-surface-raised);
344
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
422
+ background-image: none;
345
423
  box-shadow: var(--dixy-skin-control-relief);
346
424
  border-color: var(--dixy-skin-edge);
347
425
  color: var(--dixy-color-text-primary);
@@ -31,6 +31,11 @@
31
31
  --dixy-font-title-sm-family:
32
32
  "Tilt Neon", "Fredoka Variable", ui-rounded, sans-serif;
33
33
  --dixy-skin-edge: #4a3f57;
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: 45;
35
40
  --dixy-organic-cornerDensity: 60;
36
41
  --dixy-organic-canopyDepth: 55;
@@ -123,7 +128,6 @@
123
128
  --dixy-organic-b: #3ff2ff;
124
129
  --dixy-organic-c: #ffd166;
125
130
  --dixy-organic-d: #2a2233;
126
- --dixy-skin-selected: var(--dixy-skin-finish);
127
131
  --dixy-skin-edge: #5b4c6b;
128
132
  --dixy-skin-surface: color-mix(
129
133
  in srgb,
@@ -136,6 +140,7 @@
136
140
  #17121e
137
141
  );
138
142
  }
143
+
139
144
  .dixy-theme[data-dixy-skin="dixy/neon-night-market"][data-relief="2"] {
140
145
  --dixy-skin-shadow:
141
146
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -271,6 +276,30 @@
271
276
  ):not([data-variant="soft"]) {
272
277
  background-color: var(--dixy-skin-surface);
273
278
  }
279
+ :is(
280
+ .dixy-dialog-popup,
281
+ .dixy-alert-dialog-popup,
282
+ .dixy-drawer-popup,
283
+ .dixy-popover-popup,
284
+ .dixy-preview-card-popup,
285
+ .dixy-tooltip-popup,
286
+ .dixy-select-popup,
287
+ .dixy-combobox-popup,
288
+ .dixy-autocomplete-popup,
289
+ .dixy-menu-popup,
290
+ .dixy-context-menu-popup,
291
+ .dixy-navigation-menu-popup
292
+ )[data-dixy-skin="dixy/neon-night-market"]:not(
293
+ [data-dixy-material-override]
294
+ ):not(:where([data-dixy-material-override]) *):not(
295
+ [data-variant="solid"]
296
+ ):not([data-variant="soft"]) {
297
+ background-color: color-mix(
298
+ in srgb,
299
+ var(--dixy-color-background-surface-raised) 94%,
300
+ var(--dixy-skin-surface)
301
+ );
302
+ }
274
303
  :is(
275
304
  .dixy-input,
276
305
  .dixy-textarea,
@@ -284,6 +313,11 @@
284
313
  )[data-dixy-skin="dixy/neon-night-market"] {
285
314
  border-radius: calc(var(--dixy-radius-control) * 1.2);
286
315
  }
316
+ :is(.dixy-textarea)[data-dixy-skin="dixy/neon-night-market"] {
317
+ border-radius: calc(
318
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1.2
319
+ );
320
+ }
287
321
  :is(
288
322
  .dixy-input,
289
323
  .dixy-textarea,
@@ -298,7 +332,7 @@
298
332
  [data-dixy-material-override]
299
333
  ):not(:where([data-dixy-material-override]) *) {
300
334
  border-width: var(--dixy-input-border-width);
301
- border-color: var(--dixy-skin-edge);
335
+ border-color: var(--dixy-skin-field-edge);
302
336
  background-image: var(--dixy-skin-paint);
303
337
  background-color: var(--dixy-color-background-canvas);
304
338
  background-size:
@@ -308,6 +342,45 @@
308
342
  100% 100%;
309
343
  box-shadow: var(--dixy-skin-inset);
310
344
  }
345
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
346
+ skin's paint to that so its image and grain size always land together;
347
+ otherwise the material image is tiled at the grain size (stripes). */
348
+ :is(
349
+ .dixy-card,
350
+ .dixy-box,
351
+ .dixy-dialog-popup,
352
+ .dixy-alert-dialog-popup,
353
+ .dixy-drawer-popup,
354
+ .dixy-popover-popup,
355
+ .dixy-preview-card-popup,
356
+ .dixy-tooltip-popup,
357
+ .dixy-select-popup,
358
+ .dixy-combobox-popup,
359
+ .dixy-autocomplete-popup,
360
+ .dixy-menu-popup,
361
+ .dixy-context-menu-popup,
362
+ .dixy-navigation-menu-popup,
363
+ .dixy-toast-root,
364
+ .dixy-alert,
365
+ .dixy-list-box,
366
+ .dixy-calendar,
367
+ .dixy-range-calendar,
368
+ .dixy-input,
369
+ .dixy-textarea,
370
+ .dixy-native-select,
371
+ .dixy-select-trigger,
372
+ .dixy-input-group,
373
+ .dixy-combobox-input-group,
374
+ .dixy-autocomplete-input-group,
375
+ .dixy-number-field-group,
376
+ .dixy-otp-field-input
377
+ )[data-dixy-skin="dixy/neon-night-market"]:not(
378
+ [data-dixy-material-override]
379
+ ):not(
380
+ :where([data-dixy-material-override]) *
381
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
382
+ background-image: var(--dixy-skin-paint);
383
+ }
311
384
  :is(.dixy-button)[data-dixy-skin="dixy/neon-night-market"]:not(
312
385
  [data-dixy-material-override]
313
386
  ):not(:where([data-dixy-material-override]) *):is(
@@ -338,14 +411,19 @@
338
411
  border: 1px solid var(--dixy-skin-edge);
339
412
  box-shadow: var(--dixy-skin-inset);
340
413
  }
414
+ /* 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). */
341
415
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/neon-night-market"]:not(
342
416
  [data-dixy-material-override]
343
417
  ):not(:where([data-dixy-material-override]) *) {
344
- background-image: var(--dixy-skin-finish);
345
418
  box-shadow: var(--dixy-skin-control-relief);
346
419
  border: 1px solid var(--dixy-skin-edge);
347
420
  }
348
- /* 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). */
421
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/neon-night-market"]:not(
422
+ [data-dixy-material-override]
423
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
424
+ background-image: none;
425
+ }
426
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
349
427
  .dixy-theme[data-dixy-skin="dixy/neon-night-market"]
350
428
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
351
429
  [data-dixy-material-override]
@@ -360,7 +438,7 @@
360
438
  [data-variant="solid"]
361
439
  )[data-pressed]:not([data-disabled]) {
362
440
  background-color: var(--dixy-color-background-surface-raised);
363
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
441
+ background-image: none;
364
442
  box-shadow: var(--dixy-skin-control-relief);
365
443
  border-color: var(--dixy-skin-edge);
366
444
  color: var(--dixy-color-text-primary);
@@ -33,6 +33,11 @@
33
33
  --dixy-font-title-sm-family:
34
34
  "Fraunces Variable", "Fraunces", ui-serif, Georgia, serif;
35
35
  --dixy-skin-edge: rgb(255 255 255 / 0.8);
36
+ --dixy-skin-field-edge: color-mix(
37
+ in oklab,
38
+ var(--dixy-color-base-9) 50%,
39
+ var(--dixy-color-base-8)
40
+ );
36
41
 
37
42
  --dixy-skin-surface: color-mix(
38
43
  in srgb,
@@ -112,7 +117,6 @@
112
117
  --dixy-font-title-sm-letter-spacing: -0.02em;
113
118
  }
114
119
  .dixy-theme[data-dixy-skin="dixy/ocean-depths"][data-appearance="dark"] {
115
- --dixy-skin-selected: var(--dixy-skin-finish);
116
120
  --dixy-skin-edge: #2a5a68;
117
121
  --dixy-skin-canvas:
118
122
  radial-gradient(
@@ -132,6 +136,7 @@
132
136
  #0e2c38b3
133
137
  );
134
138
  }
139
+
135
140
  .dixy-theme[data-dixy-skin="dixy/ocean-depths"][data-relief="2"] {
136
141
  --dixy-skin-shadow:
137
142
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -170,6 +175,7 @@
170
175
  --dixy-color-brand-12: oklch(0.255 0.044035 190);
171
176
  --dixy-color-brand-pressed: oklch(0.655 0.113104 190);
172
177
  --dixy-color-brand-on-solid: oklch(0.13 0.005 270);
178
+ --dixy-color-brand-focus: oklch(0.5375 0.092815 190);
173
179
  }
174
180
  .dixy-theme[data-dixy-skin="dixy/ocean-depths"][data-appearance="dark"] {
175
181
  --dixy-color-brand-1: oklch(0.155 0.012 190);
@@ -186,6 +192,7 @@
186
192
  --dixy-color-brand-12: oklch(0.94 0.014919 190);
187
193
  --dixy-color-brand-pressed: oklch(0.825 0.09449 190);
188
194
  --dixy-color-brand-on-solid: oklch(0.13 0.005 270);
195
+ --dixy-color-brand-focus: oklch(0.585 0.099463 190);
189
196
  }
190
197
  }
191
198
  @layer dixy.components {
@@ -299,6 +306,30 @@
299
306
  ):not([data-variant="soft"]) {
300
307
  background-color: var(--dixy-skin-surface);
301
308
  }
309
+ :is(
310
+ .dixy-dialog-popup,
311
+ .dixy-alert-dialog-popup,
312
+ .dixy-drawer-popup,
313
+ .dixy-popover-popup,
314
+ .dixy-preview-card-popup,
315
+ .dixy-tooltip-popup,
316
+ .dixy-select-popup,
317
+ .dixy-combobox-popup,
318
+ .dixy-autocomplete-popup,
319
+ .dixy-menu-popup,
320
+ .dixy-context-menu-popup,
321
+ .dixy-navigation-menu-popup
322
+ )[data-dixy-skin="dixy/ocean-depths"]:not(
323
+ [data-dixy-material-override]
324
+ ):not(:where([data-dixy-material-override]) *):not(
325
+ [data-variant="solid"]
326
+ ):not([data-variant="soft"]) {
327
+ background-color: color-mix(
328
+ in srgb,
329
+ var(--dixy-color-background-surface-raised) 72%,
330
+ var(--dixy-skin-surface)
331
+ );
332
+ }
302
333
  :is(
303
334
  .dixy-input,
304
335
  .dixy-textarea,
@@ -312,6 +343,11 @@
312
343
  )[data-dixy-skin="dixy/ocean-depths"] {
313
344
  border-radius: calc(var(--dixy-radius-control) * 1);
314
345
  }
346
+ :is(.dixy-textarea)[data-dixy-skin="dixy/ocean-depths"] {
347
+ border-radius: calc(
348
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
349
+ );
350
+ }
315
351
  :is(
316
352
  .dixy-input,
317
353
  .dixy-textarea,
@@ -326,7 +362,7 @@
326
362
  [data-dixy-material-override]
327
363
  ):not(:where([data-dixy-material-override]) *) {
328
364
  border-width: var(--dixy-input-border-width);
329
- border-color: var(--dixy-skin-edge);
365
+ border-color: var(--dixy-skin-field-edge);
330
366
  background-image: var(--dixy-skin-paint);
331
367
  background-color: var(--dixy-color-background-canvas);
332
368
  background-size:
@@ -336,6 +372,45 @@
336
372
  100% 100%;
337
373
  box-shadow: var(--dixy-skin-inset);
338
374
  }
375
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
376
+ skin's paint to that so its image and grain size always land together;
377
+ otherwise the material image is tiled at the grain size (stripes). */
378
+ :is(
379
+ .dixy-card,
380
+ .dixy-box,
381
+ .dixy-dialog-popup,
382
+ .dixy-alert-dialog-popup,
383
+ .dixy-drawer-popup,
384
+ .dixy-popover-popup,
385
+ .dixy-preview-card-popup,
386
+ .dixy-tooltip-popup,
387
+ .dixy-select-popup,
388
+ .dixy-combobox-popup,
389
+ .dixy-autocomplete-popup,
390
+ .dixy-menu-popup,
391
+ .dixy-context-menu-popup,
392
+ .dixy-navigation-menu-popup,
393
+ .dixy-toast-root,
394
+ .dixy-alert,
395
+ .dixy-list-box,
396
+ .dixy-calendar,
397
+ .dixy-range-calendar,
398
+ .dixy-input,
399
+ .dixy-textarea,
400
+ .dixy-native-select,
401
+ .dixy-select-trigger,
402
+ .dixy-input-group,
403
+ .dixy-combobox-input-group,
404
+ .dixy-autocomplete-input-group,
405
+ .dixy-number-field-group,
406
+ .dixy-otp-field-input
407
+ )[data-dixy-skin="dixy/ocean-depths"]:not(
408
+ [data-dixy-material-override]
409
+ ):not(
410
+ :where([data-dixy-material-override]) *
411
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
412
+ background-image: var(--dixy-skin-paint);
413
+ }
339
414
  :is(.dixy-button)[data-dixy-skin="dixy/ocean-depths"]:not(
340
415
  [data-dixy-material-override]
341
416
  ):not(:where([data-dixy-material-override]) *):is(
@@ -366,14 +441,19 @@
366
441
  border: 1px solid var(--dixy-skin-edge);
367
442
  box-shadow: var(--dixy-skin-inset);
368
443
  }
444
+ /* 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). */
369
445
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/ocean-depths"]:not(
370
446
  [data-dixy-material-override]
371
447
  ):not(:where([data-dixy-material-override]) *) {
372
- background-image: var(--dixy-skin-finish);
373
448
  box-shadow: var(--dixy-skin-control-relief);
374
449
  border: 1px solid var(--dixy-skin-edge);
375
450
  }
376
- /* 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). */
451
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/ocean-depths"]:not(
452
+ [data-dixy-material-override]
453
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
454
+ background-image: none;
455
+ }
456
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
377
457
  .dixy-theme[data-dixy-skin="dixy/ocean-depths"]
378
458
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
379
459
  [data-dixy-material-override]
@@ -388,7 +468,7 @@
388
468
  [data-variant="solid"]
389
469
  )[data-pressed]:not([data-disabled]) {
390
470
  background-color: var(--dixy-color-background-surface-raised);
391
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
471
+ background-image: none;
392
472
  box-shadow: var(--dixy-skin-control-relief);
393
473
  border-color: var(--dixy-skin-edge);
394
474
  color: var(--dixy-color-text-primary);