@dixy-ui/themes 0.1.0-beta.3 → 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 (91) hide show
  1. package/dist/ansi-panes.css +74 -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 +74 -5
  6. package/dist/atomic-lounge.css +78 -5
  7. package/dist/authoring.d.ts +8 -8
  8. package/dist/azulejo-tile.css +78 -5
  9. package/dist/blueprint.css +74 -5
  10. package/dist/brutalist-concrete.css +78 -5
  11. package/dist/bytes.json +97 -62
  12. package/dist/candy-clay.css +80 -5
  13. package/dist/catalog.d.ts +294 -0
  14. package/dist/catalog.js +301 -0
  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 +22 -5
  19. package/dist/dispatch.css +731 -0
  20. package/dist/diwali-lights.css +78 -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 +140 -15
  28. package/dist/glass-ui.css +74 -5
  29. package/dist/holi-colours.css +78 -5
  30. package/dist/ledger.css +566 -0
  31. package/dist/living-forest.css +80 -5
  32. package/dist/mainframe.css +764 -0
  33. package/dist/manifests.d.ts +144 -144
  34. package/dist/material-light.css +78 -5
  35. package/dist/neon-night-market.css +78 -5
  36. package/dist/ocean-depths.css +80 -5
  37. package/dist/orbital-hud.css +140 -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 +78 -5
  44. package/dist/phosphor-terminal.css +78 -5
  45. package/dist/prism-glass.css +74 -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 +74 -5
  50. package/dist/riso-zine.css +74 -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 +74 -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 +74 -5
  71. package/dist/starters-launch.d.ts +24 -0
  72. package/dist/starters-launch.js +343 -0
  73. package/dist/studio-hardware.css +78 -5
  74. package/dist/sumi-ink.css +74 -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 +144 -15
  79. package/dist/tactile-atelier.css +80 -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 +78 -5
  88. package/dist/winamp-signal.css +78 -5
  89. package/dist/y2k-titanium.css +146 -15
  90. package/dist/yule-knit.css +74 -5
  91. 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)),
@@ -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,
@@ -299,7 +328,7 @@
299
328
  [data-dixy-material-override]
300
329
  ):not(:where([data-dixy-material-override]) *) {
301
330
  border-width: var(--dixy-input-border-width);
302
- border-color: var(--dixy-skin-edge);
331
+ border-color: var(--dixy-skin-field-edge);
303
332
  background-image: var(--dixy-skin-paint);
304
333
  background-color: var(--dixy-color-background-canvas);
305
334
  background-size:
@@ -309,6 +338,45 @@
309
338
  100% 100%;
310
339
  box-shadow: var(--dixy-skin-inset);
311
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
+ }
312
380
  :is(.dixy-button)[data-dixy-skin="dixy/tokyo-transit"]:not(
313
381
  [data-dixy-material-override]
314
382
  ):not(:where([data-dixy-material-override]) *):is(
@@ -339,14 +407,19 @@
339
407
  border: 1px solid var(--dixy-skin-edge);
340
408
  box-shadow: var(--dixy-skin-inset);
341
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). */
342
411
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/tokyo-transit"]:not(
343
412
  [data-dixy-material-override]
344
413
  ):not(:where([data-dixy-material-override]) *) {
345
- background-image: var(--dixy-skin-finish);
346
414
  box-shadow: var(--dixy-skin-control-relief);
347
415
  border: 1px solid var(--dixy-skin-edge);
348
416
  }
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). */
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. */
350
423
  .dixy-theme[data-dixy-skin="dixy/tokyo-transit"]
351
424
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
352
425
  [data-dixy-material-override]
@@ -361,7 +434,7 @@
361
434
  [data-variant="solid"]
362
435
  )[data-pressed]:not([data-disabled]) {
363
436
  background-color: var(--dixy-color-background-surface-raised);
364
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
437
+ background-image: none;
365
438
  box-shadow: var(--dixy-skin-control-relief);
366
439
  border-color: var(--dixy-skin-edge);
367
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,
@@ -289,7 +318,7 @@
289
318
  [data-dixy-material-override]
290
319
  ):not(:where([data-dixy-material-override]) *) {
291
320
  border-width: var(--dixy-input-border-width);
292
- border-color: var(--dixy-skin-edge);
321
+ border-color: var(--dixy-skin-field-edge);
293
322
  background-image: var(--dixy-skin-paint);
294
323
  background-color: var(--dixy-color-background-canvas);
295
324
  background-size:
@@ -299,6 +328,45 @@
299
328
  100% 100%;
300
329
  box-shadow: var(--dixy-skin-inset);
301
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
+ }
302
370
  :is(.dixy-button)[data-dixy-skin="dixy/winamp-signal"]:not(
303
371
  [data-dixy-material-override]
304
372
  ):not(:where([data-dixy-material-override]) *):is(
@@ -336,14 +404,19 @@
336
404
  border: 1px solid var(--dixy-skin-edge);
337
405
  box-shadow: var(--dixy-skin-inset);
338
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). */
339
408
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/winamp-signal"]:not(
340
409
  [data-dixy-material-override]
