@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
@@ -42,6 +42,11 @@
42
42
  "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", ui-sans-serif,
43
43
  system-ui, sans-serif;
44
44
  --dixy-skin-edge: #c9ced3;
45
+ --dixy-skin-field-edge: color-mix(
46
+ in oklab,
47
+ var(--dixy-color-base-9) 50%,
48
+ var(--dixy-color-base-8)
49
+ );
45
50
  --dixy-organic-density: 50;
46
51
  --dixy-organic-cornerDensity: 60;
47
52
  --dixy-organic-canopyDepth: 40;
@@ -119,7 +124,6 @@
119
124
  --dixy-organic-b: #ff9a3d;
120
125
  --dixy-organic-c: #5a9bff;
121
126
  --dixy-organic-d: #d3d8de;
122
- --dixy-skin-selected: var(--dixy-skin-finish);
123
127
  --dixy-skin-edge: #48505a;
124
128
  --dixy-skin-surface: color-mix(
125
129
  in srgb,
@@ -132,6 +136,7 @@
132
136
  #1c2024
133
137
  );
134
138
  }
139
+
135
140
  .dixy-theme[data-dixy-skin="dixy/tokyo-transit"][data-relief="2"] {
136
141
  --dixy-skin-shadow:
137
142
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -157,11 +162,9 @@
157
162
  }
158
163
  }
159
164
  @layer dixy.components {
160
- .dixy-theme[data-dixy-skin="dixy/tokyo-transit"] {
165
+ .dixy-theme[data-dixy-skin="dixy/tokyo-transit"]:not(.dixy-portal-scope) {
161
166
  position: relative;
162
167
  isolation: isolate;
163
- }
164
- .dixy-theme[data-dixy-skin="dixy/tokyo-transit"]:not(.dixy-portal-scope) {
165
168
  background-color: var(--dixy-skin-ground);
166
169
  background-image: var(--dixy-skin-canvas);
167
170
  }
@@ -267,6 +270,30 @@
267
270
  ):not([data-variant="soft"]) {
268
271
  background-color: var(--dixy-skin-surface);
269
272
  }
273
+ :is(
274
+ .dixy-dialog-popup,
275
+ .dixy-alert-dialog-popup,
276
+ .dixy-drawer-popup,
277
+ .dixy-popover-popup,
278
+ .dixy-preview-card-popup,
279
+ .dixy-tooltip-popup,
280
+ .dixy-select-popup,
281
+ .dixy-combobox-popup,
282
+ .dixy-autocomplete-popup,
283
+ .dixy-menu-popup,
284
+ .dixy-context-menu-popup,
285
+ .dixy-navigation-menu-popup
286
+ )[data-dixy-skin="dixy/tokyo-transit"]:not(
287
+ [data-dixy-material-override]
288
+ ):not(:where([data-dixy-material-override]) *):not(
289
+ [data-variant="solid"]
290
+ ):not([data-variant="soft"]) {
291
+ background-color: color-mix(
292
+ in srgb,
293
+ var(--dixy-color-background-surface-raised) 94%,
294
+ var(--dixy-skin-surface)
295
+ );
296
+ }
270
297
  :is(
271
298
  .dixy-input,
272
299
  .dixy-textarea,
@@ -299,7 +326,7 @@
299
326
  [data-dixy-material-override]
300
327
  ):not(:where([data-dixy-material-override]) *) {
301
328
  border-width: var(--dixy-input-border-width);
302
- border-color: var(--dixy-skin-edge);
329
+ border-color: var(--dixy-skin-field-edge);
303
330
  background-image: var(--dixy-skin-paint);
304
331
  background-color: var(--dixy-color-background-canvas);
305
332
  background-size:
@@ -309,6 +336,45 @@
309
336
  100% 100%;
310
337
  box-shadow: var(--dixy-skin-inset);
311
338
  }
339
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
340
+ skin's paint to that so its image and grain size always land together;
341
+ otherwise the material image is tiled at the grain size (stripes). */
342
+ :is(
343
+ .dixy-card,
344
+ .dixy-box,
345
+ .dixy-dialog-popup,
346
+ .dixy-alert-dialog-popup,
347
+ .dixy-drawer-popup,
348
+ .dixy-popover-popup,
349
+ .dixy-preview-card-popup,
350
+ .dixy-tooltip-popup,
351
+ .dixy-select-popup,
352
+ .dixy-combobox-popup,
353
+ .dixy-autocomplete-popup,
354
+ .dixy-menu-popup,
355
+ .dixy-context-menu-popup,
356
+ .dixy-navigation-menu-popup,
357
+ .dixy-toast-root,
358
+ .dixy-alert,
359
+ .dixy-list-box,
360
+ .dixy-calendar,
361
+ .dixy-range-calendar,
362
+ .dixy-input,
363
+ .dixy-textarea,
364
+ .dixy-native-select,
365
+ .dixy-select-trigger,
366
+ .dixy-input-group,
367
+ .dixy-combobox-input-group,
368
+ .dixy-autocomplete-input-group,
369
+ .dixy-number-field-group,
370
+ .dixy-otp-field-input
371
+ )[data-dixy-skin="dixy/tokyo-transit"]:not(
372
+ [data-dixy-material-override]
373
+ ):not(
374
+ :where([data-dixy-material-override]) *
375
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
376
+ background-image: var(--dixy-skin-paint);
377
+ }
312
378
  :is(.dixy-button)[data-dixy-skin="dixy/tokyo-transit"]:not(
313
379
  [data-dixy-material-override]
314
380
  ):not(:where([data-dixy-material-override]) *):is(
@@ -339,14 +405,19 @@
339
405
  border: 1px solid var(--dixy-skin-edge);
340
406
  box-shadow: var(--dixy-skin-inset);
341
407
  }
408
+ /* 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
409
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/tokyo-transit"]:not(
343
410
  [data-dixy-material-override]
344
411
  ):not(:where([data-dixy-material-override]) *) {
345
- background-image: var(--dixy-skin-finish);
346
412
  box-shadow: var(--dixy-skin-control-relief);
347
413
  border: 1px solid var(--dixy-skin-edge);
348
414
  }
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). */
415
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/tokyo-transit"]:not(
416
+ [data-dixy-material-override]
417
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
418
+ background-image: none;
419
+ }
420
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
350
421
  .dixy-theme[data-dixy-skin="dixy/tokyo-transit"]
