@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
@@ -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)),
@@ -267,6 +272,30 @@
267
272
  ):not([data-variant="soft"]) {
268
273
  background-color: var(--dixy-skin-surface);
269
274
  }
275
+ :is(
276
+ .dixy-dialog-popup,
277
+ .dixy-alert-dialog-popup,
278
+ .dixy-drawer-popup,
279
+ .dixy-popover-popup,
280
+ .dixy-preview-card-popup,
281
+ .dixy-tooltip-popup,
282
+ .dixy-select-popup,
283
+ .dixy-combobox-popup,
284
+ .dixy-autocomplete-popup,
285
+ .dixy-menu-popup,
286
+ .dixy-context-menu-popup,
287
+ .dixy-navigation-menu-popup
288
+ )[data-dixy-skin="dixy/tokyo-transit"]:not(
289
+ [data-dixy-material-override]
290
+ ):not(:where([data-dixy-material-override]) *):not(
291
+ [data-variant="solid"]
292
+ ):not([data-variant="soft"]) {
293
+ background-color: color-mix(
294
+ in srgb,
295
+ var(--dixy-color-background-surface-raised) 94%,
296
+ var(--dixy-skin-surface)
297
+ );
298
+ }
270
299
  :is(
271
300
  .dixy-input,
272
301
  .dixy-textarea,
@@ -280,6 +309,11 @@
280
309
  )[data-dixy-skin="dixy/tokyo-transit"] {
281
310
  border-radius: calc(var(--dixy-radius-control) * 1);
282
311
  }
312
+ :is(.dixy-textarea)[data-dixy-skin="dixy/tokyo-transit"] {
313
+ border-radius: calc(
314
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
315
+ );
316
+ }
283
317
  :is(
284
318
  .dixy-input,
285
319
  .dixy-textarea,
@@ -294,7 +328,7 @@
294
328
  [data-dixy-material-override]
295
329
  ):not(:where([data-dixy-material-override]) *) {
296
330
  border-width: var(--dixy-input-border-width);
297
- border-color: var(--dixy-skin-edge);
331
+ border-color: var(--dixy-skin-field-edge);
298
332
  background-image: var(--dixy-skin-paint);
299
333
  background-color: var(--dixy-color-background-canvas);
300
334
  background-size:
@@ -304,6 +338,45 @@
304
338
  100% 100%;
305
339
  box-shadow: var(--dixy-skin-inset);
306
340
  }
341
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
342
+ skin's paint to that so its image and grain size always land together;
343
+ otherwise the material image is tiled at the grain size (stripes). */
344
+ :is(
345
+ .dixy-card,
346
+ .dixy-box,
347
+ .dixy-dialog-popup,
348
+ .dixy-alert-dialog-popup,
349
+ .dixy-drawer-popup,
350
+ .dixy-popover-popup,
351
+ .dixy-preview-card-popup,
352
+ .dixy-tooltip-popup,
353
+ .dixy-select-popup,
354
+ .dixy-combobox-popup,
355
+ .dixy-autocomplete-popup,
356
+ .dixy-menu-popup,
357
+ .dixy-context-menu-popup,
358
+ .dixy-navigation-menu-popup,
359
+ .dixy-toast-root,
360
+ .dixy-alert,
361
+ .dixy-list-box,
362
+ .dixy-calendar,
363
+ .dixy-range-calendar,
364
+ .dixy-input,
365
+ .dixy-textarea,
366
+ .dixy-native-select,
367
+ .dixy-select-trigger,
368
+ .dixy-input-group,
369
+ .dixy-combobox-input-group,
370
+ .dixy-autocomplete-input-group,
371
+ .dixy-number-field-group,
372
+ .dixy-otp-field-input
373
+ )[data-dixy-skin="dixy/tokyo-transit"]:not(
374
+ [data-dixy-material-override]
375
+ ):not(
376
+ :where([data-dixy-material-override]) *
377
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
378
+ background-image: var(--dixy-skin-paint);
379
+ }
307
380
  :is(.dixy-button)[data-dixy-skin="dixy/tokyo-transit"]:not(
308
381
  [data-dixy-material-override]
309
382
  ):not(:where([data-dixy-material-override]) *):is(
@@ -334,14 +407,19 @@
334
407
  border: 1px solid var(--dixy-skin-edge);
335
408
  box-shadow: var(--dixy-skin-inset);
336
409
  }
410
+ /* 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). */
337
411
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/tokyo-transit"]:not(
338
412
  [data-dixy-material-override]
339
413
  ):not(:where([data-dixy-material-override]) *) {
340
- background-image: var(--dixy-skin-finish);
341
414
  box-shadow: var(--dixy-skin-control-relief);
342
415
  border: 1px solid var(--dixy-skin-edge);
343
416
  }
