@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
@@ -32,6 +32,11 @@
32
32
  --dixy-font-title-sm-family:
33
33
  "Fraunces Variable", "Fraunces", ui-serif, Georgia, serif;
34
34
  --dixy-skin-edge: #efc27a;
35
+ --dixy-skin-field-edge: color-mix(
36
+ in oklab,
37
+ var(--dixy-color-base-9) 50%,
38
+ var(--dixy-color-base-8)
39
+ );
35
40
  --dixy-organic-density: 50;
36
41
  --dixy-organic-cornerDensity: 75;
37
42
  --dixy-organic-canopyDepth: 45;
@@ -108,7 +113,6 @@
108
113
  --dixy-organic-b: #ffb627;
109
114
  --dixy-organic-c: #ffe08a;
110
115
  --dixy-organic-d: #26c6b0;
111
- --dixy-skin-selected: var(--dixy-skin-finish);
112
116
  --dixy-color-text-primary: color-mix(
113
117
  in srgb,
114
118
  var(--dixy-color-base-12) 75%,
@@ -126,6 +130,7 @@
126
130
  #2a0b2e
127
131
  );
128
132
  }
133
+
129
134
  .dixy-theme[data-dixy-skin="dixy/diwali-lights"][data-relief="2"] {
130
135
  --dixy-skin-shadow:
131
136
  var(--dixy-skin-depth-shadow, var(--dixy-skin-authored-shadow)),
@@ -261,6 +266,30 @@
261
266
  ):not([data-variant="soft"]) {
262
267
  background-color: var(--dixy-skin-surface);
263
268
  }
269
+ :is(
270
+ .dixy-dialog-popup,
271
+ .dixy-alert-dialog-popup,
272
+ .dixy-drawer-popup,
273
+ .dixy-popover-popup,
274
+ .dixy-preview-card-popup,
275
+ .dixy-tooltip-popup,
276
+ .dixy-select-popup,
277
+ .dixy-combobox-popup,
278
+ .dixy-autocomplete-popup,
279
+ .dixy-menu-popup,
280
+ .dixy-context-menu-popup,
281
+ .dixy-navigation-menu-popup
282
+ )[data-dixy-skin="dixy/diwali-lights"]:not(
283
+ [data-dixy-material-override]
284
+ ):not(:where([data-dixy-material-override]) *):not(
285
+ [data-variant="solid"]
286
+ ):not([data-variant="soft"]) {
287
+ background-color: color-mix(
288
+ in srgb,
289
+ var(--dixy-color-background-surface-raised) 94%,
290
+ var(--dixy-skin-surface)
291
+ );
292
+ }
264
293
  :is(
265
294
  .dixy-input,
266
295
  .dixy-textarea,
@@ -274,6 +303,11 @@
274
303
  )[data-dixy-skin="dixy/diwali-lights"] {
275
304
  border-radius: calc(var(--dixy-radius-control) * 1);
276
305
  }
306
+ :is(.dixy-textarea)[data-dixy-skin="dixy/diwali-lights"] {
307
+ border-radius: calc(
308
+ min(var(--dixy-radius-control), var(--dixy-radius-card)) * 1
309
+ );
310
+ }
277
311
  :is(
278
312
  .dixy-input,
279
313
  .dixy-textarea,
@@ -288,7 +322,7 @@
288
322
  [data-dixy-material-override]
289
323
  ):not(:where([data-dixy-material-override]) *) {
290
324
  border-width: var(--dixy-input-border-width);
291
- border-color: var(--dixy-skin-edge);
325
+ border-color: var(--dixy-skin-field-edge);
292
326
  background-image: var(--dixy-skin-paint);
293
327
  background-color: var(--dixy-color-background-canvas);
294
328
  background-size:
@@ -298,6 +332,45 @@
298
332
  100% 100%;
299
333
  box-shadow: var(--dixy-skin-inset);
300
334
  }