351
422
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
352
423
  [data-dixy-material-override]
@@ -361,7 +432,7 @@
361
432
  [data-variant="solid"]
362
433
  )[data-pressed]:not([data-disabled]) {
363
434
  background-color: var(--dixy-color-background-surface-raised);
364
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
435
+ background-image: none;
365
436
  box-shadow: var(--dixy-skin-control-relief);
366
437
  border-color: var(--dixy-skin-edge);
367
438
  color: var(--dixy-color-text-primary);
@@ -31,6 +31,11 @@
31
31
  --dixy-font-title-sm-family:
32
32
  "Share Tech Mono", "VT323", ui-monospace, monospace;
33
33
  --dixy-skin-edge: #9aa199;
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
 
35
40
  --dixy-skin-surface: color-mix(
36
41
  in srgb,
@@ -109,7 +114,6 @@
109
114
  --dixy-font-title-sm-letter-spacing: 0.02em;
110
115
  }
111
116
  .dixy-theme[data-dixy-skin="dixy/winamp-signal"][data-appearance="dark"] {
112
- --dixy-skin-selected: var(--dixy-skin-finish);
113
117
  --dixy-skin-edge: #11141a;
114
118
  --dixy-skin-surface: color-mix(
115
119
  in srgb,
@@ -122,6 +126,7 @@
122
126
  #2c3136
123
127
  );
124
128
  }
129
+
125
130
  .dixy-theme[data-dixy-skin="dixy/winamp-signal"][data-relief="2"] {
126
131
  --dixy-skin-shadow:
127
132
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -147,11 +152,9 @@
147
152
  }
148
153
  }