344
- /* 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). */
417
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/tokyo-transit"]:not(
418
+ [data-dixy-material-override]
419
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
420
+ background-image: none;
421
+ }
422
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
345
423
  .dixy-theme[data-dixy-skin="dixy/tokyo-transit"]
346
424
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
347
425
  [data-dixy-material-override]
@@ -356,7 +434,7 @@
356
434
  [data-variant="solid"]
357
435
  )[data-pressed]:not([data-disabled]) {
358
436
  background-color: var(--dixy-color-background-surface-raised);
359
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
437
+ background-image: none;
360
438
  box-shadow: var(--dixy-skin-control-relief);
361
439
  border-color: var(--dixy-skin-edge);
362
440
  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)),
@@ -257,6 +262,30 @@
257
262
  ):not([data-variant="soft"]) {
258
263
  background-color: var(--dixy-skin-surface);
259
264
  }
265
+ :is(
266
+ .dixy-dialog-popup,
267
+ .dixy-alert-dialog-popup,
268
+ .dixy-drawer-popup,
269
+ .dixy-popover-popup,
270
+ .dixy-preview-card-popup,
271
+ .dixy-tooltip-popup,
272
+ .dixy-select-popup,
273
+ .dixy-combobox-popup,
274
+ .dixy-autocomplete-popup,
275
+ .dixy-menu-popup,
276
+ .dixy-context-menu-popup,
277
+ .dixy-navigation-menu-popup
278
+ )[data-dixy-skin="dixy/winamp-signal"]:not(
279
+ [data-dixy-material-override]
280
+ ):not(:where([data-dixy-material-override]) *):not(
281
+ [data-variant="solid"]
282
+ ):not([data-variant="soft"]) {
283
+ background-color: color-mix(
284
+ in srgb,
285
+ var(--dixy-color-background-surface-raised) 94%,
286
+ var(--dixy-skin-surface)
287
+ );
288
+ }
260
289
  :is(
261
290
  .dixy-input,
262
291
  .dixy-textarea,
@@ -270,6 +299,11 @@
270
299
  )[data-dixy-skin="dixy/winamp-signal"] {
271
300
  border-radius: calc(var(--dixy-radius-control) * 1);
272
301
  }
302
+ :is(.dixy-textarea)[data-dixy-skin="dixy/winamp-signal"] {
303
+ border-radius: calc(
304
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
305
+ );
306
+ }
273
307
  :is(
274
308
  .dixy-input,
275
309
  .dixy-textarea,
@@ -284,7 +318,7 @@
284
318
  [data-dixy-material-override]
285
319
  ):not(:where([data-dixy-material-override]) *) {
286
320
  border-width: var(--dixy-input-border-width);
287
- border-color: var(--dixy-skin-edge);
321
+ border-color: var(--dixy-skin-field-edge);
288
322
  background-image: var(--dixy-skin-paint);
289
323
  background-color: var(--dixy-color-background-canvas);
290
324
  background-size:
@@ -294,6 +328,45 @@
294
328
  100% 100%;
295
329
  box-shadow: var(--dixy-skin-inset);
296
330
  }
331
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
332
+ skin's paint to that so its image and grain size always land together;
333
+ otherwise the material image is tiled at the grain size (stripes). */
334
+ :is(
335
+ .dixy-card,
336
+ .dixy-box,
337
+ .dixy-dialog-popup,
338
+ .dixy-alert-dialog-popup,
339
+ .dixy-drawer-popup,
340
+ .dixy-popover-popup,
341
+ .dixy-preview-card-popup,
342
+ .dixy-tooltip-popup,
343
+ .dixy-select-popup,
344
+ .dixy-combobox-popup,
345
+ .dixy-autocomplete-popup,
346
+ .dixy-menu-popup,
347
+ .dixy-context-menu-popup,
348
+ .dixy-navigation-menu-popup,
349
+ .dixy-toast-root,
350
+ .dixy-alert,
351
+ .dixy-list-box,
352
+ .dixy-calendar,
353
+ .dixy-range-calendar,
354
+ .dixy-input,
355
+ .dixy-textarea,
356
+ .dixy-native-select,
357
+ .dixy-select-trigger,
358
+ .dixy-input-group,
359
+ .dixy-combobox-input-group,
360
+ .dixy-autocomplete-input-group,
361
+ .dixy-number-field-group,
362
+ .dixy-otp-field-input
363
+ )[data-dixy-skin="dixy/winamp-signal"]:not(
364
+ [data-dixy-material-override]
365
+ ):not(
366
+ :where([data-dixy-material-override]) *
367
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
368
+ background-image: var(--dixy-skin-paint);
369
+ }
297
370
  :is(.dixy-button)[data-dixy-skin="dixy/winamp-signal"]:not(
298
371
  [data-dixy-material-override]
299
372
  ):not(:where([data-dixy-material-override]) *):is(
@@ -331,14 +404,19 @@
331
404
  border: 1px solid var(--dixy-skin-edge);
332
405
  box-shadow: var(--dixy-skin-inset);
333
406
  }