335
+ /* materials.css styles [data-dixy-visual] surfaces at 0,5,0. Match the
336
+ skin's paint to that so its image and grain size always land together;
337
+ otherwise the material image is tiled at the grain size (stripes). */
338
+ :is(
339
+ .dixy-card,
340
+ .dixy-box,
341
+ .dixy-dialog-popup,
342
+ .dixy-alert-dialog-popup,
343
+ .dixy-drawer-popup,
344
+ .dixy-popover-popup,
345
+ .dixy-preview-card-popup,
346
+ .dixy-tooltip-popup,
347
+ .dixy-select-popup,
348
+ .dixy-combobox-popup,
349
+ .dixy-autocomplete-popup,
350
+ .dixy-menu-popup,
351
+ .dixy-context-menu-popup,
352
+ .dixy-navigation-menu-popup,
353
+ .dixy-toast-root,
354
+ .dixy-alert,
355
+ .dixy-list-box,
356
+ .dixy-calendar,
357
+ .dixy-range-calendar,
358
+ .dixy-input,
359
+ .dixy-textarea,
360
+ .dixy-native-select,
361
+ .dixy-select-trigger,
362
+ .dixy-input-group,
363
+ .dixy-combobox-input-group,
364
+ .dixy-autocomplete-input-group,
365
+ .dixy-number-field-group,
366
+ .dixy-otp-field-input
367
+ )[data-dixy-skin="dixy/diwali-lights"]:not(
368
+ [data-dixy-material-override]
369
+ ):not(
370
+ :where([data-dixy-material-override]) *
371
+ )[data-dixy-visual][data-material]:not([data-disabled]) {
372
+ background-image: var(--dixy-skin-paint);
373
+ }
301
374
  :is(.dixy-button)[data-dixy-skin="dixy/diwali-lights"]:not(
302
375
  [data-dixy-material-override]
303
376
  ):not(:where([data-dixy-material-override]) *):is(
@@ -328,14 +401,19 @@
328
401
  border: 1px solid var(--dixy-skin-edge);
329
402
  box-shadow: var(--dixy-skin-inset);
330
403
  }
404
+ /* 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). */
331
405
  :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/diwali-lights"]:not(
332
406
  [data-dixy-material-override]
333
407
  ):not(:where([data-dixy-material-override]) *) {
334
- background-image: var(--dixy-skin-finish);
335
408
  box-shadow: var(--dixy-skin-control-relief);
336
409
  border: 1px solid var(--dixy-skin-edge);
337
410
  }
338
- /* 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). */
411
+ :is(.dixy-tabs-indicator)[data-dixy-skin="dixy/diwali-lights"]:not(
412
+ [data-dixy-material-override]
413
+ ):not(:where([data-dixy-material-override]) *):not([data-variant="line"]) {
414
+ background-image: none;
415
+ }
416
+ /* Toggle groups read like tabs: a sunken track, the selected toggle a raised, flat thumb. */
339
417
  .dixy-theme[data-dixy-skin="dixy/diwali-lights"]
