@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
package/dist/art-deco.css CHANGED
@@ -33,6 +33,11 @@
33
33
  --dixy-font-title-sm-family:
34
34
  "Poiret One", "Josefin Sans", "Futura", ui-sans-serif, sans-serif;
35
35
  --dixy-skin-edge: #c9a95c;
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
  --dixy-organic-density: 45;
37
42
  --dixy-organic-cornerDensity: 76;
38
43
  --dixy-organic-canopyDepth: 30;
@@ -129,7 +134,6 @@
129
134
  --dixy-organic-b: #d8b972;
130
135
  --dixy-organic-c: #f1e4bc;
131
136
  --dixy-organic-d: #77663a;
132
- --dixy-skin-selected: var(--dixy-skin-finish);
133
137
  --dixy-skin-edge: #8a7240;
134
138
  --dixy-skin-surface: color-mix(
135
139
  in srgb,
@@ -142,6 +146,7 @@
142
146
  #15130f
143
147
  );
144
148
  }
149
+
145
150
  .dixy-theme[data-dixy-skin="dixy/art-deco"][data-relief="2"] {
146
151
  --dixy-skin-shadow:
147
152
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -275,6 +280,28 @@
275
280
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
276
281
  background-color: var(--dixy-skin-surface);
277
282
  }
283
+ :is(
284
+ .dixy-dialog-popup,
285
+ .dixy-alert-dialog-popup,
286
+ .dixy-drawer-popup,
287
+ .dixy-popover-popup,
288
+ .dixy-preview-card-popup,
289
+ .dixy-tooltip-popup,
290
+ .dixy-select-popup,
291
+ .dixy-combobox-popup,
292
+ .dixy-autocomplete-popup,
293
+ .dixy-menu-popup,
294
+ .dixy-context-menu-popup,
295
+ .dixy-navigation-menu-popup
296
+ )[data-dixy-skin="dixy/art-deco"]:not([data-dixy-material-override]):not(
297
+ :where([data-dixy-material-override]) *
298
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
299
+ background-color: color-mix(
300
+ in srgb,
301
+ var(--dixy-color-background-surface-raised) 94%,
302
+ var(--dixy-skin-surface)
303
+ );
304
+ }
278
305
  :is(
279
306
  .dixy-input,
280
307
  .dixy-textarea,
@@ -288,6 +315,11 @@
288
315
  )[data-dixy-skin="dixy/art-deco"] {
289
316
  border-radius: calc(var(--dixy-radius-control) * 1);
290
317
  }
318
+ :is(.dixy-textarea)[data-dixy-skin="dixy/art-deco"] {
319
+ border-radius: calc(
320
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
321
+ );
322
+ }
291
323
  :is(
292
324
  .dixy-input,
293
325
  .dixy-textarea,
@@ -302,7 +334,7 @@
302
334
  :where([data-dixy-material-override]) *
303
335
  ) {
304
336
  border-width: var(--dixy-input-border-width);
305
- border-color: var(--dixy-skin-edge);
337
+ border-color: var(--dixy-skin-field-edge);
306
338
  background-image: var(--dixy-skin-paint);
307
339
  background-color: var(--dixy-color-background-canvas);
308
340
  background-size:
@@ -312,6 +344,43 @@
312
344
  100% 100%;
313
345
  box-shadow: var(--dixy-skin-inset);
314
346
  }
347
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
348
+ skin's paint to that so its image and grain size always land together;
349
+ otherwise the material image is tiled at the grain size (stripes). */
350
+ :is(
351
+ .dixy-card,
352
+ .dixy-box,
353
+ .dixy-dialog-popup,
354
+ .dixy-alert-dialog-popup,
355
+ .dixy-drawer-popup,
356
+ .dixy-popover-popup,
357
+ .dixy-preview-card-popup,
358
+ .dixy-tooltip-popup,
359
+ .dixy-select-popup,
360
+ .dixy-combobox-popup,
361
+ .dixy-autocomplete-popup,
362
+ .dixy-menu-popup,
363
+ .dixy-context-menu-popup,
364
+ .dixy-navigation-menu-popup,
365
+ .dixy-toast-root,
366
+ .dixy-alert,
367
+ .dixy-list-box,
368
+ .dixy-calendar,
369
+ .dixy-range-calendar,
370
+ .dixy-input,
371
+ .dixy-textarea,
372
+ .dixy-native-select,
373
+ .dixy-select-trigger,
374
+ .dixy-input-group,
375
+ .dixy-combobox-input-group,
376
+ .dixy-autocomplete-input-group,
377
+ .dixy-number-field-group,
378
+ .dixy-otp-field-input
379
+ )[data-dixy-skin="dixy/art-deco"]:not([data-dixy-material-override]):not(
380
+ :where([data-dixy-material-override]) *
381
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
382
+ background-image: var(--dixy-skin-paint);
383
+ }
315
384
  :is(.dixy-button)[data-dixy-skin="dixy/art-deco"]:not(
316
385
  [data-dixy-material-override]
317
386
  ):not(:where([data-dixy-material-override]) *):is(
@@ -342,14 +411,19 @@
342
411
  border: 1px solid var(--dixy-skin-edge);
343
412
  box-shadow: var(--dixy-skin-inset);
344
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). */
345
415
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/art-deco"]:not(
346
416
  [data-dixy-material-override]