149
154
  @layer dixy.components {
150
- .dixy-theme[data-dixy-skin="dixy/winamp-signal"] {
155
+ .dixy-theme[data-dixy-skin="dixy/winamp-signal"]:not(.dixy-portal-scope) {
151
156
  position: relative;
152
157
  isolation: isolate;
153
- }
154
- .dixy-theme[data-dixy-skin="dixy/winamp-signal"]:not(.dixy-portal-scope) {
155
158
  background-color: var(--dixy-skin-ground);
156
159
  background-image: var(--dixy-skin-canvas);
157
160
  }
@@ -257,6 +260,30 @@
257
260
  ):not([data-variant="soft"]) {
258
261
  background-color: var(--dixy-skin-surface);
259
262
  }
263
+ :is(
264
+ .dixy-dialog-popup,
265
+ .dixy-alert-dialog-popup,
266
+ .dixy-drawer-popup,
267
+ .dixy-popover-popup,
268
+ .dixy-preview-card-popup,
269
+ .dixy-tooltip-popup,
270
+ .dixy-select-popup,
271
+ .dixy-combobox-popup,
272
+ .dixy-autocomplete-popup,
273
+ .dixy-menu-popup,
274
+ .dixy-context-menu-popup,
275
+ .dixy-navigation-menu-popup
276
+ )[data-dixy-skin="dixy/winamp-signal"]:not(
277
+ [data-dixy-material-override]
278
+ ):not(:where([data-dixy-material-override]) *):not(
279
+ [data-variant="solid"]
280
+ ):not([data-variant="soft"]) {
281
+ background-color: color-mix(
282
+ in srgb,
283
+ var(--dixy-color-background-surface-raised) 94%,
284
+ var(--dixy-skin-surface)
285
+ );
286
+ }
260
287
  :is(
261
288
  .dixy-input,
262
289
  .dixy-textarea,
@@ -289,7 +316,7 @@
289
316
  [data-dixy-material-override]
290
317
  ):not(:where([data-dixy-material-override]) *) {
291
318
  border-width: var(--dixy-input-border-width);
292
- border-color: var(--dixy-skin-edge);
319
+ border-color: var(--dixy-skin-field-edge);
293
320
  background-image: var(--dixy-skin-paint);
294
321
  background-color: var(--dixy-color-background-canvas);
295
322
  background-size:
@@ -299,6 +326,45 @@
299
326
  100% 100%;
300
327
  box-shadow: var(--dixy-skin-inset);
301
328
  }
329
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
330
+ skin's paint to that so its image and grain size always land together;
331
+ otherwise the material image is tiled at the grain size (stripes). */
332
+ :is(
333
+ .dixy-card,
334
+ .dixy-box,
335
+ .dixy-dialog-popup,
336
+ .dixy-alert-dialog-popup,
337
+ .dixy-drawer-popup,
338
+ .dixy-popover-popup,
339
+ .dixy-preview-card-popup,
340
+ .dixy-tooltip-popup,
341
+ .dixy-select-popup,
342
+ .dixy-combobox-popup,
343
+ .dixy-autocomplete-popup,
344
+ .dixy-menu-popup,
345
+ .dixy-context-menu-popup,
346
+ .dixy-navigation-menu-popup,
347
+ .dixy-toast-root,
348
+ .dixy-alert,
349
+ .dixy-list-box,
350
+ .dixy-calendar,
351
+ .dixy-range-calendar,
352
+ .dixy-input,
353
+ .dixy-textarea,
354
+ .dixy-native-select,
355
+ .dixy-select-trigger,
356
+ .dixy-input-group,
357
+ .dixy-combobox-input-group,
358
+ .dixy-autocomplete-input-group,
359
+ .dixy-number-field-group,
360
+ .dixy-otp-field-input
361
+ )[data-dixy-skin="dixy/winamp-signal"]:not(
362
+ [data-dixy-material-override]
363
+ ):not(
364
+ :where([data-dixy-material-override]) *
365
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
366
+ background-image: var(--dixy-skin-paint);
367
+ }
302
368
  :is(.dixy-button)[data-dixy-skin="dixy/winamp-signal"]:not(
303
369
  [data-dixy-material-override]
304
370
  ):not(:where([data-dixy-material-override]) *):is(
@@ -336,14 +402,19 @@
336
402
  border: 1px solid var(--dixy-skin-edge);
337
403
  box-shadow: var(--dixy-skin-inset);
338
404
  }
405
+ /* 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). */
339
406
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/winamp-signal"]:not(
340
407
  [data-dixy-material-override]
341
408
  ):not(:where([data-dixy-material-override]) *) {
342
- background-image: var(--dixy-skin-finish);
343
409
  box-shadow: var(--dixy-skin-control-relief);
344
410
  border: 1px solid var(--dixy-skin-edge);
345
411
  }