341
410
  ):not(:where([data-dixy-material-override]) *) {
342
- background-image: var(--dixy-skin-finish);
343
411
  box-shadow: var(--dixy-skin-control-relief);
344
412
  border: 1px solid var(--dixy-skin-edge);
345
413
  }
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). */
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. */
347
420
  .dixy-theme[data-dixy-skin="dixy/winamp-signal"]
348
421
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
349
422
  [data-dixy-material-override]
@@ -358,7 +431,7 @@
358
431
  [data-variant="solid"]
359
432
  )[data-pressed]:not([data-disabled]) {
360
433
  background-color: var(--dixy-color-background-surface-raised);
361
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
434
+ background-image: none;
362
435
  box-shadow: var(--dixy-skin-control-relief);
363
436
  border-color: var(--dixy-skin-edge);
364
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,
@@ -334,7 +365,7 @@
334
365
  [data-dixy-material-override]
335
366
  ):not(:where([data-dixy-material-override]) *) {
336
367
  border-width: var(--dixy-input-border-width);
337
- border-color: var(--dixy-skin-edge);
368
+ border-color: var(--dixy-skin-field-edge);
338
369
  background-image: var(--dixy-skin-paint);
339
370
  background-color: var(--dixy-color-background-canvas);
340
371
  background-size:
@@ -344,6 +375,45 @@
344
375
  100% 100%;
345
376
  box-shadow: var(--dixy-skin-inset);
346
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
+ }
347
417
  :is(.dixy-button)[data-dixy-skin="dixy/y2k-titanium"]:not(
348
418
  [data-dixy-material-override]
349
419
  ):not(:where([data-dixy-material-override]) *):is(
@@ -374,14 +444,19 @@
374
444
  border: 1px solid var(--dixy-skin-edge);
375
445
  box-shadow: var(--dixy-skin-inset);
376
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). */
377
448
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/y2k-titanium"]:not(
378
449
  [data-dixy-material-override]
379
450
  ):not(:where([data-dixy-material-override]) *) {
380
- background-image: var(--dixy-skin-finish);
381
451
  box-shadow: var(--dixy-skin-control-relief);
382
452
  border: 1px solid var(--dixy-skin-edge);
383
453
  }
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). */
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. */
385
460
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
386
461
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
387
462
  [data-dixy-material-override]
@@ -396,7 +471,7 @@
396
471
  [data-variant="solid"]
397
472
  )[data-pressed]:not([data-disabled]) {
398
473
  background-color: var(--dixy-color-background-surface-raised);
399
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
474
+ background-image: none;
400
475
  box-shadow: var(--dixy-skin-control-relief);
401
476
  border-color: var(--dixy-skin-edge);
402
477
  color: var(--dixy-color-text-primary);
@@ -882,16 +957,72 @@
882
957
  :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/y2k-titanium"] {
883
958
  border-radius: 0;
884
959
  --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
- );
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
+ }
895
1026
  }
896
1027
  .dixy-theme[data-dixy-skin="dixy/y2k-titanium"]
897
1028
  :is(.dixy-card)[data-dixy-skin="dixy/y2k-titanium"]
@@ -32,6 +32,11 @@
32
32
  --dixy-font-title-sm-family:
33
33
  "Fraunces Variable", "Fraunces", ui-serif, Georgia, serif;
34
34
  --dixy-skin-edge: #e2d4bd;
35
+ --dixy-skin-field-edge: color-mix(
36
+ in oklab,
37
+ var(--dixy-color-base-9) 50%,
38
+ var(--dixy-color-base-8)
39
+ );
35
40
  --dixy-organic-density: 50;
36
41
  --dixy-organic-cornerDensity: 60;
37
42
  --dixy-organic-canopyDepth: 40;
@@ -110,7 +115,6 @@
110
115
  --dixy-organic-b: #e5534b;
111
116
  --dixy-organic-c: #16261c;
112
117
  --dixy-organic-d: #9fb8a4;
113
- --dixy-skin-selected: var(--dixy-skin-finish);
114
118
  --dixy-color-text-primary: color-mix(
115
119
  in srgb,
116
120
  var(--dixy-color-base-12) 75%,
@@ -128,6 +132,7 @@
128
132
  #16261c
129
133
  );
130
134
  }
135
+
131
136
  .dixy-theme[data-dixy-skin="dixy/yule-knit"][data-relief="2"] {
132
137
  --dixy-skin-shadow:
133
138
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -261,6 +266,28 @@
261
266
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
262
267
  background-color: var(--dixy-skin-surface);
263
268
  }