407
+ /* 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). */
334
408
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/winamp-signal"]:not(
335
409
  [data-dixy-material-override]
336
410
  ):not(:where([data-dixy-material-override]) *) {
337
- background-image: var(--dixy-skin-finish);
338
411
  box-shadow: var(--dixy-skin-control-relief);
339
412
  border: 1px solid var(--dixy-skin-edge);
340
413
  }
341
- /* 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). */
414
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/winamp-signal"]:not(
415
+ [data-dixy-material-override]
416
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
417
+ background-image: none;
418
+ }
419
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
342
420
  .dixy-theme[data-dixy-skin="dixy/winamp-signal"]
343
421
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
344
422
  [data-dixy-material-override]
@@ -353,7 +431,7 @@
353
431
  [data-variant="solid"]
354
432
  )[data-pressed]:not([data-disabled]) {
355
433
  background-color: var(--dixy-color-background-surface-raised);
356
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
434
+ background-image: none;
357
435
  box-shadow: var(--dixy-skin-control-relief);
358
436
  border-color: var(--dixy-skin-edge);
359
437
  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,6 +195,7 @@
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 {
@@ -302,6 +309,30 @@
302
309
  ):not([data-variant="soft"]) {
303
310
  background-color: var(--dixy-skin-surface);
304
311
  }
312
+ :is(
313
+ .dixy-dialog-popup,
314
+ .dixy-alert-dialog-popup,
315
+ .dixy-drawer-popup,
316
+ .dixy-popover-popup,
317
+ .dixy-preview-card-popup,
318
+ .dixy-tooltip-popup,
319
+ .dixy-select-popup,
320
+ .dixy-combobox-popup,
321
+ .dixy-autocomplete-popup,
322
+ .dixy-menu-popup,
323
+ .dixy-context-menu-popup,
324
+ .dixy-navigation-menu-popup
325
+ )[data-dixy-skin="dixy/y2k-titanium"]:not(
326
+ [data-dixy-material-override]
327
+ ):not(:where([data-dixy-material-override]) *):not(
328
+ [data-variant="solid"]
329
+ ):not([data-variant="soft"]) {
330
+ background-color: color-mix(
331
+ in srgb,
332
+ var(--dixy-color-background-surface-raised) 94%,
333
+ var(--dixy-skin-surface)
334
+ );
335
+ }
305
336
  :is(
306
337
  .dixy-input,
307
338
  .dixy-textarea,
@@ -315,6 +346,11 @@
315
346
  )[data-dixy-skin="dixy/y2k-titanium"] {
316
347
  border-radius: calc(var(--dixy-radius-control) * 1);
317
348
  }
349
+ :is(.dixy-textarea)[data-dixy-skin="dixy/y2k-titanium"] {
350
+ border-radius: calc(
351
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
352
+ );
353
+ }
318
354
  :is(
319
355
  .dixy-input,
320
356
  .dixy-textarea,
@@ -329,7 +365,7 @@
329
365
  [data-dixy-material-override]
330
366
  ):not(:where([data-dixy-material-override]) *) {
331
367
  border-width: var(--dixy-input-border-width);
332
- border-color: var(--dixy-skin-edge);
368
+ border-color: var(--dixy-skin-field-edge);
333
369
  background-image: var(--dixy-skin-paint);
334
370
  background-color: var(--dixy-color-background-canvas);
335
371
  background-size:
@@ -339,6 +375,45 @@
339
375
  100% 100%;
340
376
  box-shadow: var(--dixy-skin-inset);
341
377
  }
378
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
379
+ skin's paint to that so its image and grain size always land together;
380
+ otherwise the material image is tiled at the grain size (stripes). */
381
+ :is(
382
+ .dixy-card,
383
+ .dixy-box,
384
+ .dixy-dialog-popup,
385
+ .dixy-alert-dialog-popup,
386
+ .dixy-drawer-popup,
387
+ .dixy-popover-popup,
388
+ .dixy-preview-card-popup,
389
+ .dixy-tooltip-popup,
390
+ .dixy-select-popup,
391
+ .dixy-combobox-popup,
392
+ .dixy-autocomplete-popup,
393
+ .dixy-menu-popup,
394
+ .dixy-context-menu-popup,
395
+ .dixy-navigation-menu-popup,
396
+ .dixy-toast-root,
397
+ .dixy-alert,
398
+ .dixy-list-box,
399
+ .dixy-calendar,
400
+ .dixy-range-calendar,
401
+ .dixy-input,
402
+ .dixy-textarea,
403
+ .dixy-native-select,
404
+ .dixy-select-trigger,
405
+ .dixy-input-group,
406
+ .dixy-combobox-input-group,
407
+ .dixy-autocomplete-input-group,
408
+ .dixy-number-field-group,
409
+ .dixy-otp-field-input
410
+ )[data-dixy-skin="dixy/y2k-titanium"]:not(
411
+ [data-dixy-material-override]
412
+ ):not(
413
+ :where([data-dixy-material-override]) *
414
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
415
+ background-image: var(--dixy-skin-paint);
416
+ }
342
417
  :is(.dixy-button)[data-dixy-skin="dixy/y2k-titanium"]:not(
343
418
  [data-dixy-material-override]
344
419
  ):not(:where([data-dixy-material-override]) *):is(
@@ -369,14 +444,19 @@
369
444
  border: 1px solid var(--dixy-skin-edge);
370
445
  box-shadow: var(--dixy-skin-inset);
371
446
  }
447
+ /* 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). */
372
448
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/y2k-titanium"]:not(
373
449
  [data-dixy-material-override]
374
450
  ):not(:where([data-dixy-material-override]) *) {
375
- background-image: var(--dixy-skin-finish);
376
451
  box-shadow: var(--dixy-skin-control-relief);
377
452
  border: 1px solid var(--dixy-skin-edge);
378
453
  }