346
- /* 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). */
412
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/winamp-signal"]:not(
413
+ [data-dixy-material-override]
414
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
415
+ background-image: none;
416
+ }
417
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
347
418
  .dixy-theme[data-dixy-skin="dixy/winamp-signal"]
348
419
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
349
420
  [data-dixy-material-override]
@@ -358,7 +429,7 @@
358
429
  [data-variant="solid"]
359
430
  )[data-pressed]:not([data-disabled]) {
360
431
  background-color: var(--dixy-color-background-surface-raised);
361
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
432
+ background-image: none;
362
433
  box-shadow: var(--dixy-skin-control-relief);
363
434
  border-color: var(--dixy-skin-edge);
364
435
  color: var(--dixy-color-text-primary);
@@ -39,6 +39,11 @@
39
39
  "Orbitron Variable", "Orbitron", "Eurostile", "Bank Gothic",
40
40
  ui-sans-serif, sans-serif;
41
41
  --dixy-skin-edge: #aab6c3;
42
+ --dixy-skin-field-edge: color-mix(
43
+ in oklab,
44
+ var(--dixy-color-base-9) 50%,
45
+ var(--dixy-color-base-8)
46
+ );
42
47
 
43
48
  --dixy-skin-surface: color-mix(
44
49
  in srgb,
@@ -122,7 +127,6 @@
122
127
  --dixy-font-title-sm-letter-spacing: 0.08em;
123
128
  }
124
129
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"][data-appearance="dark"] {
125
- --dixy-skin-selected: var(--dixy-skin-finish);
126
130
  --dixy-skin-edge: #33414f;
127
131
  --dixy-skin-surface: color-mix(
128
132
  in srgb,
@@ -135,6 +139,7 @@
135
139
  #1a222b
136
140
  );
137
141
  }
142
+
138
143
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"][data-relief="2"] {
139
144
  --dixy-skin-shadow:
140
145
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -173,6 +178,7 @@
173
178
  --dixy-color-brand-12: oklch(0.255 0.04643 220);
174
179
  --dixy-color-brand-pressed: oklch(0.635 0.115614 220);
175
180
  --dixy-color-brand-on-solid: oklch(0.13 0.005 270);
181
+ --dixy-color-brand-focus: oklch(0.5375 0.097863 220);
176
182
  }
177
183
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"][data-appearance="dark"] {
178
184
  --dixy-color-brand-1: oklch(0.155 0.012 220);
@@ -189,14 +195,13 @@
189
195
  --dixy-color-brand-12: oklch(0.94 0.015293 220);
190
196
  --dixy-color-brand-pressed: oklch(0.815 0.096861 220);
191
197
  --dixy-color-brand-on-solid: oklch(0.13 0.005 270);
198
+ --dixy-color-brand-focus: oklch(0.585 0.101959 220);
192
199
  }
193
200
  }