347
417
  ):not(:where([data-dixy-material-override]) *) {
348
- background-image: var(--dixy-skin-finish);
349
418
  box-shadow: var(--dixy-skin-control-relief);
350
419
  border: 1px solid var(--dixy-skin-edge);
351
420
  }
352
- /* 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/art-deco"]: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. */
353
427
  .dixy-theme[data-dixy-skin="dixy/art-deco"]
354
428
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
355
429
  [data-dixy-material-override]
@@ -364,7 +438,7 @@
364
438
  [data-variant="solid"]
365
439
  )[data-pressed]:not([data-disabled]) {
366
440
  background-color: var(--dixy-color-background-surface-raised);
367
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
441
+ background-image: none;
368
442
  box-shadow: var(--dixy-skin-control-relief);
369
443
  border-color: var(--dixy-skin-edge);
370
444
  color: var(--dixy-color-text-primary);
@@ -42,6 +42,11 @@
42
42
  "Fredoka Variable", "Fredoka", ui-rounded, "SF Pro Rounded", "Nunito",
43
43
  sans-serif;
44
44
  --dixy-skin-edge: #e7d3a8;
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: 70;
47
52
  --dixy-organic-canopyDepth: 40;
@@ -117,7 +122,6 @@
117
122
  --dixy-organic-b: #4cc3b3;
118
123
  --dixy-organic-c: #ef8a6f;
119
124
  --dixy-organic-d: #f6ecd6;
120
- --dixy-skin-selected: var(--dixy-skin-finish);
121
125
  --dixy-color-text-primary: color-mix(
122
126
  in srgb,
123
127
  var(--dixy-color-base-12) 80%,
@@ -135,6 +139,7 @@
135
139
  #1f2a2e
136
140
  );
137
141
  }
142
+
138
143
  .dixy-theme[data-dixy-skin="dixy/atomic-lounge"][data-relief="2"] {
139
144
  --dixy-skin-shadow:
140
145
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -270,6 +275,30 @@
270
275
  ):not([data-variant="soft"]) {
271
276
  background-color: var(--dixy-skin-surface);
272
277
  }
278
+ :is(
279
+ .dixy-dialog-popup,
280
+ .dixy-alert-dialog-popup,
281
+ .dixy-drawer-popup,
282
+ .dixy-popover-popup,
283
+ .dixy-preview-card-popup,
284
+ .dixy-tooltip-popup,
285
+ .dixy-select-popup,
286
+ .dixy-combobox-popup,
287
+ .dixy-autocomplete-popup,
288
+ .dixy-menu-popup,
289
+ .dixy-context-menu-popup,
290
+ .dixy-navigation-menu-popup
291
+ )[data-dixy-skin="dixy/atomic-lounge"]:not(
292
+ [data-dixy-material-override]
293
+ ):not(:where([data-dixy-material-override]) *):not(
294
+ [data-variant="solid"]
295
+ ):not([data-variant="soft"]) {
296
+ background-color: color-mix(
297
+ in srgb,
298
+ var(--dixy-color-background-surface-raised) 94%,
299
+ var(--dixy-skin-surface)
300
+ );
301
+ }
273
302
  :is(
274
303
  .dixy-input,
275
304
  .dixy-textarea,
@@ -283,6 +312,11 @@
283
312
  )[data-dixy-skin="dixy/atomic-lounge"] {
284
313
  border-radius: calc(var(--dixy-radius-control) * 1);
285
314
  }
