@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
@@ -27,6 +27,11 @@
27
27
  --dixy-font-title-sm-family:
28
28
  "VT323", "Share Tech Mono", ui-monospace, monospace;
29
29
  --dixy-skin-edge: #7fae88;
30
+ --dixy-skin-field-edge: color-mix(
31
+ in oklab,
32
+ var(--dixy-color-base-9) 50%,
33
+ var(--dixy-color-base-8)
34
+ );
30
35
  --dixy-organic-density: 55;
31
36
  --dixy-organic-cornerDensity: 70;
32
37
  --dixy-organic-canopyDepth: 30;
@@ -120,7 +125,6 @@
120
125
  --dixy-organic-b: #1f9e44;
121
126
  --dixy-organic-c: #ffb000;
122
127
  --dixy-organic-d: #7dffa0;
123
- --dixy-skin-selected: var(--dixy-skin-finish);
124
128
  --dixy-color-text-primary: color-mix(
125
129
  in srgb,
126
130
  var(--dixy-color-base-12) 44.99999999999999%,
@@ -138,6 +142,7 @@
138
142
  #040b06
139
143
  );
140
144
  }
145
+
141
146
  .dixy-theme[data-dixy-skin="dixy/phosphor-terminal"][data-relief="2"] {
142
147
  --dixy-skin-shadow:
143
148
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -273,6 +278,30 @@
273
278
  ):not([data-variant="soft"]) {
274
279
  background-color: var(--dixy-skin-surface);
275
280
  }
281
+ :is(
282
+ .dixy-dialog-popup,
283
+ .dixy-alert-dialog-popup,
284
+ .dixy-drawer-popup,
285
+ .dixy-popover-popup,
286
+ .dixy-preview-card-popup,
287
+ .dixy-tooltip-popup,
288
+ .dixy-select-popup,
289
+ .dixy-combobox-popup,
290
+ .dixy-autocomplete-popup,
291
+ .dixy-menu-popup,
292
+ .dixy-context-menu-popup,
293
+ .dixy-navigation-menu-popup
294
+ )[data-dixy-skin="dixy/phosphor-terminal"]:not(
295
+ [data-dixy-material-override]
296
+ ):not(:where([data-dixy-material-override]) *):not(
297
+ [data-variant="solid"]
298
+ ):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
+ }
276
305
  :is(
277
306
  .dixy-input,
278
307
  .dixy-textarea,
@@ -286,6 +315,11 @@
286
315
  )[data-dixy-skin="dixy/phosphor-terminal"] {
287
316
  border-radius: calc(var(--dixy-radius-control) * 1);
288
317
  }
318
+ :is(.dixy-textarea)[data-dixy-skin="dixy/phosphor-terminal"] {
319
+ border-radius: calc(
320
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
321
+ );
322
+ }
289
323
  :is(
290
324
  .dixy-input,
291
325
  .dixy-textarea,
@@ -300,7 +334,7 @@
300
334
  [data-dixy-material-override]
301
335
  ):not(:where([data-dixy-material-override]) *) {
302
336
  border-width: var(--dixy-input-border-width);
303
- border-color: var(--dixy-skin-edge);
337
+ border-color: var(--dixy-skin-field-edge);
304
338
  background-image: var(--dixy-skin-paint);
305
339
  background-color: var(--dixy-color-background-canvas);
306
340
  background-size:
@@ -310,6 +344,45 @@
310
344
  100% 100%;
311
345
  box-shadow: var(--dixy-skin-inset);
312
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/phosphor-terminal"]:not(
380
+ [data-dixy-material-override]
381
+ ):not(
382
+ :where([data-dixy-material-override]) *
383
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
384
+ background-image: var(--dixy-skin-paint);
385
+ }
313
386
  :is(.dixy-button)[data-dixy-skin="dixy/phosphor-terminal"]:not(
314
387
  [data-dixy-material-override]
315
388
  ):not(:where([data-dixy-material-override]) *):is(
@@ -340,14 +413,19 @@
340
413
  border: 1px solid var(--dixy-skin-edge);
341
414
  box-shadow: var(--dixy-skin-inset);
342
415
  }
416
+ /* 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). */
343
417
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/phosphor-terminal"]:not(
344
418
  [data-dixy-material-override]