194
201
  @layer dixy.components {
195
- .dixy-theme[data-dixy-skin="dixy/y2k-titanium"] {
202
+ .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]:not(.dixy-portal-scope) {
196
203
  position: relative;
197
204
  isolation: isolate;
198
- }
199
- .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]:not(.dixy-portal-scope) {
200
205
  background-color: var(--dixy-skin-ground);
201
206
  background-image: var(--dixy-skin-canvas);
202
207
  }
@@ -302,6 +307,30 @@
302
307
  ):not([data-variant="soft"]) {
303
308
  background-color: var(--dixy-skin-surface);
304
309
  }
310
+ :is(
311
+ .dixy-dialog-popup,
312
+ .dixy-alert-dialog-popup,
313
+ .dixy-drawer-popup,
314
+ .dixy-popover-popup,
315
+ .dixy-preview-card-popup,
316
+ .dixy-tooltip-popup,
317
+ .dixy-select-popup,
318
+ .dixy-combobox-popup,
319
+ .dixy-autocomplete-popup,
320
+ .dixy-menu-popup,
321
+ .dixy-context-menu-popup,
322
+ .dixy-navigation-menu-popup
323
+ )[data-dixy-skin="dixy/y2k-titanium"]:not(
324
+ [data-dixy-material-override]
325
+ ):not(:where([data-dixy-material-override]) *):not(
326
+ [data-variant="solid"]
327
+ ):not([data-variant="soft"]) {
328
+ background-color: color-mix(
329
+ in srgb,
330
+ var(--dixy-color-background-surface-raised) 94%,
331
+ var(--dixy-skin-surface)
332
+ );
333
+ }
305
334
  :is(
306
335
  .dixy-input,
307
336
  .dixy-textarea,
@@ -334,7 +363,7 @@
334
363
  [data-dixy-material-override]
335
364
  ):not(:where([data-dixy-material-override]) *) {
336
365
  border-width: var(--dixy-input-border-width);
337
- border-color: var(--dixy-skin-edge);
366
+ border-color: var(--dixy-skin-field-edge);
338
367
  background-image: var(--dixy-skin-paint);
339
368
  background-color: var(--dixy-color-background-canvas);
340
369
  background-size:
@@ -344,6 +373,45 @@
344
373
  100% 100%;
345
374
  box-shadow: var(--dixy-skin-inset);
346
375
  }
376
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
377
+ skin's paint to that so its image and grain size always land together;
378
+ otherwise the material image is tiled at the grain size (stripes). */
379
+ :is(
380
+ .dixy-card,
381
+ .dixy-box,
382
+ .dixy-dialog-popup,
383
+ .dixy-alert-dialog-popup,
384
+ .dixy-drawer-popup,
385
+ .dixy-popover-popup,
386
+ .dixy-preview-card-popup,
387
+ .dixy-tooltip-popup,
388
+ .dixy-select-popup,
389
+ .dixy-combobox-popup,
390
+ .dixy-autocomplete-popup,
391
+ .dixy-menu-popup,
392
+ .dixy-context-menu-popup,
393
+ .dixy-navigation-menu-popup,
394
+ .dixy-toast-root,
395
+ .dixy-alert,
396
+ .dixy-list-box,
397
+ .dixy-calendar,
398
+ .dixy-range-calendar,
399
+ .dixy-input,
400
+ .dixy-textarea,
401
+ .dixy-native-select,
402
+ .dixy-select-trigger,
403
+ .dixy-input-group,
404
+ .dixy-combobox-input-group,
405
+ .dixy-autocomplete-input-group,
406
+ .dixy-number-field-group,
407
+ .dixy-otp-field-input
408
+ )[data-dixy-skin="dixy/y2k-titanium"]:not(
409
+ [data-dixy-material-override]
410
+ ):not(
411
+ :where([data-dixy-material-override]) *
412
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
413
+ background-image: var(--dixy-skin-paint);
414
+ }
347
415
  :is(.dixy-button)[data-dixy-skin="dixy/y2k-titanium"]:not(
348
416
  [data-dixy-material-override]
349
417
  ):not(:where([data-dixy-material-override]) *):is(
@@ -374,14 +442,19 @@
374
442
  border: 1px solid var(--dixy-skin-edge);
375
443
  box-shadow: var(--dixy-skin-inset);
376
444
  }