315
+ :is(.dixy-textarea)[data-dixy-skin="dixy/atomic-lounge"] {
316
+ border-radius: calc(
317
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
318
+ );
319
+ }
286
320
  :is(
287
321
  .dixy-input,
288
322
  .dixy-textarea,
@@ -297,7 +331,7 @@
297
331
  [data-dixy-material-override]
298
332
  ):not(:where([data-dixy-material-override]) *) {
299
333
  border-width: var(--dixy-input-border-width);
300
- border-color: var(--dixy-skin-edge);
334
+ border-color: var(--dixy-skin-field-edge);
301
335
  background-image: var(--dixy-skin-paint);
302
336
  background-color: var(--dixy-color-background-canvas);
303
337
  background-size:
@@ -307,6 +341,45 @@
307
341
  100% 100%;
308
342
  box-shadow: var(--dixy-skin-inset);
309
343
  }
344
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
345
+ skin's paint to that so its image and grain size always land together;
346
+ otherwise the material image is tiled at the grain size (stripes). */
347
+ :is(
348
+ .dixy-card,
349
+ .dixy-box,
350
+ .dixy-dialog-popup,
351
+ .dixy-alert-dialog-popup,
352
+ .dixy-drawer-popup,
353
+ .dixy-popover-popup,
354
+ .dixy-preview-card-popup,
355
+ .dixy-tooltip-popup,
356
+ .dixy-select-popup,
357
+ .dixy-combobox-popup,
358
+ .dixy-autocomplete-popup,
359
+ .dixy-menu-popup,
360
+ .dixy-context-menu-popup,
361
+ .dixy-navigation-menu-popup,
362
+ .dixy-toast-root,
363
+ .dixy-alert,
364
+ .dixy-list-box,
365
+ .dixy-calendar,
366
+ .dixy-range-calendar,
367
+ .dixy-input,
368
+ .dixy-textarea,
369
+ .dixy-native-select,
370
+ .dixy-select-trigger,
371
+ .dixy-input-group,
372
+ .dixy-combobox-input-group,
373
+ .dixy-autocomplete-input-group,
374
+ .dixy-number-field-group,
375
+ .dixy-otp-field-input
376
+ )[data-dixy-skin="dixy/atomic-lounge"]:not(
377
+ [data-dixy-material-override]
378
+ ):not(
379
+ :where([data-dixy-material-override]) *
380
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
381
+ background-image: var(--dixy-skin-paint);
382
+ }
310
383
  :is(.dixy-button)[data-dixy-skin="dixy/atomic-lounge"]:not(
311
384
  [data-dixy-material-override]
312
385
  ):not(:where([data-dixy-material-override]) *):is(
@@ -337,14 +410,19 @@
337
410
  border: 1px solid var(--dixy-skin-edge);
338
411
  box-shadow: var(--dixy-skin-inset);
339
412
  }
413
+ /* 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). */
340
414
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/atomic-lounge"]:not(
341
415
  [data-dixy-material-override]
342
416
  ):not(:where([data-dixy-material-override]) *) {
343
- background-image: var(--dixy-skin-finish);
344
417
  box-shadow: var(--dixy-skin-control-relief);
345
418
  border: 1px solid var(--dixy-skin-edge);
346
419
  }
347
- /* 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). */
420
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/atomic-lounge"]:not(
421
+ [data-dixy-material-override]
422
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
423
+ background-image: none;
424
+ }
425
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
348
426
  .dixy-theme[data-dixy-skin="dixy/atomic-lounge"]
349
427
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
350
428
  [data-dixy-material-override]
@@ -359,7 +437,7 @@
359
437
  [data-variant="solid"]
