@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
@@ -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,
@@ -284,7 +313,7 @@
284
313
  [data-dixy-material-override]
285
314
  ):not(:where([data-dixy-material-override]) *) {
286
315
  border-width: var(--dixy-input-border-width);
287
- border-color: var(--dixy-skin-edge);
316
+ border-color: var(--dixy-skin-field-edge);
288
317
  background-image: var(--dixy-skin-paint);
289
318
  background-color: var(--dixy-color-background-canvas);
290
319
  background-size:
@@ -294,6 +323,45 @@
294
323
  100% 100%;
295
324
  box-shadow: var(--dixy-skin-inset);
296
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
+ }
297
365
  :is(.dixy-button)[data-dixy-skin="dixy/material-light"]:not(
298
366
  [data-dixy-material-override]
299
367
  ):not(:where([data-dixy-material-override]) *):is(
@@ -324,14 +392,19 @@
324
392
  border: 1px solid var(--dixy-skin-edge);
325
393
  box-shadow: var(--dixy-skin-inset);
326
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). */
327
396
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/material-light"]:not(
328
397
  [data-dixy-material-override]
329
398
  ):not(:where([data-dixy-material-override]) *) {
330
- background-image: var(--dixy-skin-finish);
331
399
  box-shadow: var(--dixy-skin-control-relief);
332
400
  border: 1px solid var(--dixy-skin-edge);
333
401
  }
334
- /* 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. */
335
408
  .dixy-theme[data-dixy-skin="dixy/material-light"]
336
409
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
337
410
  [data-dixy-material-override]
@@ -346,7 +419,7 @@
346
419
  [data-variant="solid"]
347
420
  )[data-pressed]:not([data-disabled]) {
348
421
  background-color: var(--dixy-color-background-surface-raised);
349
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
422
+ background-image: none;
350
423
  box-shadow: var(--dixy-skin-control-relief);
351
424
  border-color: var(--dixy-skin-edge);
352
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,
@@ -303,7 +332,7 @@
303
332
  [data-dixy-material-override]
304
333
  ):not(:where([data-dixy-material-override]) *) {
305
334
  border-width: var(--dixy-input-border-width);
306
- border-color: var(--dixy-skin-edge);
335
+ border-color: var(--dixy-skin-field-edge);
307
336
  background-image: var(--dixy-skin-paint);
308
337
  background-color: var(--dixy-color-background-canvas);
309
338
  background-size:
@@ -313,6 +342,45 @@
313
342
  100% 100%;
314
343
  box-shadow: var(--dixy-skin-inset);
315
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
+ }
316
384
  :is(.dixy-button)[data-dixy-skin="dixy/neon-night-market"]:not(
317
385
  [data-dixy-material-override]
318
386
  ):not(:where([data-dixy-material-override]) *):is(
@@ -343,14 +411,19 @@
343
411
  border: 1px solid var(--dixy-skin-edge);
344
412
  box-shadow: var(--dixy-skin-inset);
345
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). */
346
415
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/neon-night-market"]:not(
347
416
  [data-dixy-material-override]
348
417
  ):not(:where([data-dixy-material-override]) *) {
349
- background-image: var(--dixy-skin-finish);
350
418
  box-shadow: var(--dixy-skin-control-relief);
351
419
  border: 1px solid var(--dixy-skin-edge);
352
420
  }
353
- /* 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. */
354
427
  .dixy-theme[data-dixy-skin="dixy/neon-night-market"]
355
428
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
356
429
  [data-dixy-material-override]
@@ -365,7 +438,7 @@
365
438
  [data-variant="solid"]