445
+ /* 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). */
377
446
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/y2k-titanium"]:not(
378
447
  [data-dixy-material-override]
379
448
  ):not(:where([data-dixy-material-override]) *) {
380
- background-image: var(--dixy-skin-finish);
381
449
  box-shadow: var(--dixy-skin-control-relief);
382
450
  border: 1px solid var(--dixy-skin-edge);
383
451
  }
384
- /* 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). */
452
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/y2k-titanium"]:not(
453
+ [data-dixy-material-override]
454
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
455
+ background-image: none;
456
+ }
457
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
385
458
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
386
459
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
387
460
  [data-dixy-material-override]
@@ -396,7 +469,7 @@
396
469
  [data-variant="solid"]
397
470
  )[data-pressed]:not([data-disabled]) {
398
471
  background-color: var(--dixy-color-background-surface-raised);
399
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
472
+ background-image: none;
400
473
  box-shadow: var(--dixy-skin-control-relief);
401
474
  border-color: var(--dixy-skin-edge);
402
475
  color: var(--dixy-color-text-primary);
@@ -882,16 +955,72 @@
882
955
  :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/y2k-titanium"] {
883
956
  border-radius: 0;
884
957
  --dixy-chrome-bar-radius: 0px;
885
- clip-path: polygon(
886
- 10px 0,
887
- calc(100% - 10px) 0,
888
- 100% 10px,
889
- 100% calc(100% - 10px),
890
- calc(100% - 10px) 100%,
891
- 10px 100%,
892
- 0 calc(100% - 10px),
893
- 0 10px
894
- );
958
+ }
959
+ @supports (corner-shape: bevel) {
960
+ .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
961
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/y2k-titanium"] {
962
+ border-radius: 10px;
963
+ corner-shape: bevel;
964
+ }
965
+ }
966
+ @supports not (corner-shape: bevel) {
967
+ .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
968
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/y2k-titanium"] {
969
+ clip-path: polygon(
970
+ 10px 0,
971
+ calc(100% - 10px) 0,
972
+ 100% 10px,
973
+ 100% calc(100% - 10px),
974
+ calc(100% - 10px) 100%,
975
+ 10px 100%,
976
+ 0 calc(100% - 10px),
977
+ 0 10px
978
+ );
979
+ }
980
+ .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
981
+ :is(
982
+ .dixy-card,
983
+ .dixy-dialog-popup
984
+ )[data-dixy-skin="dixy/y2k-titanium"]::after {
985
+ content: "";
986
+ position: absolute;
987
+ inset: calc(var(--dixy-skin-frame-width, 1px) * -1);
988
+ pointer-events: none;
989
+ z-index: 1;
990
+ background:
991
+ linear-gradient(
992
+ to bottom right,
993
+ transparent 50%,
994
+ var(--dixy-skin-edge) 50%
995
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
996
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
997
+ )
998
+ top left/10px 10px no-repeat,
999
+ linear-gradient(
1000
+ to bottom left,
1001
+ transparent 50%,
1002
+ var(--dixy-skin-edge) 50%
1003
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1004
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1005
+ )
1006
+ top right/10px 10px no-repeat,
1007
+ linear-gradient(
1008
+ to top right,
1009
+ transparent 50%,
1010
+ var(--dixy-skin-edge) 50%
1011
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1012
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1013
+ )
1014
+ bottom left/10px 10px no-repeat,
1015
+ linear-gradient(
1016
+ to top left,
1017
+ transparent 50%,
1018
+ var(--dixy-skin-edge) 50%
1019
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1020
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1021
+ )
1022
+ bottom right/10px 10px no-repeat;
1023
+ }
895
1024
  }
896
1025
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
897
1026
  :is(.dixy-card)[data-dixy-skin="dixy/y2k-titanium"]