379
- /* 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). */
454
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/y2k-titanium"]:not(
455
+ [data-dixy-material-override]
456
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
457
+ background-image: none;
458
+ }
459
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
380
460
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
381
461
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
382
462
  [data-dixy-material-override]
@@ -391,7 +471,7 @@
391
471
  [data-variant="solid"]
392
472
  )[data-pressed]:not([data-disabled]) {
393
473
  background-color: var(--dixy-color-background-surface-raised);
394
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
474
+ background-image: none;
395
475
  box-shadow: var(--dixy-skin-control-relief);
396
476
  border-color: var(--dixy-skin-edge);
397
477
  color: var(--dixy-color-text-primary);
@@ -877,16 +957,72 @@
877
957
  :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/y2k-titanium"] {
878
958
  border-radius: 0;
879
959
  --dixy-chrome-bar-radius: 0px;
880
- clip-path: polygon(
881
- 10px 0,
882
- calc(100% - 10px) 0,
883
- 100% 10px,
884
- 100% calc(100% - 10px),
885
- calc(100% - 10px) 100%,
886
- 10px 100%,
887
- 0 calc(100% - 10px),
888
- 0 10px
889
- );
960
+ }
961
+ @supports (corner-shape: bevel) {
962
+ .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
963
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/y2k-titanium"] {
964
+ border-radius: 10px;
965
+ corner-shape: bevel;
966
+ }
967
+ }
968
+ @supports not (corner-shape: bevel) {
969
+ .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
970
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/y2k-titanium"] {
971
+ clip-path: polygon(
972
+ 10px 0,
973
+ calc(100% - 10px) 0,
974
+ 100% 10px,
975
+ 100% calc(100% - 10px),
976
+ calc(100% - 10px) 100%,
977
+ 10px 100%,
978
+ 0 calc(100% - 10px),
979
+ 0 10px
980
+ );
981
+ }
982
+ .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
983
+ :is(
984
+ .dixy-card,
985
+ .dixy-dialog-popup
986
+ )[data-dixy-skin="dixy/y2k-titanium"]::after {
987
+ content: "";
988
+ position: absolute;
989
+ inset: calc(var(--dixy-skin-frame-width, 1px) * -1);
990
+ pointer-events: none;
991
+ z-index: 1;
992
+ background:
993
+ linear-gradient(
994
+ to bottom right,
995
+ transparent 50%,
996
+ var(--dixy-skin-edge) 50%
997
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
998
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
999
+ )
1000
+ top left/10px 10px no-repeat,
1001
+ linear-gradient(
1002
+ to bottom left,
1003
+ transparent 50%,
1004
+ var(--dixy-skin-edge) 50%
1005
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1006
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1007
+ )
1008
+ top right/10px 10px no-repeat,
1009
+ linear-gradient(
1010
+ to top right,
1011
+ transparent 50%,
1012
+ var(--dixy-skin-edge) 50%
1013
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1014
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1015
+ )
1016
+ bottom left/10px 10px no-repeat,
1017
+ linear-gradient(
1018
+ to top left,
1019
+ transparent 50%,
1020
+ var(--dixy-skin-edge) 50%
1021
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1022
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1023
+ )
1024
+ bottom right/10px 10px no-repeat;
1025
+ }
890
1026
  }
891
1027
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
892
1028
  :is(.dixy-card)[data-dixy-skin="dixy/y2k-titanium"]