345
419
  ):not(:where([data-dixy-material-override]) *) {
346
- background-image: var(--dixy-skin-finish);
347
420
  box-shadow: var(--dixy-skin-control-relief);
348
421
  border: 1px solid var(--dixy-skin-edge);
349
422
  }
350
- /* 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). */
423
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/phosphor-terminal"]:not(
424
+ [data-dixy-material-override]
425
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
426
+ background-image: none;
427
+ }
428
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
351
429
  .dixy-theme[data-dixy-skin="dixy/phosphor-terminal"]
352
430
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
353
431
  [data-dixy-material-override]
@@ -362,7 +440,7 @@
362
440
  [data-variant="solid"]
363
441
  )[data-pressed]:not([data-disabled]) {
364
442
  background-color: var(--dixy-color-background-surface-raised);
365
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
443
+ background-image: none;
366
444
  box-shadow: var(--dixy-skin-control-relief);
367
445
  border-color: var(--dixy-skin-edge);
368
446
  color: var(--dixy-color-text-primary);
@@ -33,6 +33,11 @@
33
33
  --dixy-font-title-sm-family:
34
34
  "Manrope Variable", "Manrope", ui-sans-serif, system-ui, sans-serif;
35
35
  --dixy-skin-edge: rgb(255 255 255 / 0.75);
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,
@@ -127,7 +132,6 @@
127
132
  --dixy-font-title-sm-letter-spacing: -0.03em;
128
133
  }
129
134
  .dixy-theme[data-dixy-skin="dixy/prism-glass"][data-appearance="dark"] {
130
- --dixy-skin-selected: var(--dixy-skin-finish);
131
135
  --dixy-skin-edge: rgb(255 255 255 / 0.16);
132
136
  --dixy-skin-canvas:
133
137
  radial-gradient(
@@ -156,6 +160,7 @@
156
160
  #1c1b33a6
157
161
  );
158
162
  }
163
+
159
164
  .dixy-theme[data-dixy-skin="dixy/prism-glass"][data-relief="2"] {
160
165
  --dixy-skin-shadow:
161
166
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -289,6 +294,28 @@
289
294
  ):not([data-variant="solid"]):not([data-variant="soft"]) {
290
295
  background-color: var(--dixy-skin-surface);
291
296
  }
297
+ :is(
298
+ .dixy-dialog-popup,
299
+ .dixy-alert-dialog-popup,
300
+ .dixy-drawer-popup,
301
+ .dixy-popover-popup,
302
+ .dixy-preview-card-popup,
303
+ .dixy-tooltip-popup,
304
+ .dixy-select-popup,
305
+ .dixy-combobox-popup,
306
+ .dixy-autocomplete-popup,
307
+ .dixy-menu-popup,
308
+ .dixy-context-menu-popup,
309
+ .dixy-navigation-menu-popup
310
+ )[data-dixy-skin="dixy/prism-glass"]:not([data-dixy-material-override]):not(
311
+ :where([data-dixy-material-override]) *
312
+ ):not([data-variant="solid"]):not([data-variant="soft"]) {
313
+ background-color: color-mix(
314
+ in srgb,
315
+ var(--dixy-color-background-surface-raised) 72%,
316
+ var(--dixy-skin-surface)
317
+ );
318
+ }
292
319
  :is(
293
320
  .dixy-input,
294
321
  .dixy-textarea,
@@ -302,6 +329,11 @@
302
329
  )[data-dixy-skin="dixy/prism-glass"] {
303
330
  border-radius: calc(var(--dixy-radius-control) * 1);
304
331
  }
332
+ :is(.dixy-textarea)[data-dixy-skin="dixy/prism-glass"] {
333
+ border-radius: calc(
334
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
335
+ );
336
+ }
305
337
  :is(
306
338
  .dixy-input,
307
339
  .dixy-textarea,
@@ -316,7 +348,7 @@
316
348
  :where([data-dixy-material-override]) *
317
349
  ) {
318
350
  border-width: var(--dixy-input-border-width);
319
- border-color: var(--dixy-skin-edge);
351
+ border-color: var(--dixy-skin-field-edge);
320
352
  background-image: var(--dixy-skin-paint);
321
353
  background-color: var(--dixy-color-background-canvas);
322
354
  background-size:
@@ -326,6 +358,43 @@
326
358
  100% 100%;
327
359
  box-shadow: var(--dixy-skin-inset);
328
360
  }