366
439
  )[data-pressed]:not([data-disabled]) {
367
440
  background-color: var(--dixy-color-background-surface-raised);
368
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
441
+ background-image: none;
369
442
  box-shadow: var(--dixy-skin-control-relief);
370
443
  border-color: var(--dixy-skin-edge);
371
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,
@@ -331,7 +362,7 @@
331
362
  [data-dixy-material-override]
332
363
  ):not(:where([data-dixy-material-override]) *) {
333
364
  border-width: var(--dixy-input-border-width);
334
- border-color: var(--dixy-skin-edge);
365
+ border-color: var(--dixy-skin-field-edge);
335
366
  background-image: var(--dixy-skin-paint);
336
367
  background-color: var(--dixy-color-background-canvas);
337
368
  background-size:
@@ -341,6 +372,45 @@
341
372
  100% 100%;
342
373
  box-shadow: var(--dixy-skin-inset);
343
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
+ }
344
414
  :is(.dixy-button)[data-dixy-skin="dixy/ocean-depths"]:not(
345
415
  [data-dixy-material-override]
346
416
  ):not(:where([data-dixy-material-override]) *):is(
@@ -371,14 +441,19 @@
371
441
  border: 1px solid var(--dixy-skin-edge);
372
442
  box-shadow: var(--dixy-skin-inset);
373
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). */
374
445
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/ocean-depths"]:not(
375
446
  [data-dixy-material-override]
376
447
  ):not(:where([data-dixy-material-override]) *) {
377
- background-image: var(--dixy-skin-finish);
378
448
  box-shadow: var(--dixy-skin-control-relief);
379
449
  border: 1px solid var(--dixy-skin-edge);
380
450
  }
381
- /* 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. */
382
457
  .dixy-theme[data-dixy-skin="dixy/ocean-depths"]
383
458
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
384
459
  [data-dixy-material-override]
@@ -393,7 +468,7 @@
393
468
  [data-variant="solid"]
394
469
  )[data-pressed]:not([data-disabled]) {
395
470
  background-color: var(--dixy-color-background-surface-raised);
396
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
471
+ background-image: none;
397
472
  box-shadow: var(--dixy-skin-control-relief);
398
473
  border-color: var(--dixy-skin-edge);
399
474
  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: #0a8aa366;
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
  --dixy-organic-density: 55;
43
48
  --dixy-organic-cornerDensity: 80;
44
49
  --dixy-organic-canopyDepth: 40;
@@ -127,7 +132,6 @@
127
132
  --dixy-organic-b: #2bb5c8;
128
133
  --dixy-organic-c: #ff8a4c;
129
134
  --dixy-organic-d: #cdf9ff;
130
- --dixy-skin-selected: var(--dixy-skin-finish);
131
135
  --dixy-color-text-primary: color-mix(
132
136
  in srgb,
133
137
  var(--dixy-color-base-12) 65%,
@@ -145,6 +149,7 @@
145
149
  #06161e
146
150
  );
147
151
  }
152
+
148
153
  .dixy-theme[data-dixy-skin="dixy/orbital-hud"][data-relief="2"] {
149
154
  --dixy-skin-shadow:
150
155
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -278,6 +283,28 @@
278
283
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
279
284
  background-color: var(--dixy-skin-surface);
280
285
  }
286
+ :is(
287
+ .dixy-dialog-popup,
288
+ .dixy-alert-dialog-popup,
289
+ .dixy-drawer-popup,
290
+ .dixy-popover-popup,
291
+ .dixy-preview-card-popup,
292
+ .dixy-tooltip-popup,
293
+ .dixy-select-popup,
294
+ .dixy-combobox-popup,
295
+ .dixy-autocomplete-popup,
296
+ .dixy-menu-popup,
297
+ .dixy-context-menu-popup,
298
+ .dixy-navigation-menu-popup
299
+ )[data-dixy-skin="dixy/orbital-hud"]:not([data-dixy-material-override]):not(
300
+ :where([data-dixy-material-override]) *
301
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
302
+ background-color: color-mix(
303
+ in srgb,
304
+ var(--dixy-color-background-surface-raised) 94%,
305
+ var(--dixy-skin-surface)
306
+ );
307
+ }
281
308
  :is(
282
309
  .dixy-input,
283
310
  .dixy-textarea,
@@ -310,7 +337,7 @@
310
337
  :where([data-dixy-material-override]) *
311
338
  ) {
312
339
  border-width: var(--dixy-input-border-width);
313
- border-color: var(--dixy-skin-edge);
340
+ border-color: var(--dixy-skin-field-edge);
314
341
  background-image: var(--dixy-skin-paint);
315
342
  background-color: var(--dixy-color-background-canvas);
316
343
  background-size:
@@ -320,6 +347,43 @@
320
347
  100% 100%;
321
348
  box-shadow: var(--dixy-skin-inset);
322
349
  }