269
+ :is(
270
+ .dixy-dialog-popup,
271
+ .dixy-alert-dialog-popup,
272
+ .dixy-drawer-popup,
273
+ .dixy-popover-popup,
274
+ .dixy-preview-card-popup,
275
+ .dixy-tooltip-popup,
276
+ .dixy-select-popup,
277
+ .dixy-combobox-popup,
278
+ .dixy-autocomplete-popup,
279
+ .dixy-menu-popup,
280
+ .dixy-context-menu-popup,
281
+ .dixy-navigation-menu-popup
282
+ )[data-dixy-skin="dixy/yule-knit"]:not([data-dixy-material-override]):not(
283
+ :where([data-dixy-material-override]) *
284
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
285
+ background-color: color-mix(
286
+ in srgb,
287
+ var(--dixy-color-background-surface-raised) 94%,
288
+ var(--dixy-skin-surface)
289
+ );
290
+ }
264
291
  :is(
265
292
  .dixy-input,
266
293
  .dixy-textarea,
@@ -293,7 +320,7 @@
293
320
  :where([data-dixy-material-override]) *
294
321
  ) {
295
322
  border-width: var(--dixy-input-border-width);
296
- border-color: var(--dixy-skin-edge);
323
+ border-color: var(--dixy-skin-field-edge);
297
324
  background-image: var(--dixy-skin-paint);
298
325
  background-color: var(--dixy-color-background-canvas);
299
326
  background-size:
@@ -303,6 +330,43 @@
303
330
  100% 100%;
304
331
  box-shadow: var(--dixy-skin-inset);
305
332
  }
333
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
334
+ skin's paint to that so its image and grain size always land together;
335
+ otherwise the material image is tiled at the grain size (stripes). */
336
+ :is(
337
+ .dixy-card,
338
+ .dixy-box,
339
+ .dixy-dialog-popup,
340
+ .dixy-alert-dialog-popup,
341
+ .dixy-drawer-popup,
342
+ .dixy-popover-popup,
343
+ .dixy-preview-card-popup,
344
+ .dixy-tooltip-popup,
345
+ .dixy-select-popup,
346
+ .dixy-combobox-popup,
347
+ .dixy-autocomplete-popup,
348
+ .dixy-menu-popup,
349
+ .dixy-context-menu-popup,
350
+ .dixy-navigation-menu-popup,
351
+ .dixy-toast-root,
352
+ .dixy-alert,
353
+ .dixy-list-box,
354
+ .dixy-calendar,
355
+ .dixy-range-calendar,
356
+ .dixy-input,
357
+ .dixy-textarea,
358
+ .dixy-native-select,
359
+ .dixy-select-trigger,
360
+ .dixy-input-group,
361
+ .dixy-combobox-input-group,
362
+ .dixy-autocomplete-input-group,
363
+ .dixy-number-field-group,
364
+ .dixy-otp-field-input
365
+ )[data-dixy-skin="dixy/yule-knit"]:not([data-dixy-material-override]):not(
366
+ :where([data-dixy-material-override]) *
367
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
368
+ background-image: var(--dixy-skin-paint);
369
+ }
306
370
  :is(.dixy-button)[data-dixy-skin="dixy/yule-knit"]:not(
307
371
  [data-dixy-material-override]
308
372
  ):not(:where([data-dixy-material-override]) *):is(
@@ -333,14 +397,19 @@
333
397
  border: 1px solid var(--dixy-skin-edge);
334
398
  box-shadow: var(--dixy-skin-inset);
335
399
  }
400
+ /* 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). */
336
401
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/yule-knit"]:not(
337
402
  [data-dixy-material-override]
338
403
  ):not(:where([data-dixy-material-override]) *) {
339
- background-image: var(--dixy-skin-finish);
340
404
  box-shadow: var(--dixy-skin-control-relief);
341
405
  border: 1px solid var(--dixy-skin-edge);
342
406
  }
343
- /* 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). */
407
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/yule-knit"]:not(
408
+ [data-dixy-material-override]
409
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
410
+ background-image: none;
411
+ }
412
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
344
413
  .dixy-theme[data-dixy-skin="dixy/yule-knit"]
345
414
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
346
415
  [data-dixy-material-override]
@@ -355,7 +424,7 @@
355
424
  [data-variant="solid"]
356
425
  )[data-pressed]:not([data-disabled]) {
357
426
  background-color: var(--dixy-color-background-surface-raised);
358
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
427
+ background-image: none;
359
428
  box-shadow: var(--dixy-skin-control-relief);
360
429
  border-color: var(--dixy-skin-edge);
361
430
  color: var(--dixy-color-text-primary);