340
418
  .dixy-toggle-group:is([data-attached], [data-segmented]):not(
341
419
  [data-dixy-material-override]
@@ -350,7 +428,7 @@
350
428
  [data-variant="solid"]
351
429
  )[data-pressed]:not([data-disabled]) {
352
430
  background-color: var(--dixy-color-background-surface-raised);
353
- background-image: var(--dixy-skin-selected, var(--dixy-skin-thumb));
431
+ background-image: none;
354
432
  box-shadow: var(--dixy-skin-control-relief);
355
433
  border-color: var(--dixy-skin-edge);
356
434
  color: var(--dixy-color-text-primary);
@@ -1,4 +1,112 @@
1
- /** Portable recipes for all eleven installed themes. */
1
+ /** Each starter as authored, before any saved fix from the theme audit. */
2
+ export declare const starterDocuments: {
3
+ readonly schemaVersion: 6;
4
+ readonly id: string;
5
+ readonly name: string;
6
+ readonly revision: number;
7
+ readonly foundations: {
8
+ readonly accentColor: "ruby" | "blue" | "brown" | "crimson" | "cyan" | "fuchsia" | "gold" | "gray" | "green" | "indigo" | "lime" | "olive" | "orange" | "pink" | "plum" | "purple" | "red" | "teal" | "tomato" | "violet" | "yellow" | "neutral" | "slate" | "zinc" | "stone" | "taupe" | "mauve" | "mist" | "sage" | "sand" | "rose" | "iris" | "sky" | "emerald" | "jade" | "grass" | "mint" | "amber" | "bronze";
9
+ readonly customAccent: boolean;
10
+ readonly lightness: number;
11
+ readonly chroma: number;
12
+ readonly hue: number;
13
+ readonly neutralColor: "gray" | "olive" | "neutral" | "slate" | "zinc" | "stone" | "taupe" | "mauve" | "mist" | "sage" | "sand";
14
+ readonly radius: "none" | "full" | "lg" | "md" | "sm";
15
+ readonly density: "default" | "compact" | "comfortable";
16
+ readonly material: "glossy" | "soft" | "matte" | "metal" | "paper";
17
+ readonly componentFinish: "inherit" | "glossy" | "soft" | "matte" | "metal" | "paper";
18
+ readonly shape: "square" | "rounded" | "pill";
19
+ readonly appearance: "dark" | "light";
20
+ 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";
21
+ 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";
22
+ readonly border: 2 | 1;
23
+ readonly depth: "none" | "raised" | "floating";
24
+ readonly ornament: "balanced" | "expressive" | "quiet";
25
+ readonly relief: 0 | 2 | 1;
26
+ readonly effects: "static" | "reduced" | "backdrop";
27
+ };
28
+ readonly recipes: {
29
+ readonly material: {
30
+ 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";
31
+ readonly version: 1;
32
+ readonly parameters: {
33
+ readonly surfaceMix: number;
34
+ readonly darkSurfaceMix: number;
35
+ readonly sheen: number;
36
+ readonly cushion: number;
37
+ readonly inkTint: number;
38
+ readonly textureScale: number;
39
+ readonly lightAngle: number;
40
+ readonly backdropBlur: number;
41
+ readonly backdropSaturate: number;
42
+ };
43
+ };
44
+ readonly frame: {
45
+ 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";
46
+ readonly version: 1;
47
+ readonly ornament: {
48
+ 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";
49
+ readonly canopy: "Scattered trails" | "Corner cascades" | "Overhead boughs" | "Long tendrils" | "Open crown";
50
+ readonly stem: "Twining vines" | "Woody branches" | "Tender shoots" | "Mossy roots";
51
+ readonly density: number;
52
+ readonly cornerDensity: number;
53
+ readonly canopyDepth: number;
54
+ readonly variation: number;
55
+ readonly scale: number;
56
+ readonly stemWeight: number;
57
+ readonly motion: number;
58
+ readonly seed: number;
59
+ };
60
+ readonly parameters: {
61
+ readonly width: number;
62
+ readonly paddingTop: number;
63
+ readonly paddingInline: number;
64
+ readonly paddingBottom: number;
65
+ readonly inset: number;
66
+ readonly cornerVariation: number;
67
+ readonly cornerScale: number;
68
+ };
69
+ };
70
+ };
71
+ readonly character: {
72
+ readonly controls: "standard" | "glass" | "chrome" | "pixel" | "botanical" | "instrument" | "hardware" | "stitched" | "pearl" | "clay" | "brass" | "halo";
73
+ readonly motion: {
74
+ readonly style: "standard" | "stepped" | "snappy" | "springy" | "weighted" | "drift";
75
+ readonly press: number;
76
+ readonly tempo: number;
77
+ };
78
+ readonly type: {
79
+ readonly headingCase: "none" | "small-caps" | "uppercase";
80
+ readonly headingTracking: number;
81
+ readonly headingWeight: 400 | 500 | 600 | 700 | 900 | 300 | 800;
82
+ readonly numerals: "proportional" | "tabular" | "oldstyle";
83
+ };
84
+ readonly states: "standard" | "led" | "marching" | "inlay" | "glow" | "stamp";
85
+ readonly details: {
86
+ readonly focus: "offset" | "dashed" | "double" | "halo" | "glow" | "ring";
87
+ readonly divider: "line" | "dashed" | "dotted" | "double" | "groove";
88
+ readonly selection: "accent" | "inverse" | "highlighter";
89
+ readonly scrollbar: "accent" | "native" | "thin";
90
+ readonly iconStroke: number;
91
+ };
92
+ readonly backdrop: {
93
+ readonly pattern: "none" | "grid" | "scanlines" | "sunburst" | "caustics" | "fibre" | "dots" | "topo" | "halftone";
94
+ readonly intensity: number;
95
+ readonly scale: number;
96
+ };
97
+ readonly chrome: {
98
+ readonly titlebar: "none" | "caption" | "tab" | "grip" | "gradient" | "glass" | "chrome";
99
+ readonly edge: "bevel" | "line" | "double" | "pill" | "stepped";
100
+ readonly well: "none" | "paper" | "glass" | "lcd" | "recessed" | "tinted" | "sunken";
101
+ readonly corners: "round" | "inherit" | "pixel" | "notched";
102
+ };
103
+ };
104
+ }[];
105
+ /**
106
+ * Installed themes: each starter with its saved fix, if any. Fixes are small
107
+ * patches written by the playground's "Save as theme fix" (dev server only),
108
+ * so a reviewer sees exactly which values changed.
109
+ */
2
110
  export declare const themeDocuments: {
3
111
  readonly schemaVersion: 6;
4
112
  readonly id: string;
@@ -17,8 +125,8 @@ export declare const themeDocuments: {
17
125
  readonly componentFinish: "inherit" | "glossy" | "soft" | "matte" | "metal" | "paper";
18
126
  readonly shape: "square" | "rounded" | "pill";
19
127
  readonly appearance: "dark" | "light";
20
- 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";
21
- 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";
128
+ 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";
129
+ 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";
22
130
  readonly border: 2 | 1;
23
131
  readonly depth: "none" | "raised" | "floating";
24
132
  readonly ornament: "balanced" | "expressive" | "quiet";
@@ -27,7 +135,7 @@ export declare const themeDocuments: {
27
135
  };
28
136
  readonly recipes: {
29
137
  readonly material: {
30
- 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";
138
+ 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";
31
139
  readonly version: 1;
32
140
  readonly parameters: {
33
141
  readonly surfaceMix: number;
@@ -42,10 +150,10 @@ export declare const themeDocuments: {
42
150
  };
43
151
  };
44
152
  readonly frame: {
45
- 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";
153
+ 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";
46
154
  readonly version: 1;
47
155
  readonly ornament: {
48
- 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";
156
+ 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";
49
157
  readonly canopy: "Scattered trails" | "Corner cascades" | "Overhead boughs" | "Long tendrils" | "Open crown";
50
158
  readonly stem: "Twining vines" | "Woody branches" | "Tender shoots" | "Mossy roots";
51
159
  readonly density: number;
@@ -83,7 +191,7 @@ export declare const themeDocuments: {
83
191
  };
84
192
  readonly states: "standard" | "led" | "marching" | "inlay" | "glow" | "stamp";
85
193
  readonly details: {
86
- readonly focus: "offset" | "dashed" | "double" | "glow" | "ring";
194
+ readonly focus: "offset" | "dashed" | "double" | "halo" | "glow" | "ring";
87
195
  readonly divider: "line" | "dashed" | "dotted" | "double" | "groove";
88
196
  readonly selection: "accent" | "inverse" | "highlighter";
89
197
  readonly scrollbar: "accent" | "native" | "thin";
package/dist/documents.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { parseThemeDocument } from "./theme-schema.js";
2
+ import { applyThemeFix } from "./theme-fix.js";
3
+ import { themeFixes } from "./theme-fixes.js";
2
4
  import { defaultChrome } from "./chrome.js";
3
5
  import { launchCharacters, launchChrome, launchDocuments, } from "./starters-launch.js";
4
6
  /**
@@ -437,8 +439,8 @@ const starterCharacters = {
437
439
  backdrop: { pattern: "dots", intensity: 0.22, scale: 0.8 },
438
440
  },
439
441
  };
440
- /** Portable recipes for all eleven installed themes. */
441
- export const themeDocuments = [
442
+ /** Each starter as authored, before any saved fix from the theme audit. */
443
+ export const starterDocuments = [
442
444
  {
443
445
  schemaVersion: 2,
444
446
  id: "dixy/living-forest",
@@ -1409,3 +1411,9 @@ export const themeDocuments = [
1409
1411
  },
1410
1412
  });
1411
1413
  });
1414
+ /**
1415
+ * Installed themes: each starter with its saved fix, if any. Fixes are small
1416
+ * patches written by the playground's "Save as theme fix" (dev server only),
1417
+ * so a reviewer sees exactly which values changed.
1418
+ */
1419
+ export const themeDocuments = starterDocuments.map((document) => parseThemeDocument(applyThemeFix(document, themeFixes[document.id])));
@@ -88,6 +88,14 @@ export declare const themeFonts: {
88
88
  readonly label: "Manrope";
89
89
  readonly value: "\"Manrope Variable\", \"Manrope\", ui-sans-serif, system-ui, sans-serif";
90
90
  };
91
+ readonly atkinson: {
92
+ readonly label: "Atkinson Hyperlegible";
93
+ readonly value: "\"Atkinson Hyperlegible\", ui-sans-serif, system-ui, sans-serif";
94
+ };
95
+ readonly plexSans: {
96
+ readonly label: "IBM Plex Sans";
97
+ readonly value: "\"IBM Plex Sans Variable\", \"IBM Plex Sans\", ui-sans-serif, system-ui, sans-serif";
98
+ };
91
99
  readonly figtree: {
92
100
  readonly label: "Figtree";
93
101
  readonly value: "\"Figtree Variable\", \"Figtree\", ui-sans-serif, system-ui, sans-serif";
@@ -80,6 +80,14 @@ export const themeFonts = {
80
80
  label: "Manrope",
81
81
  value: '"Manrope Variable", "Manrope", ui-sans-serif, system-ui, sans-serif',
82
82
  },
83
+ atkinson: {
84
+ label: "Atkinson Hyperlegible",
85
+ value: '"Atkinson Hyperlegible", ui-sans-serif, system-ui, sans-serif',
86
+ },
87
+ plexSans: {
88
+ label: "IBM Plex Sans",
89
+ value: '"IBM Plex Sans Variable", "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif',
90
+ },
83
91
  figtree: {
84
92
  label: "Figtree",
85
93
  value: '"Figtree Variable", "Figtree", ui-sans-serif, system-ui, sans-serif',
@@ -111,6 +119,8 @@ export const themeFontPackages = {
111
119
  jetbrains: "@fontsource/jetbrains-mono",
112
120
  manrope: "@fontsource-variable/manrope",
113
121
  figtree: "@fontsource-variable/figtree",
122
+ plexSans: "@fontsource-variable/ibm-plex-sans",
123
+ atkinson: "@fontsource/atkinson-hyperlegible",
114
124
  cormorant: "@fontsource-variable/cormorant-garamond",
115
125
  };
116
126
  /** Shared by the compiled consumer settings and playground exports; no React or router import. */
@@ -31,6 +31,9 @@ export declare const framePrefixes: {
31
31
  readonly gulal: "holi";
32
32
  readonly knit: "yule";
33
33
  readonly liquid: "glass";
34
+ readonly sunset: "sunset";
35
+ readonly menu: "savepoint";
36
+ readonly marquee: "arcade";
34
37
  };
35
38
  /** Frame code owns trim/geometry only. It never paints an input or action surface. */
36
39
  export declare function frameStyles(m: ResolvedThemeRecipe, theme: string): string;
@@ -31,6 +31,9 @@ export const framePrefixes = {
31
31
  gulal: "holi",
32
32
  knit: "yule",
33
33
  liquid: "glass",
34
+ sunset: "sunset",
35
+ menu: "savepoint",
36
+ marquee: "arcade",
34
37
  };
35
38
  /** Frame code owns trim/geometry only. It never paints an input or action surface. */
36
39
  export function frameStyles(m, theme) {
@@ -125,6 +128,9 @@ export function frameStyles(m, theme) {
125
128
  details.gulal = `@keyframes dixy-holi-detail { from { opacity:.5; } to { opacity:1; } }`;
126
129
  details.knit = `@keyframes dixy-yule-detail { from { opacity:.5; } to { opacity:1; } }`;
127
130
  details.liquid = `@keyframes dixy-glass-detail { from { opacity:.5; } to { opacity:1; } }`;
131
+ details.sunset = `@keyframes dixy-sunset-detail { from { opacity:.5; } to { opacity:1; } }`;
132
+ details.menu = `@keyframes dixy-savepoint-detail { from { opacity:.5; } to { opacity:1; } }`;
133
+ details.marquee = `@keyframes dixy-arcade-detail { from { opacity:.5; } to { opacity:1; } }`;
128
134
  // Scope every legacy ornament selector as well, so two custom frames can coexist.
129
135
  const scoped = details[m.frame].replace(/(^|[}\n])([ \t]*)(\.dixy-[^{]+)\{/g, (_match, before, space, selector) => before +
130
136
  space +