@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
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,
@@ -307,7 +334,7 @@
307
334
  :where([data-dixy-material-override]) *
308
335
  ) {
309
336
  border-width: var(--dixy-input-border-width);
310
- border-color: var(--dixy-skin-edge);
337
+ border-color: var(--dixy-skin-field-edge);
311
338
  background-image: var(--dixy-skin-paint);
312
339
  background-color: var(--dixy-color-background-canvas);
313
340
  background-size:
@@ -317,6 +344,43 @@
317
344
  100% 100%;
318
345
  box-shadow: var(--dixy-skin-inset);
319
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
+ }
320
384
  :is(.dixy-button)[data-dixy-skin="dixy/art-deco"]:not(
321
385
  [data-dixy-material-override]
322
386
  ):not(:where([data-dixy-material-override]) *):is(
@@ -347,14 +411,19 @@
347
411
  border: 1px solid var(--dixy-skin-edge);
348
412
  box-shadow: var(--dixy-skin-inset);
349
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). */
350
415
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/art-deco"]:not(
351
416
  [data-dixy-material-override]
352
417
  ):not(:where([data-dixy-material-override]) *) {
353
- background-image: var(--dixy-skin-finish);
354
418
  box-shadow: var(--dixy-skin-control-relief);
355
419
  border: 1px solid var(--dixy-skin-edge);
356
420
  }
357
- /* 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. */
358
427
  .dixy-theme[data-dixy-skin="dixy/art-deco"]
359
428
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
360
429
  [data-dixy-material-override]
@@ -369,7 +438,7 @@
369
438
  [data-variant="solid"]
370
439
  )[data-pressed]:not([data-disabled]) {
371
440
  background-color: var(--dixy-color-background-surface-raised);
372
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
441
+ background-image: none;
373
442
  box-shadow: var(--dixy-skin-control-relief);
374
443
  border-color: var(--dixy-skin-edge);
375
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,
@@ -302,7 +331,7 @@
302
331
  [data-dixy-material-override]
303
332
  ):not(:where([data-dixy-material-override]) *) {
304
333
  border-width: var(--dixy-input-border-width);
305
- border-color: var(--dixy-skin-edge);
334
+ border-color: var(--dixy-skin-field-edge);
306
335
  background-image: var(--dixy-skin-paint);
307
336
  background-color: var(--dixy-color-background-canvas);
308
337
  background-size:
@@ -312,6 +341,45 @@
312
341
  100% 100%;
313
342
  box-shadow: var(--dixy-skin-inset);
314
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
+ }
315
383
  :is(.dixy-button)[data-dixy-skin="dixy/atomic-lounge"]:not(
316
384
  [data-dixy-material-override]
317
385
  ):not(:where([data-dixy-material-override]) *):is(
@@ -342,14 +410,19 @@
342
410
  border: 1px solid var(--dixy-skin-edge);
343
411
  box-shadow: var(--dixy-skin-inset);
344
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). */
345
414
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/atomic-lounge"]:not(
346
415
  [data-dixy-material-override]
347
416
  ):not(:where([data-dixy-material-override]) *) {
348
- background-image: var(--dixy-skin-finish);
349
417
  box-shadow: var(--dixy-skin-control-relief);
350
418
  border: 1px solid var(--dixy-skin-edge);
351
419
  }
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). */
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. */
353
426
  .dixy-theme[data-dixy-skin="dixy/atomic-lounge"]
354
427
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
355
428
  [data-dixy-material-override]
@@ -364,7 +437,7 @@
364
437
  [data-variant="solid"]