350
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
351
+ skin's paint to that so its image and grain size always land together;
352
+ otherwise the material image is tiled at the grain size (stripes). */
353
+ :is(
354
+ .dixy-card,
355
+ .dixy-box,
356
+ .dixy-dialog-popup,
357
+ .dixy-alert-dialog-popup,
358
+ .dixy-drawer-popup,
359
+ .dixy-popover-popup,
360
+ .dixy-preview-card-popup,
361
+ .dixy-tooltip-popup,
362
+ .dixy-select-popup,
363
+ .dixy-combobox-popup,
364
+ .dixy-autocomplete-popup,
365
+ .dixy-menu-popup,
366
+ .dixy-context-menu-popup,
367
+ .dixy-navigation-menu-popup,
368
+ .dixy-toast-root,
369
+ .dixy-alert,
370
+ .dixy-list-box,
371
+ .dixy-calendar,
372
+ .dixy-range-calendar,
373
+ .dixy-input,
374
+ .dixy-textarea,
375
+ .dixy-native-select,
376
+ .dixy-select-trigger,
377
+ .dixy-input-group,
378
+ .dixy-combobox-input-group,
379
+ .dixy-autocomplete-input-group,
380
+ .dixy-number-field-group,
381
+ .dixy-otp-field-input
382
+ )[data-dixy-skin="dixy/orbital-hud"]:not([data-dixy-material-override]):not(
383
+ :where([data-dixy-material-override]) *
384
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
385
+ background-image: var(--dixy-skin-paint);
386
+ }
323
387
  :is(.dixy-button)[data-dixy-skin="dixy/orbital-hud"]:not(
324
388
  [data-dixy-material-override]
325
389
  ):not(:where([data-dixy-material-override]) *):is(
@@ -350,14 +414,19 @@
350
414
  border: 1px solid var(--dixy-skin-edge);
351
415
  box-shadow: var(--dixy-skin-inset);
352
416
  }
417
+ /* 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). */
353
418
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/orbital-hud"]:not(
354
419
  [data-dixy-material-override]
355
420
  ):not(:where([data-dixy-material-override]) *) {
356
- background-image: var(--dixy-skin-finish);
357
421
  box-shadow: var(--dixy-skin-control-relief);
358
422
  border: 1px solid var(--dixy-skin-edge);
359
423
  }
360
- /* 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). */
424
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/orbital-hud"]:not(
425
+ [data-dixy-material-override]
426
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
427
+ background-image: none;
428
+ }
429
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
361
430
  .dixy-theme[data-dixy-skin="dixy/orbital-hud"]
362
431
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
363
432
  [data-dixy-material-override]
@@ -372,7 +441,7 @@
372
441
  [data-variant="solid"]