360
438
  )[data-pressed]:not([data-disabled]) {
361
439
  background-color: var(--dixy-color-background-surface-raised);
362
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
440
+ background-image: none;
363
441
  box-shadow: var(--dixy-skin-control-relief);
364
442
  border-color: var(--dixy-skin-edge);
365
443
  color: var(--dixy-color-text-primary);
@@ -29,8 +29,8 @@ export declare function compileThemeDocument(input: unknown): Readonly<{
29
29
  readonly componentFinish: "inherit" | "glossy" | "soft" | "matte" | "metal" | "paper";
30
30
  readonly shape: "square" | "rounded" | "pill";
31
31
  readonly appearance: "dark" | "light";
32
- readonly bodyFont: "serif" | "terminal" | "deco" | "neon" | "mono" | "system" | "rounded" | "lcd" | "pixel" | "inter" | "grotesk" | "fraunces" | "techno" | "plex" | "archivo" | "mincho" | "gothic" | "playfair" | "caveat" | "bricolage" | "jetbrains" | "manrope" | "figtree" | "cormorant";
33
- readonly headingFont: "serif" | "terminal" | "deco" | "neon" | "mono" | "system" | "rounded" | "lcd" | "pixel" | "inter" | "grotesk" | "fraunces" | "techno" | "plex" | "archivo" | "mincho" | "gothic" | "playfair" | "caveat" | "bricolage" | "jetbrains" | "manrope" | "figtree" | "cormorant";
32
+ readonly bodyFont: "serif" | "terminal" | "deco" | "neon" | "mono" | "system" | "rounded" | "lcd" | "pixel" | "inter" | "grotesk" | "fraunces" | "techno" | "plex" | "archivo" | "mincho" | "gothic" | "playfair" | "caveat" | "bricolage" | "jetbrains" | "manrope" | "figtree" | "cormorant" | "plexSans" | "atkinson";
33
+ readonly headingFont: "serif" | "terminal" | "deco" | "neon" | "mono" | "system" | "rounded" | "lcd" | "pixel" | "inter" | "grotesk" | "fraunces" | "techno" | "plex" | "archivo" | "mincho" | "gothic" | "playfair" | "caveat" | "bricolage" | "jetbrains" | "manrope" | "figtree" | "cormorant" | "plexSans" | "atkinson";
34
34
  readonly border: 2 | 1;
35
35
  readonly depth: "none" | "raised" | "floating";
36
36
  readonly ornament: "balanced" | "expressive" | "quiet";
@@ -39,7 +39,7 @@ export declare function compileThemeDocument(input: unknown): Readonly<{
39
39
  };
40
40
  readonly recipes: {
41
41
  readonly material: {
42
- readonly id: "botanical-paper" | "pixel-enamel" | "gunmetal" | "ceramic" | "prismatic-glass" | "atelier-paper" | "sea-glass" | "candy-clay" | "lacquer-brass" | "titanium" | "frosted-porcelain" | "scrapbook-paper" | "cyanotype" | "riso-paper" | "wet-asphalt" | "washi" | "station-enamel" | "phosphor-glass" | "ansi-term" | "poster-stock" | "glazed-tile" | "concrete" | "atomic-laminate" | "hologram" | "painted-steel" | "gold-foil" | "marigold-silk" | "red-paper" | "fiesta-paper" | "powder-wash" | "wool" | "liquid-glass";
42
+ readonly id: "botanical-paper" | "pixel-enamel" | "gunmetal" | "ceramic" | "prismatic-glass" | "atelier-paper" | "sea-glass" | "candy-clay" | "lacquer-brass" | "titanium" | "frosted-porcelain" | "scrapbook-paper" | "cyanotype" | "riso-paper" | "wet-asphalt" | "washi" | "station-enamel" | "phosphor-glass" | "ansi-term" | "poster-stock" | "glazed-tile" | "concrete" | "atomic-laminate" | "hologram" | "painted-steel" | "gold-foil" | "marigold-silk" | "red-paper" | "fiesta-paper" | "powder-wash" | "wool" | "liquid-glass" | "sunset-neon" | "ledger-ruled" | "layer-grid" | "mono-ink" | "signal-contrast" | "menu-window" | "arcade-bezel";
43
43
  readonly version: 1;
44
44
  readonly parameters: {
45
45
  readonly surfaceMix: number;
@@ -54,10 +54,10 @@ export declare function compileThemeDocument(input: unknown): Readonly<{
54
54
  };
55
55
  };
56
56
  readonly frame: {
57
- readonly id: "none" | "coral" | "forest" | "cushion" | "deco" | "drafting" | "riso" | "neon" | "sumi" | "transit" | "crt" | "panes" | "swiss" | "azulejo" | "formwork" | "atomic" | "hud" | "hazard" | "orbit" | "rangoli" | "papercut" | "picado" | "gulal" | "knit" | "liquid" | "glass" | "pixel" | "halo" | "ceramic" | "rails" | "stitch" | "chamfer";
57
+ readonly id: "none" | "menu" | "marquee" | "coral" | "forest" | "cushion" | "deco" | "drafting" | "riso" | "neon" | "sumi" | "transit" | "crt" | "panes" | "swiss" | "azulejo" | "formwork" | "atomic" | "hud" | "hazard" | "orbit" | "rangoli" | "papercut" | "picado" | "gulal" | "knit" | "liquid" | "sunset" | "glass" | "pixel" | "halo" | "ceramic" | "rails" | "stitch" | "chamfer";
58
58
  readonly version: 1;
59
59
  readonly ornament: {
60
- readonly style: "Woodland mix" | "Wild ivy" | "Fern grove" | "Willow canopy" | "Oak & moss" | "Spring growth" | "Ginkgo fans" | "Maple grove" | "Eucalyptus" | "Olive branch" | "Clover meadow" | "Wildflower hedge" | "Piped petals" | "Twisted rope" | "Candy pebbles" | "Ribbon folds" | "Tidal ribbons" | "Seafoam beads" | "Glass droplets" | "Quiet currents" | "Fine filigree" | "Art deco" | "Hammered edge" | "Quiet gilding" | "Dimensioned" | "Ruler ticks" | "Construction lines" | "Quiet draft" | "Misprint" | "Halftone" | "Taped corners" | "Clean stamp" | "Tube outline" | "Broken tubes" | "Sign shapes" | "Low hum" | "Bamboo" | "Plum blossom" | "Dry brush" | "Ensō" | "Line map" | "Station roundels" | "Platform edge" | "Quiet line" | "Box corners" | "Status line" | "Raster ticks" | "Quiet cursor" | "Pane titles" | "Key hints" | "Split panes" | "Bare panes" | "Crop marks" | "Red block" | "Grid ticks" | "Bare grid" | "Corner tiles" | "Border run" | "Floral rosette" | "Single tile" | "Tie holes" | "Stencil marks" | "Board seams" | "Bare concrete" | "Starbursts" | "Boomerangs" | "Orbit atoms" | "Lone star" | "Target brackets" | "Telemetry" | "Reticle" | "Clean brackets" | "Hazard stripes" | "Rivet seams" | "Cargo stencils" | "Clean plate" | "Orbit rings" | "Gold foil" | "Star field" | "Single orbit" | "Rangoli corners" | "Diya row" | "Marigold string" | "Single diya" | "Lanterns" | "Scallop edge" | "Cloud scrolls" | "Single lantern" | "Bunting" | "Marigold garland" | "Paper confetti" | "Short string" | "Powder clouds" | "Splashes" | "Speckle dust" | "Soft haze" | "Fair Isle band" | "Snowflakes" | "Cable stitch" | "Plain rib" | "Specular rim" | "Refraction" | "Light catch" | "Clear";
60
+ readonly style: "Woodland mix" | "Wild ivy" | "Fern grove" | "Willow canopy" | "Oak & moss" | "Spring growth" | "Ginkgo fans" | "Maple grove" | "Eucalyptus" | "Olive branch" | "Clover meadow" | "Wildflower hedge" | "Piped petals" | "Twisted rope" | "Candy pebbles" | "Ribbon folds" | "Tidal ribbons" | "Seafoam beads" | "Glass droplets" | "Quiet currents" | "Fine filigree" | "Art deco" | "Hammered edge" | "Quiet gilding" | "Dimensioned" | "Ruler ticks" | "Construction lines" | "Quiet draft" | "Misprint" | "Halftone" | "Taped corners" | "Clean stamp" | "Tube outline" | "Broken tubes" | "Sign shapes" | "Low hum" | "Bamboo" | "Plum blossom" | "Dry brush" | "Ensō" | "Line map" | "Station roundels" | "Platform edge" | "Quiet line" | "Box corners" | "Status line" | "Raster ticks" | "Quiet cursor" | "Pane titles" | "Key hints" | "Split panes" | "Bare panes" | "Crop marks" | "Red block" | "Grid ticks" | "Bare grid" | "Corner tiles" | "Border run" | "Floral rosette" | "Single tile" | "Tie holes" | "Stencil marks" | "Board seams" | "Bare concrete" | "Starbursts" | "Boomerangs" | "Orbit atoms" | "Lone star" | "Target brackets" | "Telemetry" | "Reticle" | "Clean brackets" | "Hazard stripes" | "Rivet seams" | "Cargo stencils" | "Clean plate" | "Orbit rings" | "Gold foil" | "Star field" | "Single orbit" | "Rangoli corners" | "Diya row" | "Marigold string" | "Single diya" | "Lanterns" | "Scallop edge" | "Cloud scrolls" | "Single lantern" | "Bunting" | "Marigold garland" | "Paper confetti" | "Short string" | "Powder clouds" | "Splashes" | "Speckle dust" | "Soft haze" | "Fair Isle band" | "Snowflakes" | "Cable stitch" | "Plain rib" | "Specular rim" | "Refraction" | "Light catch" | "Clear" | "Sun and grid" | "Sun only" | "Grid only" | "Bare coast" | "Cursor and stars" | "Cursor only" | "Stars only" | "Plain window" | "Bulbs and credits" | "Bulbs only" | "Credits only" | "Dark cabinet";
61
61
  readonly canopy: "Scattered trails" | "Corner cascades" | "Overhead boughs" | "Long tendrils" | "Open crown";
62
62
  readonly stem: "Twining vines" | "Woody branches" | "Tender shoots" | "Mossy roots";
63
63
  readonly density: number;
@@ -95,7 +95,7 @@ export declare function compileThemeDocument(input: unknown): Readonly<{
95
95
  };
96
96
  readonly states: "standard" | "led" | "marching" | "inlay" | "glow" | "stamp";
97
97
  readonly details: {
98
- readonly focus: "offset" | "dashed" | "double" | "glow" | "ring";
98
+ readonly focus: "offset" | "dashed" | "double" | "halo" | "glow" | "ring";
99
99
  readonly divider: "line" | "dashed" | "dotted" | "double" | "groove";
100
100
  readonly selection: "accent" | "inverse" | "highlighter";
101
101
  readonly scrollbar: "accent" | "native" | "thin";
@@ -117,8 +117,8 @@ export declare function compileThemeDocument(input: unknown): Readonly<{
117
117
  definition: SkinDefinition;
118
118
  css: string;
119
119
  renderer: Readonly<{
120
- symbol: "ForestOrnament" | "RetroOrnament" | "SignalOrnament" | "HardwareOrnament" | "PrismOrnament" | "AtelierOrnament" | "OceanOrnament" | "ClayOrnament" | "DecoOrnament" | "TitaniumOrnament" | "LightOrnament" | "BlueprintOrnament" | "RisoOrnament" | "NeonOrnament" | "SumiOrnament" | "TransitOrnament" | "PhosphorOrnament" | "AnsiOrnament" | "SwissOrnament" | "AzulejoOrnament" | "BrutalistOrnament" | "AtomicOrnament" | "HudOrnament" | "FreighterOrnament" | "SailOrnament" | "DiwaliOrnament" | "LunarOrnament" | "PicadoOrnament" | "HoliOrnament" | "YuleOrnament" | "GlassOrnament";
121
- entry: "@dixy-ui/themes/living-forest/react" | "@dixy-ui/themes/retro-os/react" | "@dixy-ui/themes/winamp-signal/react" | "@dixy-ui/themes/studio-hardware/react" | "@dixy-ui/themes/prism-glass/react" | "@dixy-ui/themes/tactile-atelier/react" | "@dixy-ui/themes/ocean-depths/react" | "@dixy-ui/themes/candy-clay/react" | "@dixy-ui/themes/art-deco/react" | "@dixy-ui/themes/y2k-titanium/react" | "@dixy-ui/themes/material-light/react" | "@dixy-ui/themes/blueprint/react" | "@dixy-ui/themes/riso-zine/react" | "@dixy-ui/themes/neon-night-market/react" | "@dixy-ui/themes/sumi-ink/react" | "@dixy-ui/themes/tokyo-transit/react" | "@dixy-ui/themes/phosphor-terminal/react" | "@dixy-ui/themes/ansi-panes/react" | "@dixy-ui/themes/swiss-poster/react" | "@dixy-ui/themes/azulejo-tile/react" | "@dixy-ui/themes/brutalist-concrete/react" | "@dixy-ui/themes/atomic-lounge/react" | "@dixy-ui/themes/orbital-hud/react" | "@dixy-ui/themes/freighter/react" | "@dixy-ui/themes/solar-sail/react" | "@dixy-ui/themes/diwali-lights/react" | "@dixy-ui/themes/lunar-new-year/react" | "@dixy-ui/themes/papel-picado/react" | "@dixy-ui/themes/holi-colours/react" | "@dixy-ui/themes/yule-knit/react" | "@dixy-ui/themes/glass-ui/react";
120
+ symbol: "ForestOrnament" | "RetroOrnament" | "SignalOrnament" | "HardwareOrnament" | "PrismOrnament" | "AtelierOrnament" | "OceanOrnament" | "ClayOrnament" | "DecoOrnament" | "TitaniumOrnament" | "LightOrnament" | "BlueprintOrnament" | "RisoOrnament" | "NeonOrnament" | "SumiOrnament" | "TransitOrnament" | "PhosphorOrnament" | "AnsiOrnament" | "SwissOrnament" | "AzulejoOrnament" | "BrutalistOrnament" | "AtomicOrnament" | "HudOrnament" | "FreighterOrnament" | "SailOrnament" | "DiwaliOrnament" | "LunarOrnament" | "PicadoOrnament" | "HoliOrnament" | "YuleOrnament" | "GlassOrnament" | "SunsetOrnament" | "SavePointOrnament" | "ArcadeOrnament";
121
+ entry: "@dixy-ui/themes/living-forest/react" | "@dixy-ui/themes/retro-os/react" | "@dixy-ui/themes/winamp-signal/react" | "@dixy-ui/themes/studio-hardware/react" | "@dixy-ui/themes/prism-glass/react" | "@dixy-ui/themes/tactile-atelier/react" | "@dixy-ui/themes/ocean-depths/react" | "@dixy-ui/themes/candy-clay/react" | "@dixy-ui/themes/art-deco/react" | "@dixy-ui/themes/y2k-titanium/react" | "@dixy-ui/themes/material-light/react" | "@dixy-ui/themes/blueprint/react" | "@dixy-ui/themes/riso-zine/react" | "@dixy-ui/themes/neon-night-market/react" | "@dixy-ui/themes/sumi-ink/react" | "@dixy-ui/themes/tokyo-transit/react" | "@dixy-ui/themes/phosphor-terminal/react" | "@dixy-ui/themes/ansi-panes/react" | "@dixy-ui/themes/swiss-poster/react" | "@dixy-ui/themes/azulejo-tile/react" | "@dixy-ui/themes/brutalist-concrete/react" | "@dixy-ui/themes/atomic-lounge/react" | "@dixy-ui/themes/orbital-hud/react" | "@dixy-ui/themes/freighter/react" | "@dixy-ui/themes/solar-sail/react" | "@dixy-ui/themes/diwali-lights/react" | "@dixy-ui/themes/lunar-new-year/react" | "@dixy-ui/themes/papel-picado/react" | "@dixy-ui/themes/holi-colours/react" | "@dixy-ui/themes/yule-knit/react" | "@dixy-ui/themes/glass-ui/react" | "@dixy-ui/themes/sunset-drive/react" | "@dixy-ui/themes/save-point/react" | "@dixy-ui/themes/arcade-cabinet/react";
122
122
  }> | null;
123
123
  themeProps: Readonly<{
124
124
  appearance: "dark" | "light";
@@ -32,6 +32,11 @@
32
32
  --dixy-font-title-sm-family:
33
33
  "Playfair Display Variable", "Playfair Display", ui-serif, Georgia, serif;
34
34
  --dixy-skin-edge: #1f4fa0;
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: 45;
36
41
  --dixy-organic-cornerDensity: 80;
37
42
  --dixy-organic-canopyDepth: 40;
@@ -137,7 +142,6 @@
137
142
  --dixy-organic-b: #4f74c0;
138
143
  --dixy-organic-c: #e8c06a;
139
144
  --dixy-organic-d: #1a2d57;
140
- --dixy-skin-selected: var(--dixy-skin-finish);
141
145
  --dixy-color-text-primary: color-mix(
142
146
  in srgb,
143
147
  var(--dixy-color-base-12) 70%,
@@ -155,6 +159,7 @@
155
159
  #0f1d3a
156
160
  );
157
161
  }
162
+
158
163
  .dixy-theme[data-dixy-skin="dixy/azulejo-tile"][data-relief="2"] {
159
164
  --dixy-skin-shadow:
160
165
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -290,6 +295,30 @@
290
295
  ):not([data-variant="soft"]) {
291
296
  background-color: var(--dixy-skin-surface);
292
297
  }
298
+ :is(
299
+ .dixy-dialog-popup,
300
+ .dixy-alert-dialog-popup,
301
+ .dixy-drawer-popup,
302
+ .dixy-popover-popup,
303
+ .dixy-preview-card-popup,
304
+ .dixy-tooltip-popup,
305
+ .dixy-select-popup,
306
+ .dixy-combobox-popup,
307
+ .dixy-autocomplete-popup,
308
+ .dixy-menu-popup,
309
+ .dixy-context-menu-popup,
310
+ .dixy-navigation-menu-popup
311
+ )[data-dixy-skin="dixy/azulejo-tile"]:not(
312
+ [data-dixy-material-override]
313
+ ):not(:where([data-dixy-material-override]) *):not(
314
+ [data-variant="solid"]
315
+ ):not([data-variant="soft"]) {
316
+ background-color: color-mix(
317
+ in srgb,
318
+ var(--dixy-color-background-surface-raised) 94%,
319
+ var(--dixy-skin-surface)
320
+ );
321
+ }
293
322
  :is(
294
323
  .dixy-input,
295
324
  .dixy-textarea,
@@ -303,6 +332,11 @@
303
332
  )[data-dixy-skin="dixy/azulejo-tile"] {
304
333
  border-radius: calc(var(--dixy-radius-control) * 1);
305
334
  }
335
+ :is(.dixy-textarea)[data-dixy-skin="dixy/azulejo-tile"] {
336
+ border-radius: calc(
337
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
338
+ );
339
+ }
306
340
  :is(
307
341
  .dixy-input,
308
342
  .dixy-textarea,
@@ -317,7 +351,7 @@
317
351
  [data-dixy-material-override]
318
352
  ):not(:where([data-dixy-material-override]) *) {
319
353
  border-width: var(--dixy-input-border-width);
320
- border-color: var(--dixy-skin-edge);
354
+ border-color: var(--dixy-skin-field-edge);
321
355
  background-image: var(--dixy-skin-paint);
322
356
  background-color: var(--dixy-color-background-canvas);
323
357
  background-size:
@@ -327,6 +361,45 @@
327
361
  100% 100%;
328
362
  box-shadow: var(--dixy-skin-inset);
329
363
  }
364
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
365
+ skin's paint to that so its image and grain size always land together;
366
+ otherwise the material image is tiled at the grain size (stripes). */
367
+ :is(
368
+ .dixy-card,
369
+ .dixy-box,
370
+ .dixy-dialog-popup,
371
+ .dixy-alert-dialog-popup,
372
+ .dixy-drawer-popup,
373
+ .dixy-popover-popup,
374
+ .dixy-preview-card-popup,
375
+ .dixy-tooltip-popup,
376
+ .dixy-select-popup,
377
+ .dixy-combobox-popup,
378
+ .dixy-autocomplete-popup,
379
+ .dixy-menu-popup,
380
+ .dixy-context-menu-popup,
381
+ .dixy-navigation-menu-popup,
382
+ .dixy-toast-root,
383
+ .dixy-alert,
384
+ .dixy-list-box,
385
+ .dixy-calendar,
386
+ .dixy-range-calendar,
387
+ .dixy-input,
388
+ .dixy-textarea,
389
+ .dixy-native-select,
390
+ .dixy-select-trigger,
391
+ .dixy-input-group,
392
+ .dixy-combobox-input-group,
393
+ .dixy-autocomplete-input-group,
394
+ .dixy-number-field-group,
395
+ .dixy-otp-field-input
396
+ )[data-dixy-skin="dixy/azulejo-tile"]:not(
397
+ [data-dixy-material-override]
398
+ ):not(
399
+ :where([data-dixy-material-override]) *
400
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
401
+ background-image: var(--dixy-skin-paint);
402
+ }
330
403
  :is(.dixy-button)[data-dixy-skin="dixy/azulejo-tile"]:not(
331
404
  [data-dixy-material-override]
332
405
  ):not(:where([data-dixy-material-override]) *):is(
@@ -357,14 +430,19 @@
357
430
  border: 1px solid var(--dixy-skin-edge);
358
431
  box-shadow: var(--dixy-skin-inset);
359
432
  }
433
+ /* 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). */
360
434
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/azulejo-tile"]:not(
361
435
  [data-dixy-material-override]
362
436
  ):not(:where([data-dixy-material-override]) *) {
363
- background-image: var(--dixy-skin-finish);
364
437
  box-shadow: var(--dixy-skin-control-relief);
365
438
  border: 1px solid var(--dixy-skin-edge);
366
439
  }
367
- /* 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). */
440
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/azulejo-tile"]:not(
441
+ [data-dixy-material-override]
442
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
443
+ background-image: none;
444
+ }
445
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
368
446
  .dixy-theme[data-dixy-skin="dixy/azulejo-tile"]
369
447
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
370
448
  [data-dixy-material-override]
@@ -379,7 +457,7 @@
379
457
  [data-variant="solid"]
380
458
  )[data-pressed]:not([data-disabled]) {
381
459
  background-color: var(--dixy-color-background-surface-raised);
382
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
460
+ background-image: none;
383
461
  box-shadow: var(--dixy-skin-control-relief);
384
462
  border-color: var(--dixy-skin-edge);
385
463
  color: var(--dixy-color-text-primary);