365
438
  )[data-pressed]:not([data-disabled]) {
366
439
  background-color: var(--dixy-color-background-surface-raised);
367
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
440
+ background-image: none;
368
441
  box-shadow: var(--dixy-skin-control-relief);
369
442
  border-color: var(--dixy-skin-edge);
370
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,
@@ -322,7 +351,7 @@
322
351
  [data-dixy-material-override]
323
352
  ):not(:where([data-dixy-material-override]) *) {
324
353
  border-width: var(--dixy-input-border-width);
325
- border-color: var(--dixy-skin-edge);
354
+ border-color: var(--dixy-skin-field-edge);
326
355
  background-image: var(--dixy-skin-paint);
327
356
  background-color: var(--dixy-color-background-canvas);
328
357
  background-size:
@@ -332,6 +361,45 @@
332
361
  100% 100%;
333
362
  box-shadow: var(--dixy-skin-inset);
334
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
+ }
335
403
  :is(.dixy-button)[data-dixy-skin="dixy/azulejo-tile"]:not(
336
404
  [data-dixy-material-override]
337
405
  ):not(:where([data-dixy-material-override]) *):is(
@@ -362,14 +430,19 @@
362
430
  border: 1px solid var(--dixy-skin-edge);
363
431
  box-shadow: var(--dixy-skin-inset);
364
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). */
365
434
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/azulejo-tile"]:not(
366
435
  [data-dixy-material-override]
367
436
  ):not(:where([data-dixy-material-override]) *) {
368
- background-image: var(--dixy-skin-finish);
369
437
  box-shadow: var(--dixy-skin-control-relief);
370
438
  border: 1px solid var(--dixy-skin-edge);
371
439
  }
372
- /* 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. */
373
446
  .dixy-theme[data-dixy-skin="dixy/azulejo-tile"]
374
447
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
375
448
  [data-dixy-material-override]
@@ -384,7 +457,7 @@
384
457
  [data-variant="solid"]
385
458
  )[data-pressed]:not([data-disabled]) {
386
459
  background-color: var(--dixy-color-background-surface-raised);
387
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
460
+ background-image: none;
388
461
  box-shadow: var(--dixy-skin-control-relief);
389
462
  border-color: var(--dixy-skin-edge);
390
463
  color: var(--dixy-color-text-primary);
@@ -29,6 +29,11 @@
29
29
  --dixy-font-title-sm-family:
30
30
  "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;
31
31
  --dixy-skin-edge: #5f86bd;
32
+ --dixy-skin-field-edge: color-mix(
33
+ in oklab,
34
+ var(--dixy-color-base-9) 50%,
35
+ var(--dixy-color-base-8)
36
+ );
32
37
  --dixy-organic-density: 55;
33
38
  --dixy-organic-cornerDensity: 100;
34
39
  --dixy-organic-canopyDepth: 40;
@@ -116,7 +121,6 @@
116
121
  --dixy-organic-b: #9cc2f0;
117
122
  --dixy-organic-c: #ffd27a;
118
123
  --dixy-organic-d: #bcd6f5;
119
- --dixy-skin-selected: var(--dixy-skin-finish);
120
124
  --dixy-skin-edge: #8fb3e6;
121
125
  --dixy-skin-surface: color-mix(
122
126
  in srgb,
@@ -129,6 +133,7 @@
129
133
  #123766
130
134
  );
131
135
  }
136
+
132
137
  .dixy-theme[data-dixy-skin="dixy/blueprint"][data-relief="2"] {
133
138
  --dixy-skin-shadow:
134
139
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -262,6 +267,28 @@
262
267
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
263
268
  background-color: var(--dixy-skin-surface);
264
269
  }
270
+ :is(
271
+ .dixy-dialog-popup,
272
+ .dixy-alert-dialog-popup,
273
+ .dixy-drawer-popup,
274
+ .dixy-popover-popup,
275
+ .dixy-preview-card-popup,
276
+ .dixy-tooltip-popup,
277
+ .dixy-select-popup,
278
+ .dixy-combobox-popup,
279
+ .dixy-autocomplete-popup,
280
+ .dixy-menu-popup,
281
+ .dixy-context-menu-popup,
282
+ .dixy-navigation-menu-popup
283
+ )[data-dixy-skin="dixy/blueprint"]:not([data-dixy-material-override]):not(
284
+ :where([data-dixy-material-override]) *
285
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
286
+ background-color: color-mix(
287
+ in srgb,
288
+ var(--dixy-color-background-surface-raised) 94%,
289
+ var(--dixy-skin-surface)
290
+ );
291
+ }
265
292
  :is(
266
293
  .dixy-input,
267
294
  .dixy-textarea,
@@ -294,7 +321,7 @@
294
321
  :where([data-dixy-material-override]) *
295
322
  ) {
296
323
  border-width: var(--dixy-input-border-width);
297
- border-color: var(--dixy-skin-edge);
324
+ border-color: var(--dixy-skin-field-edge);
298
325
  background-image: var(--dixy-skin-paint);
299
326
  background-color: var(--dixy-color-background-canvas);
300
327
  background-size:
@@ -304,6 +331,43 @@
304
331
  100% 100%;
305
332
  box-shadow: var(--dixy-skin-inset);
306
333
  }
