@arraypress/covers 1.0.0 → 1.3.1

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 (246) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/README.md +18 -524
  3. package/package.json +34 -5
  4. package/recipes/brand.json +1143 -0
  5. package/recipes/flyers/afterglow-motion.json +540 -0
  6. package/recipes/flyers/afterglow.json +70 -0
  7. package/recipes/flyers/arcfield-mirror-motion.json +397 -0
  8. package/recipes/flyers/arcfield-mirror.json +364 -0
  9. package/recipes/flyers/bauhaus-oktav.json +319 -0
  10. package/recipes/flyers/bauhaus-ritmo.json +735 -0
  11. package/recipes/flyers/bauhaus-volta.json +394 -0
  12. package/recipes/flyers/bloomfall.json +99 -0
  13. package/recipes/flyers/drag-solenne-motion.json +444 -0
  14. package/recipes/flyers/drag-solenne.json +426 -0
  15. package/recipes/flyers/fennick-patches.json +874 -0
  16. package/recipes/flyers/ferro-pass.json +398 -0
  17. package/recipes/flyers/ferrova.json +812 -0
  18. package/recipes/flyers/grid-rest-rhythm.json +125 -0
  19. package/recipes/flyers/groovy-honeycomb.json +816 -0
  20. package/recipes/flyers/groovy-marigold.json +479 -0
  21. package/recipes/flyers/groovy-peachfuzz.json +974 -0
  22. package/recipes/flyers/halden-orbit-motion.json +381 -0
  23. package/recipes/flyers/halden-orbit.json +356 -0
  24. package/recipes/flyers/halvard.json +120 -0
  25. package/recipes/flyers/kairo-weekender.json +696 -0
  26. package/recipes/flyers/linger-motion.json +518 -0
  27. package/recipes/flyers/linger.json +67 -0
  28. package/recipes/flyers/little-orchard.json +105 -0
  29. package/recipes/flyers/lofi-hexmoth.json +912 -0
  30. package/recipes/flyers/lofi-lowbit-motion.json +888 -0
  31. package/recipes/flyers/lofi-lowbit.json +880 -0
  32. package/recipes/flyers/lofi-nullpoint.json +3013 -0
  33. package/recipes/flyers/lumio-stack-motion.json +648 -0
  34. package/recipes/flyers/lumio-stack.json +438 -0
  35. package/recipes/flyers/magazine-cover.json +168 -0
  36. package/recipes/flyers/magazine-extended.json +269 -0
  37. package/recipes/flyers/magazine-knockout.json +40 -0
  38. package/recipes/flyers/northfold-varsity.json +618 -0
  39. package/recipes/flyers/open-studio.json +69 -0
  40. package/recipes/flyers/orrin-merch.json +715 -0
  41. package/recipes/flyers/oxyde.json +113 -0
  42. package/recipes/flyers/quiet-fields.json +610 -0
  43. package/recipes/flyers/scrapbook-halcyon.json +948 -0
  44. package/recipes/flyers/solenne-ticket.json +730 -0
  45. package/recipes/flyers/solvane-motion.json +576 -0
  46. package/recipes/flyers/solvane.json +98 -0
  47. package/recipes/flyers/subduct.json +99 -0
  48. package/recipes/flyers/sunvale-lineup.json +584 -0
  49. package/recipes/flyers/tidewell.json +91 -0
  50. package/recipes/flyers/tour-kairo.json +535 -0
  51. package/recipes/flyers/velora-stickers.json +885 -0
  52. package/recipes/flyers/wheatpaste-black.json +313 -0
  53. package/recipes/flyers/wheatpaste-mark.json +198 -0
  54. package/recipes/flyers/wheatpaste-torn.json +114 -0
  55. package/recipes/flyers/wheatpaste-wall.json +984 -0
  56. package/recipes/flyers/wheatpaste-words.json +233 -0
  57. package/recipes/release/aura.json +137 -0
  58. package/recipes/release/chrome.json +433 -0
  59. package/recipes/release/collage.json +372 -0
  60. package/recipes/release/duotone.json +113 -0
  61. package/recipes/release/film-still.json +102 -0
  62. package/recipes/release/headline.json +70 -0
  63. package/recipes/release/instant.json +170 -0
  64. package/recipes/release/label.json +364 -0
  65. package/recipes/release/liquid-glass.json +301 -0
  66. package/recipes/release/odd-tile-dark.json +688 -0
  67. package/recipes/release/odd-tile-dense.json +1056 -0
  68. package/recipes/release/odd-tile-shift.json +541 -0
  69. package/recipes/release/odd-tile-split.json +571 -0
  70. package/recipes/release/odd-tile.json +633 -0
  71. package/recipes/release/off-edge.json +96 -0
  72. package/recipes/release/plinth.json +794 -0
  73. package/recipes/release/riso.json +108 -0
  74. package/recipes/release/series/fluid-label.json +561 -0
  75. package/recipes/release/series/fluid-pixel.json +334 -0
  76. package/recipes/release/series/hairline.json +305 -0
  77. package/recipes/release/series/halo.json +282 -0
  78. package/recipes/release/series/mark-crop.json +135 -0
  79. package/recipes/release/series/mark-window.json +150 -0
  80. package/recipes/release/series/photo-label.json +475 -0
  81. package/recipes/release/series/smear-field.json +345 -0
  82. package/recipes/release/series/smear.json +202 -0
  83. package/recipes/release/series/spin.json +172 -0
  84. package/recipes/release/series/split-ghost.json +230 -0
  85. package/recipes/release/series/zoom.json +168 -0
  86. package/recipes/release/small-print.json +114 -0
  87. package/recipes/release/stack.json +156 -0
  88. package/recipes/release/swiss.json +117 -0
  89. package/schema/recipe.schema.json +7624 -827
  90. package/src/animate/index.d.ts +9 -0
  91. package/src/animate/index.js +11 -0
  92. package/src/animate/keyframes.d.ts +21 -0
  93. package/src/animate/keyframes.js +119 -0
  94. package/src/animate/marquee.d.ts +30 -0
  95. package/src/animate/marquee.js +93 -0
  96. package/src/animate/morph.d.ts +8 -0
  97. package/src/animate/morph.js +99 -0
  98. package/src/animate/motion.d.ts +59 -0
  99. package/src/animate/motion.js +63 -0
  100. package/src/animate/sheet.d.ts +19 -0
  101. package/src/animate/sheet.js +61 -0
  102. package/src/animate/timing.d.ts +28 -0
  103. package/src/animate/timing.js +146 -0
  104. package/src/animate/tracks.d.ts +18 -0
  105. package/src/animate/tracks.js +139 -0
  106. package/src/builtins.js +4 -0
  107. package/src/diagram.js +4 -3
  108. package/src/extract.js +6 -5
  109. package/src/fonts.d.ts +55 -0
  110. package/src/fonts.js +245 -53
  111. package/src/formats/cut.d.ts +10 -0
  112. package/src/formats/cut.js +77 -0
  113. package/src/formats/index.d.ts +6 -0
  114. package/src/formats/index.js +9 -0
  115. package/src/formats/presets.d.ts +41 -0
  116. package/src/formats/presets.js +89 -0
  117. package/src/formats/print.d.ts +25 -0
  118. package/src/formats/print.js +117 -0
  119. package/src/formats/zones.d.ts +10 -0
  120. package/src/formats/zones.js +64 -0
  121. package/src/geometry.js +5 -35
  122. package/src/grid.js +1 -1
  123. package/src/handmade.js +9 -7
  124. package/src/icons.js +42 -9
  125. package/src/index.d.ts +232 -55
  126. package/src/index.js +14 -6
  127. package/src/inter-data.js +27 -0
  128. package/src/json-recipe.js +201 -27
  129. package/src/kit/index.d.ts +20 -0
  130. package/src/kit/index.js +58 -0
  131. package/src/layer-options.js +43 -4
  132. package/src/layers/barcode.d.ts +19 -0
  133. package/src/layers/barcode.js +63 -0
  134. package/src/layers/code128.d.ts +4 -0
  135. package/src/layers/code128.js +28 -0
  136. package/src/layers/expr.d.ts +6 -0
  137. package/src/layers/expr.js +121 -0
  138. package/src/layers/geometry.d.ts +6 -0
  139. package/src/layers/geometry.js +238 -0
  140. package/src/layers/index.d.ts +18 -0
  141. package/src/layers/index.js +15 -0
  142. package/src/layers/perforation.d.ts +14 -0
  143. package/src/layers/perforation.js +47 -0
  144. package/src/layers/repeat.d.ts +29 -0
  145. package/src/layers/repeat.js +90 -0
  146. package/src/layers/shape.d.ts +46 -0
  147. package/src/layers/shape.js +115 -0
  148. package/src/layers/soft.d.ts +5 -0
  149. package/src/layers/soft.js +43 -0
  150. package/src/layers/svg.d.ts +23 -0
  151. package/src/layers/svg.js +108 -0
  152. package/src/layers/table.d.ts +25 -0
  153. package/src/layers/table.js +80 -0
  154. package/src/layers/tear.d.ts +21 -0
  155. package/src/layers/tear.js +74 -0
  156. package/src/layers/texture.d.ts +17 -0
  157. package/src/layers/texture.js +106 -0
  158. package/src/layers/util.d.ts +8 -0
  159. package/src/layers/util.js +61 -0
  160. package/src/layers.js +129 -61
  161. package/src/lint/image-size.d.ts +4 -0
  162. package/src/lint/image-size.js +34 -0
  163. package/src/lint/index.d.ts +16 -0
  164. package/src/lint/index.js +127 -0
  165. package/src/lint/rules.d.ts +5 -0
  166. package/src/lint/rules.js +19 -0
  167. package/src/node.d.ts +2 -0
  168. package/src/node.js +20 -0
  169. package/src/paint/index.d.ts +49 -0
  170. package/src/paint/index.js +66 -0
  171. package/src/paint/presets.d.ts +10 -0
  172. package/src/paint/presets.js +47 -0
  173. package/src/paint/tile.d.ts +7 -0
  174. package/src/paint/tile.js +55 -0
  175. package/src/palette.js +1 -1
  176. package/src/platform/files.d.ts +6 -0
  177. package/src/platform/files.js +41 -0
  178. package/src/platform/harfbuzz.d.ts +9 -0
  179. package/src/platform/harfbuzz.js +80 -0
  180. package/src/platform/index.d.ts +8 -0
  181. package/src/platform/index.js +15 -0
  182. package/src/platform/load.d.ts +6 -0
  183. package/src/platform/load.js +71 -0
  184. package/src/platform/no-harfbuzz.d.ts +2 -0
  185. package/src/platform/no-harfbuzz.js +11 -0
  186. package/src/platform/settings.d.ts +28 -0
  187. package/src/platform/settings.js +51 -0
  188. package/src/print.js +16 -13
  189. package/src/recipes.js +5 -4
  190. package/src/render/backdrop.d.ts +6 -0
  191. package/src/render/backdrop.js +55 -0
  192. package/src/render/context.d.ts +82 -0
  193. package/src/render/grain.d.ts +7 -0
  194. package/src/render/grain.js +113 -0
  195. package/src/render/group.d.ts +23 -0
  196. package/src/render/group.js +67 -0
  197. package/src/render/key.d.ts +5 -0
  198. package/src/render/key.js +90 -0
  199. package/src/render/report.d.ts +5 -0
  200. package/src/render/report.js +19 -0
  201. package/src/render/transform.d.ts +36 -0
  202. package/src/render/transform.js +139 -0
  203. package/src/render/use.d.ts +27 -0
  204. package/src/render/use.js +73 -0
  205. package/src/render/wrap.d.ts +14 -0
  206. package/src/render/wrap.js +144 -0
  207. package/src/render.js +343 -215
  208. package/src/text.d.ts +29 -0
  209. package/src/text.js +23 -16
  210. package/src/type/auto-color.d.ts +9 -0
  211. package/src/type/auto-color.js +44 -0
  212. package/src/type/fallback.d.ts +11 -0
  213. package/src/type/fallback.js +92 -0
  214. package/src/type/glyphs.d.ts +24 -0
  215. package/src/type/glyphs.js +87 -0
  216. package/src/type/index.d.ts +5 -0
  217. package/src/type/index.js +10 -0
  218. package/src/type/kern.d.ts +4 -0
  219. package/src/type/kern.js +144 -0
  220. package/src/type/layout-ref.d.ts +10 -0
  221. package/src/type/layout-ref.js +74 -0
  222. package/src/type/line.d.ts +11 -0
  223. package/src/type/line.js +105 -0
  224. package/src/type/live.d.ts +6 -0
  225. package/src/type/live.js +39 -0
  226. package/src/type/name.d.ts +4 -0
  227. package/src/type/name.js +32 -0
  228. package/src/type/path.d.ts +18 -0
  229. package/src/type/path.js +89 -0
  230. package/src/type/pixel.d.ts +7 -0
  231. package/src/type/pixel.js +85 -0
  232. package/src/type/sfnt.d.ts +20 -0
  233. package/src/type/sfnt.js +258 -0
  234. package/src/type/spans.d.ts +33 -0
  235. package/src/type/spans.js +138 -0
  236. package/src/type/symbols.d.ts +7 -0
  237. package/src/type/symbols.js +89 -0
  238. package/src/type/typeset.d.ts +10 -0
  239. package/src/type/typeset.js +363 -0
  240. package/src/type/woff2.d.ts +6 -0
  241. package/src/type/woff2.js +301 -0
  242. package/src/version.js +4 -0
  243. package/src/color.js +0 -246
  244. package/src/png.js +0 -77
  245. package/src/rng.js +0 -95
  246. package/src/svg.js +0 -69