361
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
362
+ skin's paint to that so its image and grain size always land together;
363
+ otherwise the material image is tiled at the grain size (stripes). */
364
+ :is(
365
+ .dixy-card,
366
+ .dixy-box,
367
+ .dixy-dialog-popup,
368
+ .dixy-alert-dialog-popup,
369
+ .dixy-drawer-popup,
370
+ .dixy-popover-popup,
371
+ .dixy-preview-card-popup,
372
+ .dixy-tooltip-popup,
373
+ .dixy-select-popup,
374
+ .dixy-combobox-popup,
375
+ .dixy-autocomplete-popup,
376
+ .dixy-menu-popup,
377
+ .dixy-context-menu-popup,
378
+ .dixy-navigation-menu-popup,
379
+ .dixy-toast-root,
380
+ .dixy-alert,
381
+ .dixy-list-box,
382
+ .dixy-calendar,
383
+ .dixy-range-calendar,
384
+ .dixy-input,
385
+ .dixy-textarea,
386
+ .dixy-native-select,
387
+ .dixy-select-trigger,
388
+ .dixy-input-group,
389
+ .dixy-combobox-input-group,
390
+ .dixy-autocomplete-input-group,
391
+ .dixy-number-field-group,
392
+ .dixy-otp-field-input
393
+ )[data-dixy-skin="dixy/prism-glass"]:not([data-dixy-material-override]):not(
394
+ :where([data-dixy-material-override]) *
395
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
396
+ background-image: var(--dixy-skin-paint);
397
+ }
329
398
  :is(.dixy-button)[data-dixy-skin="dixy/prism-glass"]:not(
330
399
  [data-dixy-material-override]
331
400
  ):not(:where([data-dixy-material-override]) *):is(
@@ -356,14 +425,19 @@
356
425
  border: 1px solid var(--dixy-skin-edge);
357
426
  box-shadow: var(--dixy-skin-inset);
358
427
  }
428
+ /* 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). */
359
429
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/prism-glass"]:not(
360
430
  [data-dixy-material-override]
361
431
  ):not(:where([data-dixy-material-override]) *) {
362
- background-image: var(--dixy-skin-finish);
363
432
  box-shadow: var(--dixy-skin-control-relief);
364
433
  border: 1px solid var(--dixy-skin-edge);
365
434
  }
366
- /* 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). */
435
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/prism-glass"]:not(
436
+ [data-dixy-material-override]
437
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
438
+ background-image: none;
439
+ }
440
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
367
441
  .dixy-theme[data-dixy-skin="dixy/prism-glass"]
368
442
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
369
443
  [data-dixy-material-override]
@@ -378,7 +452,7 @@
378
452
  [data-variant="solid"]