373
442
  )[data-pressed]:not([data-disabled]) {
374
443
  background-color: var(--dixy-color-background-surface-raised);
375
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
444
+ background-image: none;
376
445
  box-shadow: var(--dixy-skin-control-relief);
377
446
  border-color: var(--dixy-skin-edge);
378
447
  color: var(--dixy-color-text-primary);
@@ -876,16 +945,72 @@
876
945
  :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/orbital-hud"] {
877
946
  border-radius: 0;
878
947
  --dixy-chrome-bar-radius: 0px;
879
- clip-path: polygon(
880
- 10px 0,
881
- calc(100% - 10px) 0,
882
- 100% 10px,
883
- 100% calc(100% - 10px),
884
- calc(100% - 10px) 100%,
885
- 10px 100%,
886
- 0 calc(100% - 10px),
887
- 0 10px
888
- );
948
+ }
949
+ @supports (corner-shape: bevel) {
950
+ .dixy-theme[data-dixy-skin="dixy/orbital-hud"]
951
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/orbital-hud"] {
952
+ border-radius: 10px;
953
+ corner-shape: bevel;
954
+ }
955
+ }
956
+ @supports not (corner-shape: bevel) {
957
+ .dixy-theme[data-dixy-skin="dixy/orbital-hud"]
958
+ :is(.dixy-card, .dixy-dialog-popup)[data-dixy-skin="dixy/orbital-hud"] {
959
+ clip-path: polygon(
960
+ 10px 0,
961
+ calc(100% - 10px) 0,
962
+ 100% 10px,
963
+ 100% calc(100% - 10px),
964
+ calc(100% - 10px) 100%,
965
+ 10px 100%,
966
+ 0 calc(100% - 10px),
967
+ 0 10px
968
+ );
969
+ }
970
+ .dixy-theme[data-dixy-skin="dixy/orbital-hud"]
971
+ :is(
972
+ .dixy-card,
973
+ .dixy-dialog-popup
974
+ )[data-dixy-skin="dixy/orbital-hud"]::after {
975
+ content: "";
976
+ position: absolute;
977
+ inset: calc(var(--dixy-skin-frame-width, 1px) * -1);
978
+ pointer-events: none;
979
+ z-index: 1;
980
+ background:
981
+ linear-gradient(
982
+ to bottom right,
983
+ transparent 50%,
984
+ var(--dixy-skin-edge) 50%
985
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
986
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
987
+ )
988
+ top left/10px 10px no-repeat,
989
+ linear-gradient(
990
+ to bottom left,
991
+ transparent 50%,
992
+ var(--dixy-skin-edge) 50%
993
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
994
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
995
+ )
996
+ top right/10px 10px no-repeat,
997
+ linear-gradient(
998
+ to top right,
999
+ transparent 50%,
1000
+ var(--dixy-skin-edge) 50%
1001
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1002
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1003
+ )
1004
+ bottom left/10px 10px no-repeat,
1005
+ linear-gradient(
1006
+ to top left,
1007
+ transparent 50%,
1008
+ var(--dixy-skin-edge) 50%
1009
+ calc(50% + var(--dixy-skin-frame-width, 1px)),
1010
+ transparent calc(50% + var(--dixy-skin-frame-width, 1px))
1011
+ )
1012
+ bottom right/10px 10px no-repeat;
1013
+ }
889
1014
  }
890
1015
  .dixy-theme[data-dixy-skin="dixy/orbital-hud"]
891
1016
  :is(.dixy-card)[data-dixy-skin="dixy/orbital-hud"]
@@ -24,6 +24,12 @@ export declare const paintPicado: OrganicPainter;
24
24
  export declare const paintGulal: OrganicPainter;
25
25
  export declare const paintKnit: OrganicPainter;
26
26
  export declare const paintLiquid: OrganicPainter;
27
+ /** A striped sun setting behind the top edge and a horizon grid under the card. */
28
+ export declare const paintSunset: OrganicPainter;
29
+ /** A blinking menu cursor beside the window and a sparkle on one corner. */
30
+ export declare const paintMenuCursor: OrganicPainter;
31
+ /** Chasing marquee bulbs over the top edge and credits under the card. */
32
+ export declare const paintMarquee: OrganicPainter;
27
33
  export declare const launchPainters: {
28
34
  readonly crt: OrganicPainter;
29
35
  readonly panes: OrganicPainter;
@@ -40,4 +46,7 @@ export declare const launchPainters: {
40
46
  readonly gulal: OrganicPainter;
41
47
  readonly knit: OrganicPainter;
42
48
  readonly liquid: OrganicPainter;
49
+ readonly sunset: OrganicPainter;
50
+ readonly menu: OrganicPainter;
51
+ readonly marquee: OrganicPainter;
43
52
  };