@@ -0,0 +1,99 @@
1
+ {
2
+ "$schema": "../../schema/recipe.schema.json",
3
+ "name": "subduct",
4
+ "description": "Acid, club flyer: a photo crushed to black and acid green (greyscale, photocopy grit, a hard levels curve, a colour matrix) and faded into the black by a luminance mask, the name stretched across the top, the lineup as tall condensed white lines justified to the width with set times beside them, a mono info grid in the foot. The photo is drawn at the top level (in % of the canvas) so it's resampled at the output size. With format 'release' it re-composes for a 3000×3000 cover: the name over the acid photo, the release title as one tall condensed line across the foot. Re-expressed from the Logomarks scenes lab (FlyerCards, 'Acid · club flyer').",
5
+ "params": {
6
+ "ground": "#050505",
7
+ "acid": "#c6ff1a",
8
+ "ink": "#ffffff",
9
+ "markColor": "#050505",
10
+ "name": "SUBDUCT",
11
+ "top": [[{ "content": "CLUB NIGHT 07", "weight": 700 }, "[ ROOM 2 ]", "FRI 05.12.26"]],
12
+ "times": [["22—00"], ["00—02"], ["02—04"], ["04—06"]],
13
+ "lineup": ["TAMSIN RUE", "KOVA LUNE", "OKKOLO B2B SAINT NIL", "DJ MERRICK"],
14
+ "info": [
15
+ [{ "content": "WHERE", "opacity": 0.6 }, { "content": "WHEN", "opacity": 0.6 }, { "content": "TICKETS", "opacity": 0.6 }],
16
+ ["FENNICK YARD", "22:00—06:00", "SUBDUCT.CLUB"],
17
+ ["ARCH 9", "18+ / ID", "£10 — £14"]
18
+ ],
19
+ "artist": "SUBDUCT",
20
+ "release": "PLATE SHIFT"
21
+ },
22
+ "vars": {
23
+ "acidPhoto": [
24
+ { "kind": "grayscale" },
25
+ { "kind": "grit", "amount": 0.14, "frequency": 0.33, "seed": 6 },
26
+ { "kind": "levels", "slope": 4.2, "intercept": -0.42 },
27
+ { "kind": "matrix", "values": "0.776 0 0 0 0 1 0 0 0 0 0.1 0 0 0 0 0 0 0 0 1" }
28
+ ]
29
+ },
30
+ "layers": [
31
+ { "id": "ground", "type": "solid", "color": "{ground}" },
32
+ {
33
+ "id": "photo",
34
+ "type": "image",
35
+ "when": { "all": ["photo", { "not": { "format": "release" } }] },
36
+ "src": "{photo}",
37
+ "x": "-30%",
38
+ "y": "18.8%",
39
+ "width": "160%",
40
+ "height": "48.8%",
41
+ "fit": "cover",
42
+ "focus": "top",
43
+ "effects": "$acidPhoto",
44
+ "mask": [{ "type": "shape", "kind": "rect", "x": 0, "y": "18.8%", "width": "100%", "height": "48.8%", "fill": { "type": "linear", "angle": 180, "colors": ["#ffffff", "#ffffff", "#000000"], "stops": [0, 0.55, 1] } }]
45
+ },
46
+ {
47
+ "id": "coverPhoto",
48
+ "type": "image",
49
+ "when": { "all": ["photo", { "format": "release" }] },
50
+ "src": "{photo}",
51
+ "x": "-30%",
52
+ "y": "25%",
53
+ "width": "160%",
54
+ "height": "58%",
55
+ "fit": "cover",
56
+ "focus": "top",
57
+ "effects": [
58
+ { "kind": "grayscale" },
59
+ { "kind": "grit", "amount": 0.14, "frequency": 0.12, "seed": 6 },
60
+ { "kind": "levels", "slope": 4.2, "intercept": -0.42 },
61
+ { "kind": "matrix", "values": "0.776 0 0 0 0 1 0 0 0 0 0.1 0 0 0 0 0 0 0 0 1" }
62
+ ],
63
+ "mask": [{ "type": "shape", "kind": "rect", "x": 0, "y": "25%", "width": "100%", "height": "58%", "fill": { "type": "linear", "angle": 180, "colors": ["#ffffff", "#ffffff", "#000000"], "stops": [0, 0.55, 1] } }]
64
+ },
65
+ {
66
+ "id": "poster",
67
+ "type": "group",
68
+ "when": { "not": { "format": "release" } },
69
+ "viewBox": [0, 0, 400, 500],
70
+ "fit": "contain",
71
+ "layers": [
72
+ { "id": "name", "type": "text", "content": "{name}", "font": "Anybody", "weight": 900, "axes": { "wdth": 50 }, "size": 60, "letterSpacing": 0, "x": 14, "y": 86, "width": 372, "stretch": [1, 1.32], "color": "{acid}" },
73
+ { "id": "top", "type": "table", "font": "Space Mono", "weight": 400, "size": 8, "letterSpacing": 0, "color": "{acid}", "y": 20, "columns": [{ "x": 16 }, { "x": 200, "align": "center" }, { "x": 384, "align": "right" }], "rows": "{top}" },
74
+ { "id": "mark", "type": "icon", "markup": "{mark}", "x": 340, "y": 104, "size": 42, "color": "{markColor}", "when": "mark" },
75
+ { "id": "times", "type": "table", "font": "Space Mono", "weight": 400, "size": 8, "letterSpacing": 0, "color": "{acid}", "y": 318, "rowHeight": 37, "columns": [{ "x": 16 }], "rows": "{times}" },
76
+ { "id": "act1", "type": "text", "content": "{lineup.0}", "font": "Anybody", "weight": 800, "axes": { "wdth": 55 }, "size": 26, "letterSpacing": 0, "x": 72, "y": 318, "width": 312, "stretch": [1, 1.55], "color": "{ink}" },
77
+ { "id": "act2", "type": "text", "content": "{lineup.1}", "font": "Anybody", "weight": 800, "axes": { "wdth": 55 }, "size": 26, "letterSpacing": 0, "x": 72, "y": 355, "width": 312, "stretch": [1, 1.55], "color": "{ink}" },
78
+ { "id": "act3", "type": "text", "content": "{lineup.2}", "font": "Anybody", "weight": 800, "axes": { "wdth": 55 }, "size": 26, "letterSpacing": 0, "x": 72, "y": 392, "width": 312, "stretch": [1, 1.55], "color": "{ink}" },
79
+ { "id": "act4", "type": "text", "content": "{lineup.3}", "font": "Anybody", "weight": 800, "axes": { "wdth": 55 }, "size": 26, "letterSpacing": 0, "x": 72, "y": 429, "width": 312, "stretch": [1, 1.55], "color": "{ink}" },
80
+ { "id": "rule", "type": "shape", "kind": "line", "x1": 16, "y1": 450, "x2": 384, "y2": 450, "stroke": "{acid}", "strokeWidth": 0.7 },
81
+ { "id": "info", "type": "table", "font": "Space Mono", "weight": 400, "size": 7.5, "letterSpacing": 0, "color": "{acid}", "y": 464, "rowHeight": 10.5, "columns": [{ "x": 16 }, { "x": 148 }, { "x": 270 }], "rows": "{info}" }
82
+ ]
83
+ },
84
+ {
85
+ "id": "cover",
86
+ "type": "group",
87
+ "when": { "format": "release" },
88
+ "viewBox": [0, 0, 400, 400],
89
+ "fit": "contain",
90
+ "layers": [
91
+ { "id": "artist", "type": "text", "content": "{artist}", "font": "Anybody", "weight": 900, "axes": { "wdth": 50 }, "size": 66, "letterSpacing": 0, "x": 14, "y": 92, "width": 372, "stretch": [1, 1.32], "color": "{acid}" },
92
+ { "id": "mark", "type": "icon", "markup": "{mark}", "x": 336, "y": 112, "size": 48, "color": "{markColor}", "when": "mark" },
93
+ { "id": "rule", "type": "shape", "kind": "line", "x1": 16, "y1": 322, "x2": 384, "y2": 322, "stroke": "{acid}", "strokeWidth": 0.7 },
94
+ { "id": "title", "type": "text", "content": "{release}", "font": "Anybody", "weight": 800, "axes": { "wdth": 55 }, "size": 44, "letterSpacing": 0, "x": 14, "y": 382, "width": 372, "stretch": [1, 1.55], "color": "{ink}" }
95
+ ]
96
+ },
97
+ { "id": "print", "type": "grain", "amount": 0.04, "size": 1.5, "blend": "multiply" }
98
+ ]
99
+ }
@@ -0,0 +1,584 @@
1
+ {
2
+ "$schema": "../../schema/recipe.schema.json",
3
+ "name": "sunvale-lineup",
4
+ "description": "Festival lineup, summer: a grainy sunset field and a low sun; the name and mark big, three headliners justified to the full width, two tiers of names under them, partners' marks along a cream strip. Re-expressed from the Logomarks scenes lab (FlyerCards2, 'Festival lineup · summer'). The release cover is the live album: the field, the sun, the mark, the name and LIVE.",
5
+ "params": {
6
+ "name": "SUNVALE",
7
+ "place": "LARKMOOR FIELDS · CAPE ORRIN",
8
+ "dates": "16—18 JULY 2027",
9
+ "tagline": "SUMMER SOUND FESTIVAL ✦ THREE DAYS ✦ FOUR STAGES ✦ CAMPING ✦ ALL AGES",
10
+ "headliners": [
11
+ "MIRA KOENIG",
12
+ "THE GLASS ORCHARD",
13
+ "KID MERIDIAN"
14
+ ],
15
+ "second": [
16
+ "HOLLOW PALMS • SABLE & ROOK • NOVA CANTRELL",
17
+ "LUMEN DRIFT • PETRA VALE • YUNA HART • ORLA MAY"
18
+ ],
19
+ "third": [
20
+ "OKONKWO TWINS • CASSIO FERN • BAY OF TINS • TOWNHALL GHOSTS • DJ PELLUCID • MAREN OKE",
21
+ "TIDEPOOL CHOIR • ASH & ANISE • MOTH SUPPER • RIVKA SOL • HONEYDEW SIGNAL • + MANY MORE"
22
+ ],
23
+ "partners": [
24
+ {
25
+ "name": "Peakline",
26
+ "mark": "<circle cx=\"256\" cy=\"256\" r=\"200\"/>"
27
+ },
28
+ {
29
+ "name": "Hexford",
30
+ "mark": "<circle cx=\"256\" cy=\"256\" r=\"200\"/>"
31
+ },
32
+ {
33
+ "name": "Spindle",
34
+ "mark": "<circle cx=\"256\" cy=\"256\" r=\"200\"/>"
35
+ },
36
+ {
37
+ "name": "Loopwell",
38
+ "mark": "<circle cx=\"256\" cy=\"256\" r=\"200\"/>"
39
+ },
40
+ {
41
+ "name": "Crossway",
42
+ "mark": "<circle cx=\"256\" cy=\"256\" r=\"200\"/>"
43
+ },
44
+ {
45
+ "name": "Pellow",
46
+ "mark": "<circle cx=\"256\" cy=\"256\" r=\"200\"/>"
47
+ }
48
+ ],
49
+ "tickets": "TICKETS FRIDAY 9AM — SUNVALE.FEST",
50
+ "partnersLabel": "IN PARTNERSHIP WITH",
51
+ "artist": "Sunvale",
52
+ "release": "Live",
53
+ "sky": [
54
+ "#1b0c3f",
55
+ "#6a1b72",
56
+ "#e2344b",
57
+ "#ff7b2c"
58
+ ],
59
+ "ink": "#ffffff",
60
+ "strip": "#fff4e6",
61
+ "stripInk": "#2a0f2f",
62
+ "stripLabel": "#7a3b4a"
63
+ },
64
+ "layers": [
65
+ {
66
+ "id": "field",
67
+ "type": "solid",
68
+ "color": "{sky.0}"
69
+ },
70
+ {
71
+ "id": "poster",
72
+ "type": "group",
73
+ "viewBox": [
74
+ 0,
75
+ 0,
76
+ 400,
77
+ 500
78
+ ],
79
+ "fit": "contain",
80
+ "when": {
81
+ "not": {
82
+ "format": "release"
83
+ }
84
+ },
85
+ "layers": [
86
+ {
87
+ "id": "sky",
88
+ "type": "shape",
89
+ "kind": "rect",
90
+ "x": 0,
91
+ "y": 0,
92
+ "width": 400,
93
+ "height": 500,
94
+ "fill": {
95
+ "type": "linear",
96
+ "colors": [
97
+ "{sky.0}",
98
+ "{sky.1}",
99
+ "{sky.2}",
100
+ "{sky.3}"
101
+ ],
102
+ "stops": [
103
+ 0,
104
+ 0.38,
105
+ 0.7,
106
+ 1
107
+ ],
108
+ "angle": 180
109
+ }
110
+ },
111
+ {
112
+ "id": "sun",
113
+ "type": "shape",
114
+ "kind": "circle",
115
+ "cx": 300,
116
+ "cy": 96,
117
+ "r": 150,
118
+ "fill": {
119
+ "type": "radial",
120
+ "colors": [
121
+ "#ffe9a8",
122
+ "#ffb04a",
123
+ "#ff6a3a"
124
+ ],
125
+ "stops": [
126
+ 0,
127
+ 0.45,
128
+ 1
129
+ ],
130
+ "opacities": [
131
+ 0.95,
132
+ 0.55,
133
+ 0
134
+ ],
135
+ "r": 150
136
+ }
137
+ },
138
+ {
139
+ "id": "place",
140
+ "type": "text",
141
+ "content": "{place}",
142
+ "font": "Space Mono",
143
+ "weight": 700,
144
+ "size": 8.5,
145
+ "letterSpacing": 0.047,
146
+ "x": 16,
147
+ "y": 24,
148
+ "color": "{ink}"
149
+ },
150
+ {
151
+ "id": "dates",
152
+ "type": "text",
153
+ "content": "{dates}",
154
+ "font": "Space Mono",
155
+ "weight": 700,
156
+ "size": 8.5,
157
+ "letterSpacing": 0.047,
158
+ "x": 384,
159
+ "y": 24,
160
+ "color": "{ink}",
161
+ "align": "right"
162
+ },
163
+ {
164
+ "id": "mark",
165
+ "type": "icon",
166
+ "markup": "{mark}",
167
+ "x": 12,
168
+ "y": 38,
169
+ "size": 76,
170
+ "color": "{ink}",
171
+ "when": "mark"
172
+ },
173
+ {
174
+ "id": "name",
175
+ "type": "text",
176
+ "content": "{name}",
177
+ "font": "Big Shoulders Display",
178
+ "weight": 900,
179
+ "size": 92,
180
+ "letterSpacing": 0,
181
+ "x": 92,
182
+ "y": 108,
183
+ "width": 292,
184
+ "color": "{ink}"
185
+ },
186
+ {
187
+ "id": "tagline",
188
+ "type": "text",
189
+ "content": "{tagline}",
190
+ "font": "Space Mono",
191
+ "weight": 700,
192
+ "size": 8.6,
193
+ "letterSpacing": 0,
194
+ "x": 200,
195
+ "y": 130,
196
+ "color": "{ink}",
197
+ "align": "center",
198
+ "width": 368
199
+ },
200
+ {
201
+ "id": "head1",
202
+ "type": "text",
203
+ "content": "{headliners.0}",
204
+ "font": "Big Shoulders Display",
205
+ "weight": 900,
206
+ "size": 54,
207
+ "letterSpacing": 0,
208
+ "x": 200,
209
+ "y": 190,
210
+ "align": "center",
211
+ "width": 368,
212
+ "color": "{ink}"
213
+ },
214
+ {
215
+ "id": "head2",
216
+ "type": "text",
217
+ "content": "{headliners.1}",
218
+ "font": "Big Shoulders Display",
219
+ "weight": 900,
220
+ "size": 46,
221
+ "letterSpacing": 0,
222
+ "x": 200,
223
+ "y": 240,
224
+ "align": "center",
225
+ "width": 368,
226
+ "color": "{ink}"
227
+ },
228
+ {
229
+ "id": "head3",
230
+ "type": "text",
231
+ "content": "{headliners.2}",
232
+ "font": "Big Shoulders Display",
233
+ "weight": 900,
234
+ "size": 46,
235
+ "letterSpacing": 0,
236
+ "x": 200,
237
+ "y": 288,
238
+ "align": "center",
239
+ "width": 368,
240
+ "color": "{ink}"
241
+ },
242
+ {
243
+ "id": "second1",
244
+ "type": "text",
245
+ "content": "{second.0}",
246
+ "font": "Big Shoulders Display",
247
+ "weight": 800,
248
+ "size": 21,
249
+ "letterSpacing": 0,
250
+ "x": 200,
251
+ "y": 318,
252
+ "align": "center",
253
+ "width": 368,
254
+ "color": "{ink}"
255
+ },
256
+ {
257
+ "id": "second2",
258
+ "type": "text",
259
+ "content": "{second.1}",
260
+ "font": "Big Shoulders Display",
261
+ "weight": 800,
262
+ "size": 21,
263
+ "letterSpacing": 0,
264
+ "x": 200,
265
+ "y": 342,
266
+ "align": "center",
267
+ "width": 368,
268
+ "color": "{ink}"
269
+ },
270
+ {
271
+ "id": "third1",
272
+ "type": "text",
273
+ "content": "{third.0}",
274
+ "font": "Big Shoulders Display",
275
+ "weight": 700,
276
+ "size": 12.5,
277
+ "letterSpacing": 0,
278
+ "x": 200,
279
+ "y": 363,
280
+ "align": "center",
281
+ "width": 368,
282
+ "color": "{ink}",
283
+ "opacity": 0.92
284
+ },
285
+ {
286
+ "id": "third2",
287
+ "type": "text",
288
+ "content": "{third.1}",
289
+ "font": "Big Shoulders Display",
290
+ "weight": 700,
291
+ "size": 12.5,
292
+ "letterSpacing": 0,
293
+ "x": 200,
294
+ "y": 379,
295
+ "align": "center",
296
+ "width": 368,
297
+ "color": "{ink}",
298
+ "opacity": 0.92
299
+ },
300
+ {
301
+ "id": "tickets",
302
+ "type": "text",
303
+ "content": "{tickets}",
304
+ "font": "Space Mono",
305
+ "weight": 700,
306
+ "size": 8.5,
307
+ "letterSpacing": 0.07,
308
+ "x": 200,
309
+ "y": 406,
310
+ "color": "{ink}",
311
+ "align": "center"
312
+ },
313
+ {
314
+ "id": "strip",
315
+ "type": "shape",
316
+ "kind": "rect",
317
+ "x": 0,
318
+ "y": 424,
319
+ "width": 400,
320
+ "height": 76,
321
+ "fill": "{strip}"
322
+ },
323
+ {
324
+ "id": "partnersLabel",
325
+ "type": "text",
326
+ "content": "{partnersLabel}",
327
+ "font": "Space Mono",
328
+ "weight": 700,
329
+ "size": 7,
330
+ "letterSpacing": 0.214,
331
+ "x": 200,
332
+ "y": 444,
333
+ "color": "{stripLabel}",
334
+ "align": "center"
335
+ },
336
+ {
337
+ "type": "group",
338
+ "id": "partners",
339
+ "layers": [
340
+ {
341
+ "type": "icon",
342
+ "markup": "{partners.0.mark}",
343
+ "x": 20.87,
344
+ "y": 461.5,
345
+ "size": 15,
346
+ "color": "{stripInk}"
347
+ },
348
+ {
349
+ "type": "text",
350
+ "content": "{partners.0.name}",
351
+ "font": "Geist",
352
+ "weight": 700,
353
+ "size": 8,
354
+ "letterSpacing": -0.025,
355
+ "x": 37.77,
356
+ "y": 471.88,
357
+ "color": "{stripInk}"
358
+ },
359
+ {
360
+ "type": "icon",
361
+ "markup": "{partners.1.mark}",
362
+ "x": 83.86,
363
+ "y": 461.5,
364
+ "size": 15,
365
+ "color": "{stripInk}"
366
+ },
367
+ {
368
+ "type": "text",
369
+ "content": "{partners.1.name}",
370
+ "font": "Geist",
371
+ "weight": 700,
372
+ "size": 8,
373
+ "letterSpacing": -0.025,
374
+ "x": 100.76,
375
+ "y": 471.88,
376
+ "color": "{stripInk}"
377
+ },
378
+ {
379
+ "type": "icon",
380
+ "markup": "{partners.2.mark}",
381
+ "x": 144.53,
382
+ "y": 461.5,
383
+ "size": 15,
384
+ "color": "{stripInk}"
385
+ },
386
+ {
387
+ "type": "text",
388
+ "content": "{partners.2.name}",
389
+ "font": "Geist",
390
+ "weight": 700,
391
+ "size": 8,
392
+ "letterSpacing": -0.025,
393
+ "x": 161.43,
394
+ "y": 471.88,
395
+ "color": "{stripInk}"
396
+ },
397
+ {
398
+ "type": "icon",
399
+ "markup": "{partners.3.mark}",
400
+ "x": 202.87,
401
+ "y": 461.5,
402
+ "size": 15,
403
+ "color": "{stripInk}"
404
+ },
405
+ {
406
+ "type": "text",
407
+ "content": "{partners.3.name}",
408
+ "font": "Geist",
409
+ "weight": 700,
410
+ "size": 8,
411
+ "letterSpacing": -0.025,
412
+ "x": 219.77,
413
+ "y": 471.88,
414
+ "color": "{stripInk}"
415
+ },
416
+ {
417
+ "type": "icon",
418
+ "markup": "{partners.4.mark}",
419
+ "x": 263.54,
420
+ "y": 461.5,
421
+ "size": 15,
422
+ "color": "{stripInk}"
423
+ },
424
+ {
425
+ "type": "text",
426
+ "content": "{partners.4.name}",
427
+ "font": "Geist",
428
+ "weight": 700,
429
+ "size": 8,
430
+ "letterSpacing": -0.025,
431
+ "x": 280.44,
432
+ "y": 471.88,
433
+ "color": "{stripInk}"
434
+ },
435
+ {
436
+ "type": "icon",
437
+ "markup": "{partners.5.mark}",
438
+ "x": 328.85,
439
+ "y": 461.5,
440
+ "size": 15,
441
+ "color": "{stripInk}"
442
+ },
443
+ {
444
+ "type": "text",
445
+ "content": "{partners.5.name}",
446
+ "font": "Geist",
447
+ "weight": 700,
448
+ "size": 8,
449
+ "letterSpacing": -0.025,
450
+ "x": 345.75,
451
+ "y": 471.88,
452
+ "color": "{stripInk}"
453
+ }
454
+ ]
455
+ }
456
+ ]
457
+ },
458
+ {
459
+ "id": "cover",
460
+ "type": "group",
461
+ "viewBox": [
462
+ 0,
463
+ 0,
464
+ 400,
465
+ 400
466
+ ],
467
+ "fit": "contain",
468
+ "when": {
469
+ "format": "release"
470
+ },
471
+ "layers": [
472
+ {
473
+ "id": "sky",
474
+ "type": "shape",
475
+ "kind": "rect",
476
+ "x": 0,
477
+ "y": 0,
478
+ "width": 400,
479
+ "height": 400,
480
+ "fill": {
481
+ "type": "linear",
482
+ "colors": [
483
+ "{sky.0}",
484
+ "{sky.1}",
485
+ "{sky.2}",
486
+ "{sky.3}"
487
+ ],
488
+ "stops": [
489
+ 0,
490
+ 0.38,
491
+ 0.7,
492
+ 1
493
+ ],
494
+ "angle": 180
495
+ }
496
+ },
497
+ {
498
+ "id": "sun",
499
+ "type": "shape",
500
+ "kind": "circle",
501
+ "cx": 282,
502
+ "cy": 112,
503
+ "r": 170,
504
+ "fill": {
505
+ "type": "radial",
506
+ "colors": [
507
+ "#ffe9a8",
508
+ "#ffb04a",
509
+ "#ff6a3a"
510
+ ],
511
+ "stops": [
512
+ 0,
513
+ 0.45,
514
+ 1
515
+ ],
516
+ "opacities": [
517
+ 0.95,
518
+ 0.55,
519
+ 0
520
+ ],
521
+ "r": 170
522
+ }
523
+ },
524
+ {
525
+ "id": "mark",
526
+ "type": "icon",
527
+ "markup": "{mark}",
528
+ "x": 24,
529
+ "y": 24,
530
+ "size": 140,
531
+ "color": "{ink}",
532
+ "when": "mark"
533
+ },
534
+ {
535
+ "id": "name",
536
+ "type": "text",
537
+ "content": {
538
+ "upper": "{artist}"
539
+ },
540
+ "font": "Big Shoulders Display",
541
+ "weight": 900,
542
+ "size": 150,
543
+ "letterSpacing": 0,
544
+ "x": 200,
545
+ "y": 300,
546
+ "align": "center",
547
+ "width": 360,
548
+ "color": "{ink}"
549
+ },
550
+ {
551
+ "id": "strip",
552
+ "type": "shape",
553
+ "kind": "rect",
554
+ "x": 0,
555
+ "y": 322,
556
+ "width": 400,
557
+ "height": 78,
558
+ "fill": "{strip}"
559
+ },
560
+ {
561
+ "id": "title",
562
+ "type": "text",
563
+ "content": {
564
+ "upper": "{release}"
565
+ },
566
+ "font": "Big Shoulders Display",
567
+ "weight": 900,
568
+ "size": 64,
569
+ "letterSpacing": 0.3,
570
+ "x": 200,
571
+ "y": 384,
572
+ "align": "center",
573
+ "color": "{stripInk}"
574
+ }
575
+ ]
576
+ },
577
+ {
578
+ "id": "grain",
579
+ "type": "grain",
580
+ "amount": 0.12,
581
+ "blend": "soft-light"
582
+ }
583
+ ]
584
+ }