379
453
  )[data-pressed]:not([data-disabled]) {
380
454
  background-color: var(--dixy-color-background-surface-raised);
381
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
455
+ background-image: none;
382
456
  box-shadow: var(--dixy-skin-control-relief);
383
457
  border-color: var(--dixy-skin-edge);
384
458
  color: var(--dixy-color-text-primary);
package/dist/recipes.d.ts CHANGED
@@ -107,6 +107,8 @@ export declare const materialRecipes: {
107
107
  readonly darkEdge: "#4a3150";
108
108
  readonly shadow: "8px 10px 22px rgb(214 120 150 / .3), -6px -6px 16px color-mix(in srgb, var(--dixy-color-background-canvas) 60%, #fff), inset 2px 2px 3px rgb(255 255 255 / .5)";
109
109
  readonly inset: "inset 3px 3px 6px rgb(214 120 150 / .28), inset -3px -3px 6px color-mix(in srgb, var(--dixy-color-background-canvas) 50%, #fff)";
110
+ readonly darkShadow: "6px 8px 18px rgb(0 0 0 / .4), -3px -3px 10px rgb(255 255 255 / .04), inset 2px 2px 3px rgb(255 255 255 / .12)";
111
+ readonly darkInset: "inset 3px 3px 6px rgb(0 0 0 / .35), inset -3px -3px 6px rgb(255 255 255 / .05)";
110
112
  readonly canvas: "radial-gradient(ellipse at 20% 0%, rgb(255 181 71 / .14), transparent 55%), radial-gradient(ellipse at 90% 90%, rgb(180 139 255 / .14), transparent 55%)";
111
113
  readonly tint: readonly ["#fff6f2", "#36233c", "#ffe9ef"];
112
114
  readonly label: "Candy clay";
@@ -451,6 +453,121 @@ export declare const materialRecipes: {
451
453
  readonly thumb: "radial-gradient(circle at 35% 25%,#ffffff,#ffffffb3 40%,#cfe2ff80 70%,#ffffff4d)";
452
454
  readonly tintActions: false;
453
455
  };
456
+ readonly "sunset-neon": {
457
+ readonly label: "Sunset neon";
458
+ readonly baseMaterial: "glossy";
459
+ readonly finish: "linear-gradient(180deg,#ffffff14,transparent 35%,#ff4fa30d)";
460
+ readonly edge: "#f2b8d6";
461
+ readonly darkEdge: "#6e3570";
462
+ readonly shadow: "inset 0 1px 0 #ffffff40,0 14px 30px -16px #ff4fa366";
463
+ readonly darkShadow: "0 0 0 1px #ff4fa31a,0 18px 36px -18px #ff4fa366";
464
+ readonly inset: "inset 0 2px 4px #1b0b3022";
465
+ readonly darkInset: "inset 0 2px 5px #00000066";
466
+ readonly canvas: "linear-gradient(180deg,#fff3f8 0%,#ffe2ee 55%,#ffd9c2 100%)";
467
+ readonly darkCanvas: "radial-gradient(70% 45% at 50% 100%,#ff7a5938,transparent 70%),linear-gradient(180deg,#1b0b30 0%,#26103f 60%,#38134c 100%)";
468
+ readonly tint: readonly ["#fff8fb", "#24103a", "#ffe6f0"];
469
+ readonly grain: "radial-gradient(circle at 1px 1px,#ffffff06 .5px,transparent .8px)";
470
+ readonly thumb: "linear-gradient(180deg,#ffd56b,#ff7a59 50%,#ff4fa3)";
471
+ readonly tintActions: false;
472
+ };
473
+ readonly "ledger-ruled": {
474
+ readonly label: "Ledger ruled";
475
+ readonly baseMaterial: "matte";
476
+ readonly finish: "linear-gradient(transparent,transparent)";
477
+ readonly edge: "#d3d6db";
478
+ readonly darkEdge: "#2c3138";
479
+ readonly shadow: "0 1px 2px #1018280f";
480
+ readonly darkShadow: "0 1px 2px #00000066";
481
+ readonly inset: "inset 0 1px 1px #1018280d";
482
+ readonly darkInset: "inset 0 1px 1px #00000059";
483
+ readonly canvas: "repeating-linear-gradient(90deg,transparent 0 119px,#0b6e4f0d 119px 120px)";
484
+ readonly darkCanvas: "repeating-linear-gradient(90deg,transparent 0 119px,#3ecf8e12 119px 120px)";
485
+ readonly tint: readonly ["#fbfbf9", "#111317", "#eef0ec"];
486
+ readonly grain: "linear-gradient(transparent,transparent)";
487
+ readonly thumb: "linear-gradient(#ffffff,#ffffff)";
488
+ readonly tintActions: false;
489
+ };
490
+ readonly "layer-grid": {
491
+ readonly label: "Layer grid";
492
+ readonly baseMaterial: "matte";
493
+ readonly finish: "linear-gradient(transparent,transparent)";
494
+ readonly edge: "#c6c6c6";
495
+ readonly darkEdge: "#393939";
496
+ readonly shadow: "0 0 #0000";
497
+ readonly inset: "0 0 #0000";
498
+ readonly canvas: "linear-gradient(#f4f4f4,#f4f4f4)";
499
+ readonly darkCanvas: "linear-gradient(#161616,#161616)";
500
+ readonly tint: readonly ["#ffffff", "#262626", "#e0e0e0"];
501
+ readonly grain: "linear-gradient(transparent,transparent)";
502
+ readonly thumb: "linear-gradient(#ffffff,#ffffff)";
503
+ readonly tintActions: false;
504
+ };
505
+ readonly "mono-ink": {
506
+ readonly label: "Mono ink";
507
+ readonly baseMaterial: "matte";
508
+ readonly finish: "linear-gradient(transparent,transparent)";
509
+ readonly edge: "#e2e2e2";
510
+ readonly darkEdge: "#2a2a2a";
511
+ readonly shadow: "0 1px 2px #0000000f,0 10px 24px -14px #00000029";
512
+ readonly darkShadow: "0 0 0 1px #ffffff0d";
513
+ readonly inset: "0 0 #0000";
514
+ readonly canvas: "linear-gradient(#ffffff,#ffffff)";
515
+ readonly darkCanvas: "linear-gradient(#000000,#000000)";
516
+ readonly tint: readonly ["#ffffff", "#000000", "#f3f3f3"];
517
+ readonly grain: "linear-gradient(transparent,transparent)";
518
+ readonly thumb: "linear-gradient(#ffffff,#ffffff)";
519
+ readonly tintActions: false;
520
+ readonly monoAccent: true;
521
+ };
522
+ readonly "signal-contrast": {
523
+ readonly label: "Signal contrast";
524
+ readonly baseMaterial: "matte";
525
+ readonly finish: "linear-gradient(transparent,transparent)";
526
+ readonly edge: "#000000";
527
+ readonly darkEdge: "#ffffff";
528
+ readonly shadow: "0 0 #0000";
529
+ readonly inset: "0 0 #0000";
530
+ readonly canvas: "linear-gradient(#ffffff,#ffffff)";
531
+ readonly darkCanvas: "linear-gradient(#000000,#000000)";
532
+ readonly tint: readonly ["#ffffff", "#000000", "#ffffff"];
533
+ readonly grain: "linear-gradient(transparent,transparent)";
534
+ readonly thumb: "linear-gradient(#ffffff,#ffffff)";
535
+ readonly tintActions: false;
536
+ readonly controlHeights: readonly ["44px", "48px", "56px"];
537
+ readonly deepSolid: true;
538
+ };
539
+ readonly "menu-window": {
540
+ readonly label: "Menu window";
541
+ readonly baseMaterial: "matte";
542
+ readonly finish: "linear-gradient(180deg,#ffffff14,transparent 55%)";
543
+ readonly edge: "#3a4aa8";
544
+ readonly darkEdge: "#e9edff";
545
+ readonly shadow: "0 4px 0 #0b165833";
546
+ readonly darkShadow: "inset 0 0 0 2px #0b1658,0 6px 0 #00000059";
547
+ readonly inset: "inset 0 2px 0 #0b165822";
548
+ readonly darkInset: "inset 0 2px 0 #00000040";
549
+ readonly canvas: "radial-gradient(90% 70% at 50% 120%,#c9d3ff,transparent 70%)";
550
+ readonly darkCanvas: "radial-gradient(90% 70% at 50% 120%,#1b2a7a,#05081c 75%)";
551
+ readonly tint: readonly ["#f4f6ff", "#16237e", "#e4e9ff"];
552
+ readonly grain: "linear-gradient(transparent,transparent)";
553
+ readonly thumb: "linear-gradient(180deg,#ffe066,#e0b400)";
554
+ readonly tintActions: false;
555
+ };
556
+ readonly "arcade-bezel": {
557
+ readonly label: "Arcade bezel";
558
+ readonly baseMaterial: "matte";
559
+ readonly finish: "repeating-linear-gradient(180deg,transparent 0 2px,#0000000d 2px 3px)";
560
+ readonly edge: "#1a1a1a";
561
+ readonly darkEdge: "#f4f4f4";
562
+ readonly shadow: "4px 4px 0 #e2141f";
563
+ readonly inset: "inset 0 0 0 1px #00000033";
564
+ readonly canvas: "repeating-linear-gradient(180deg,#00000008 0 1px,transparent 1px 3px)";
565
+ readonly darkCanvas: "radial-gradient(70% 60% at 50% 40%,#17172a,#050505 80%)";
566
+ readonly tint: readonly ["#fbf8ef", "#0e0e14", "#ece6d6"];
567
+ readonly grain: "linear-gradient(transparent,transparent)";
568
+ readonly thumb: "linear-gradient(#ffd400,#ffd400)";
569
+ readonly tintActions: false;
570
+ };
454
571
  };
455
572
  export declare const frameRecipes: {
456
573
  readonly none: {
@@ -933,6 +1050,51 @@ export declare const frameRecipes: {
933
1050
  readonly cornerVariation: 0;
934
1051
  };
935
1052
  };
1053
+ readonly sunset: {
1054
+ readonly label: "Sunset grid";
1055
+ readonly version: 1;
1056
+ readonly renderer: "SunsetOrnament";
1057
+ readonly rendererEntry: "sunset-drive/react";
1058
+ readonly defaults: {
1059
+ readonly width: 1;
1060
+ readonly paddingTop: 34;
1061
+ readonly paddingInline: 30;
1062
+ readonly paddingBottom: 32;
1063
+ readonly inset: 10;
1064
+ readonly cornerScale: 1;
1065
+ readonly cornerVariation: 0;
1066
+ };
1067
+ };
1068
+ readonly menu: {
1069
+ readonly label: "Menu window";
1070
+ readonly version: 1;
1071
+ readonly renderer: "SavePointOrnament";
1072
+ readonly rendererEntry: "save-point/react";
1073
+ readonly defaults: {
1074
+ readonly width: 2;
1075
+ readonly paddingTop: 30;
1076
+ readonly paddingInline: 28;
1077
+ readonly paddingBottom: 28;
1078
+ readonly inset: 6;
1079
+ readonly cornerScale: 1;
1080
+ readonly cornerVariation: 0;
1081
+ };
1082
+ };
1083
+ readonly marquee: {
1084
+ readonly label: "Arcade marquee";
1085
+ readonly version: 1;
1086
+ readonly renderer: "ArcadeOrnament";
1087
+ readonly rendererEntry: "arcade-cabinet/react";
1088
+ readonly defaults: {
1089
+ readonly width: 3;
1090
+ readonly paddingTop: 32;
1091
+ readonly paddingInline: 28;
1092
+ readonly paddingBottom: 30;
1093
+ readonly inset: 8;
1094
+ readonly cornerScale: 1;
1095
+ readonly cornerVariation: 0;
1096
+ };
1097
+ };
936
1098
  };
937
1099
  export type MaterialRecipeId = keyof typeof materialRecipes;
938
1100
  export type FrameRecipeId = keyof typeof frameRecipes;
package/dist/recipes.js CHANGED
@@ -108,6 +108,9 @@ export const materialRecipes = freezeData({
108
108
  darkEdge: "#4a3150",
109
109
  shadow: "8px 10px 22px rgb(214 120 150 / .3), -6px -6px 16px color-mix(in srgb, var(--dixy-color-background-canvas) 60%, #fff), inset 2px 2px 3px rgb(255 255 255 / .5)",
110
110
  inset: "inset 3px 3px 6px rgb(214 120 150 / .28), inset -3px -3px 6px color-mix(in srgb, var(--dixy-color-background-canvas) 50%, #fff)",
111
+ // The light shadow's white highlight and pink halo read as a glow on a dark canvas.
112
+ darkShadow: "6px 8px 18px rgb(0 0 0 / .4), -3px -3px 10px rgb(255 255 255 / .04), inset 2px 2px 3px rgb(255 255 255 / .12)",
113
+ darkInset: "inset 3px 3px 6px rgb(0 0 0 / .35), inset -3px -3px 6px rgb(255 255 255 / .05)",
111
114
  canvas: "radial-gradient(ellipse at 20% 0%, rgb(255 181 71 / .14), transparent 55%), radial-gradient(ellipse at 90% 90%, rgb(180 139 255 / .14), transparent 55%)",
112
115
  tint: ["#fff6f2", "#36233c", "#ffe9ef"],
113
116
  label: "Candy clay",
@@ -453,6 +456,122 @@ export const materialRecipes = freezeData({
453
456
  thumb: "radial-gradient(circle at 35% 25%,#ffffff,#ffffffb3 40%,#cfe2ff80 70%,#ffffff4d)",
454
457
  tintActions: false,
455
458
  },
459
+ // 2027 game starters.
460
+ "sunset-neon": {
461
+ label: "Sunset neon",
462
+ baseMaterial: "glossy",
463
+ finish: "linear-gradient(180deg,#ffffff14,transparent 35%,#ff4fa30d)",
464
+ edge: "#f2b8d6",
465
+ darkEdge: "#6e3570",
466
+ shadow: "inset 0 1px 0 #ffffff40,0 14px 30px -16px #ff4fa366",
467
+ darkShadow: "0 0 0 1px #ff4fa31a,0 18px 36px -18px #ff4fa366",
468
+ inset: "inset 0 2px 4px #1b0b3022",
469
+ darkInset: "inset 0 2px 5px #00000066",
470
+ canvas: "linear-gradient(180deg,#fff3f8 0%,#ffe2ee 55%,#ffd9c2 100%)",
471
+ darkCanvas: "radial-gradient(70% 45% at 50% 100%,#ff7a5938,transparent 70%),linear-gradient(180deg,#1b0b30 0%,#26103f 60%,#38134c 100%)",
472
+ tint: ["#fff8fb", "#24103a", "#ffe6f0"],
473
+ grain: "radial-gradient(circle at 1px 1px,#ffffff06 .5px,transparent .8px)",
474
+ thumb: "linear-gradient(180deg,#ffd56b,#ff7a59 50%,#ff4fa3)",
475
+ tintActions: false,
476
+ },
477
+ "ledger-ruled": {
478
+ label: "Ledger ruled",
479
+ baseMaterial: "matte",
480
+ finish: "linear-gradient(transparent,transparent)",
481
+ edge: "#d3d6db",
482
+ darkEdge: "#2c3138",
483
+ shadow: "0 1px 2px #1018280f",
484
+ darkShadow: "0 1px 2px #00000066",
485
+ inset: "inset 0 1px 1px #1018280d",
486
+ darkInset: "inset 0 1px 1px #00000059",
487
+ canvas: "repeating-linear-gradient(90deg,transparent 0 119px,#0b6e4f0d 119px 120px)",
488
+ darkCanvas: "repeating-linear-gradient(90deg,transparent 0 119px,#3ecf8e12 119px 120px)",
489
+ tint: ["#fbfbf9", "#111317", "#eef0ec"],
490
+ grain: "linear-gradient(transparent,transparent)",
491
+ thumb: "linear-gradient(#ffffff,#ffffff)",
492
+ tintActions: false,
493
+ },
494
+ "layer-grid": {
495
+ label: "Layer grid",
496
+ baseMaterial: "matte",
497
+ finish: "linear-gradient(transparent,transparent)",
498
+ edge: "#c6c6c6",
499
+ darkEdge: "#393939",
500
+ shadow: "0 0 #0000",
501
+ inset: "0 0 #0000",
502
+ canvas: "linear-gradient(#f4f4f4,#f4f4f4)",
503
+ darkCanvas: "linear-gradient(#161616,#161616)",
504
+ tint: ["#ffffff", "#262626", "#e0e0e0"],
505
+ grain: "linear-gradient(transparent,transparent)",
506
+ thumb: "linear-gradient(#ffffff,#ffffff)",
507
+ tintActions: false,
508
+ },
509
+ "mono-ink": {
510
+ label: "Mono ink",
511
+ baseMaterial: "matte",
512
+ finish: "linear-gradient(transparent,transparent)",
513
+ edge: "#e2e2e2",
514
+ darkEdge: "#2a2a2a",
515
+ shadow: "0 1px 2px #0000000f,0 10px 24px -14px #00000029",
516
+ darkShadow: "0 0 0 1px #ffffff0d",
517
+ inset: "0 0 #0000",
518
+ canvas: "linear-gradient(#ffffff,#ffffff)",
519
+ darkCanvas: "linear-gradient(#000000,#000000)",
520
+ tint: ["#ffffff", "#000000", "#f3f3f3"],
521
+ grain: "linear-gradient(transparent,transparent)",
522
+ thumb: "linear-gradient(#ffffff,#ffffff)",
523
+ tintActions: false,
524
+ monoAccent: true,
525
+ },
526
+ "signal-contrast": {
527
+ label: "Signal contrast",
528
+ baseMaterial: "matte",
529
+ finish: "linear-gradient(transparent,transparent)",
530
+ edge: "#000000",
531
+ darkEdge: "#ffffff",
532
+ shadow: "0 0 #0000",
533
+ inset: "0 0 #0000",
534
+ canvas: "linear-gradient(#ffffff,#ffffff)",
535
+ darkCanvas: "linear-gradient(#000000,#000000)",
536
+ tint: ["#ffffff", "#000000", "#ffffff"],
537
+ grain: "linear-gradient(transparent,transparent)",
538
+ thumb: "linear-gradient(#ffffff,#ffffff)",
539
+ tintActions: false,
540
+ controlHeights: ["44px", "48px", "56px"],
541
+ deepSolid: true,
542
+ },
543
+ "menu-window": {
544
+ label: "Menu window",
545
+ baseMaterial: "matte",
546
+ finish: "linear-gradient(180deg,#ffffff14,transparent 55%)",
547
+ edge: "#3a4aa8",
548
+ darkEdge: "#e9edff",
549
+ shadow: "0 4px 0 #0b165833",
550
+ darkShadow: "inset 0 0 0 2px #0b1658,0 6px 0 #00000059",
551
+ inset: "inset 0 2px 0 #0b165822",
552
+ darkInset: "inset 0 2px 0 #00000040",
553
+ canvas: "radial-gradient(90% 70% at 50% 120%,#c9d3ff,transparent 70%)",
554
+ darkCanvas: "radial-gradient(90% 70% at 50% 120%,#1b2a7a,#05081c 75%)",
555
+ tint: ["#f4f6ff", "#16237e", "#e4e9ff"],
556
+ grain: "linear-gradient(transparent,transparent)",
557
+ thumb: "linear-gradient(180deg,#ffe066,#e0b400)",
558
+ tintActions: false,
559
+ },
560
+ "arcade-bezel": {
561
+ label: "Arcade bezel",
562
+ baseMaterial: "matte",
563
+ finish: "repeating-linear-gradient(180deg,transparent 0 2px,#0000000d 2px 3px)",
564
+ edge: "#1a1a1a",
565
+ darkEdge: "#f4f4f4",
566
+ shadow: "4px 4px 0 #e2141f",
567
+ inset: "inset 0 0 0 1px #00000033",
568
+ canvas: "repeating-linear-gradient(180deg,#00000008 0 1px,transparent 1px 3px)",
569
+ darkCanvas: "radial-gradient(70% 60% at 50% 40%,#17172a,#050505 80%)",
570
+ tint: ["#fbf8ef", "#0e0e14", "#ece6d6"],
571
+ grain: "linear-gradient(transparent,transparent)",
572
+ thumb: "linear-gradient(#ffd400,#ffd400)",
573
+ tintActions: false,
574
+ },
456
575
  });
457
576
  export const frameRecipes = freezeData({
458
577
  none: {
@@ -936,4 +1055,49 @@ export const frameRecipes = freezeData({
936
1055
  cornerVariation: 0,
937
1056
  },
938
1057
  },
1058
+ sunset: {
1059
+ label: "Sunset grid",
1060
+ version: 1,
1061
+ renderer: "SunsetOrnament",
1062
+ rendererEntry: "sunset-drive/react",
1063
+ defaults: {
1064
+ width: 1,
1065
+ paddingTop: 34,
1066
+ paddingInline: 30,
1067
+ paddingBottom: 32,
1068
+ inset: 10,
1069
+ cornerScale: 1,
1070
+ cornerVariation: 0,
1071
+ },
1072
+ },
1073
+ menu: {
1074
+ label: "Menu window",
1075
+ version: 1,
1076
+ renderer: "SavePointOrnament",
1077
+ rendererEntry: "save-point/react",
1078
+ defaults: {
1079
+ width: 2,
1080
+ paddingTop: 30,
1081
+ paddingInline: 28,
1082
+ paddingBottom: 28,
1083
+ inset: 6,
1084
+ cornerScale: 1,
1085
+ cornerVariation: 0,
1086
+ },
1087
+ },
1088
+ marquee: {
1089
+ label: "Arcade marquee",
1090
+ version: 1,
1091
+ renderer: "ArcadeOrnament",
1092
+ rendererEntry: "arcade-cabinet/react",
1093
+ defaults: {
1094
+ width: 3,
1095
+ paddingTop: 32,
1096
+ paddingInline: 28,
1097
+ paddingBottom: 30,
1098
+ inset: 8,
1099
+ cornerScale: 1,
1100
+ cornerVariation: 0,
1101
+ },
1102
+ },
939
1103
  });