334
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
335
+ skin's paint to that so its image and grain size always land together;
336
+ otherwise the material image is tiled at the grain size (stripes). */
337
+ :is(
338
+ .dixy-card,
339
+ .dixy-box,
340
+ .dixy-dialog-popup,
341
+ .dixy-alert-dialog-popup,
342
+ .dixy-drawer-popup,
343
+ .dixy-popover-popup,
344
+ .dixy-preview-card-popup,
345
+ .dixy-tooltip-popup,
346
+ .dixy-select-popup,
347
+ .dixy-combobox-popup,
348
+ .dixy-autocomplete-popup,
349
+ .dixy-menu-popup,
350
+ .dixy-context-menu-popup,
351
+ .dixy-navigation-menu-popup,
352
+ .dixy-toast-root,
353
+ .dixy-alert,
354
+ .dixy-list-box,
355
+ .dixy-calendar,
356
+ .dixy-range-calendar,
357
+ .dixy-input,
358
+ .dixy-textarea,
359
+ .dixy-native-select,
360
+ .dixy-select-trigger,
361
+ .dixy-input-group,
362
+ .dixy-combobox-input-group,
363
+ .dixy-autocomplete-input-group,
364
+ .dixy-number-field-group,
365
+ .dixy-otp-field-input
366
+ )[data-dixy-skin="dixy/blueprint"]:not([data-dixy-material-override]):not(
367
+ :where([data-dixy-material-override]) *
368
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
369
+ background-image: var(--dixy-skin-paint);
370
+ }
307
371
  :is(.dixy-button)[data-dixy-skin="dixy/blueprint"]:not(
308
372
  [data-dixy-material-override]
309
373
  ):not(:where([data-dixy-material-override]) *):is(
@@ -334,14 +398,19 @@
334
398
  border: 1px solid var(--dixy-skin-edge);
335
399
  box-shadow: var(--dixy-skin-inset);
336
400
  }
401
+ /* Selected tabs and toggles are one flat colour, lifted by edge and relief only. A gradient behind the label (thumb art, sheen, material image) splits it across two colours. :not([data-variant="line"]) also outranks materials.css (0,3,0). */
337
402
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/blueprint"]:not(
338
403
  [data-dixy-material-override]
339
404
  ):not(:where([data-dixy-material-override]) *) {
340
- background-image: var(--dixy-skin-finish);
341
405
  box-shadow: var(--dixy-skin-control-relief);
342
406
  border: 1px solid var(--dixy-skin-edge);
343
407
  }
344
- /* Toggle groups read like tabs: a sunken track, the selected toggle a raised thumb (slider-knob paint in light, the raised finish in dark so its label stays readable). */
408
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/blueprint"]:not(
409
+ [data-dixy-material-override]
410
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
411
+ background-image: none;
412
+ }
413
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
345
414
  .dixy-theme[data-dixy-skin="dixy/blueprint"]
346
415
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
347
416
  [data-dixy-material-override]
@@ -356,7 +425,7 @@
356
425
  [data-variant="solid"]
357
426
  )[data-pressed]:not([data-disabled]) {
358
427
  background-color: var(--dixy-color-background-surface-raised);
359
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
428
+ background-image: none;
360
429
  box-shadow: var(--dixy-skin-control-relief);
361
430
  border-color: var(--dixy-skin-edge);
362
431
  color: var(--dixy-color-text-primary);