@arraypress/covers 1.1.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 (244) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +18 -809
  3. package/package.json +2 -1
  4. package/recipes/flyers/afterglow-motion.json +540 -0
  5. package/recipes/flyers/afterglow.json +70 -0
  6. package/recipes/flyers/arcfield-mirror-motion.json +397 -0
  7. package/recipes/flyers/arcfield-mirror.json +364 -0
  8. package/recipes/flyers/bauhaus-oktav.json +319 -0
  9. package/recipes/flyers/bauhaus-ritmo.json +735 -0
  10. package/recipes/flyers/bauhaus-volta.json +394 -0
  11. package/recipes/flyers/bloomfall.json +99 -0
  12. package/recipes/flyers/drag-solenne-motion.json +444 -0
  13. package/recipes/flyers/drag-solenne.json +426 -0
  14. package/recipes/flyers/fennick-patches.json +874 -0
  15. package/recipes/flyers/ferro-pass.json +398 -0
  16. package/recipes/flyers/ferrova.json +812 -0
  17. package/recipes/flyers/grid-rest-rhythm.json +125 -0
  18. package/recipes/flyers/groovy-honeycomb.json +816 -0
  19. package/recipes/flyers/groovy-marigold.json +479 -0
  20. package/recipes/flyers/groovy-peachfuzz.json +974 -0
  21. package/recipes/flyers/halden-orbit-motion.json +381 -0
  22. package/recipes/flyers/halden-orbit.json +356 -0
  23. package/recipes/flyers/halvard.json +120 -0
  24. package/recipes/flyers/kairo-weekender.json +696 -0
  25. package/recipes/flyers/linger-motion.json +518 -0
  26. package/recipes/flyers/linger.json +67 -0
  27. package/recipes/flyers/little-orchard.json +105 -0
  28. package/recipes/flyers/lofi-hexmoth.json +912 -0
  29. package/recipes/flyers/lofi-lowbit-motion.json +888 -0
  30. package/recipes/flyers/lofi-lowbit.json +880 -0
  31. package/recipes/flyers/lofi-nullpoint.json +3013 -0
  32. package/recipes/flyers/lumio-stack-motion.json +648 -0
  33. package/recipes/flyers/lumio-stack.json +438 -0
  34. package/recipes/flyers/magazine-cover.json +168 -0
  35. package/recipes/flyers/magazine-extended.json +269 -0
  36. package/recipes/flyers/magazine-knockout.json +40 -0
  37. package/recipes/flyers/northfold-varsity.json +618 -0
  38. package/recipes/flyers/open-studio.json +69 -0
  39. package/recipes/flyers/orrin-merch.json +715 -0
  40. package/recipes/flyers/oxyde.json +113 -0
  41. package/recipes/flyers/quiet-fields.json +610 -0
  42. package/recipes/flyers/scrapbook-halcyon.json +948 -0
  43. package/recipes/flyers/solenne-ticket.json +730 -0
  44. package/recipes/flyers/solvane-motion.json +576 -0
  45. package/recipes/flyers/solvane.json +98 -0
  46. package/recipes/flyers/subduct.json +99 -0
  47. package/recipes/flyers/sunvale-lineup.json +584 -0
  48. package/recipes/flyers/tidewell.json +91 -0
  49. package/recipes/flyers/tour-kairo.json +535 -0
  50. package/recipes/flyers/velora-stickers.json +885 -0
  51. package/recipes/flyers/wheatpaste-black.json +313 -0
  52. package/recipes/flyers/wheatpaste-mark.json +198 -0
  53. package/recipes/flyers/wheatpaste-torn.json +114 -0
  54. package/recipes/flyers/wheatpaste-wall.json +984 -0
  55. package/recipes/flyers/wheatpaste-words.json +233 -0
  56. package/recipes/release/aura.json +137 -0
  57. package/recipes/release/chrome.json +433 -0
  58. package/recipes/release/collage.json +372 -0
  59. package/recipes/release/duotone.json +113 -0
  60. package/recipes/release/film-still.json +102 -0
  61. package/recipes/release/headline.json +70 -0
  62. package/recipes/release/instant.json +170 -0
  63. package/recipes/release/label.json +364 -0
  64. package/recipes/release/liquid-glass.json +301 -0
  65. package/recipes/release/odd-tile-dark.json +688 -0
  66. package/recipes/release/odd-tile-dense.json +1056 -0
  67. package/recipes/release/odd-tile-shift.json +541 -0
  68. package/recipes/release/odd-tile-split.json +571 -0
  69. package/recipes/release/odd-tile.json +633 -0
  70. package/recipes/release/off-edge.json +96 -0
  71. package/recipes/release/plinth.json +794 -0
  72. package/recipes/release/riso.json +108 -0
  73. package/recipes/release/series/fluid-label.json +561 -0
  74. package/recipes/release/series/fluid-pixel.json +334 -0
  75. package/recipes/release/series/hairline.json +305 -0
  76. package/recipes/release/series/halo.json +282 -0
  77. package/recipes/release/series/mark-crop.json +135 -0
  78. package/recipes/release/series/mark-window.json +150 -0
  79. package/recipes/release/series/photo-label.json +475 -0
  80. package/recipes/release/series/smear-field.json +345 -0
  81. package/recipes/release/series/smear.json +202 -0
  82. package/recipes/release/series/spin.json +172 -0
  83. package/recipes/release/series/split-ghost.json +230 -0
  84. package/recipes/release/series/zoom.json +168 -0
  85. package/recipes/release/small-print.json +114 -0
  86. package/recipes/release/stack.json +156 -0
  87. package/recipes/release/swiss.json +117 -0
  88. package/schema/recipe.schema.json +332 -65
  89. package/src/animate/index.d.ts +9 -19
  90. package/src/animate/index.js +6 -111
  91. package/src/animate/keyframes.d.ts +21 -0
  92. package/src/animate/keyframes.js +119 -0
  93. package/src/animate/marquee.d.ts +30 -0
  94. package/src/animate/marquee.js +93 -0
  95. package/src/animate/morph.d.ts +8 -0
  96. package/src/animate/morph.js +99 -0
  97. package/src/animate/motion.d.ts +59 -0
  98. package/src/animate/motion.js +63 -0
  99. package/src/animate/sheet.d.ts +19 -0
  100. package/src/animate/sheet.js +61 -0
  101. package/src/animate/timing.d.ts +28 -0
  102. package/src/animate/timing.js +146 -0
  103. package/src/animate/tracks.d.ts +18 -0
  104. package/src/animate/tracks.js +139 -0
  105. package/src/diagram.js +4 -3
  106. package/src/extract.js +2 -2
  107. package/src/fonts.js +1 -2
  108. package/src/geometry.js +4 -34
  109. package/src/grid.js +1 -1
  110. package/src/handmade.js +9 -7
  111. package/src/icons.js +1 -2
  112. package/src/index.d.ts +39 -48
  113. package/src/index.js +5 -5
  114. package/src/inter-data.js +1 -1
  115. package/src/json-recipe.js +23 -7
  116. package/src/layer-options.js +21 -1
  117. package/src/layers/barcode.js +3 -3
  118. package/src/layers/geometry.js +5 -5
  119. package/src/layers/perforation.js +3 -3
  120. package/src/layers/repeat.js +2 -2
  121. package/src/layers/shape.d.ts +2 -2
  122. package/src/layers/shape.js +5 -5
  123. package/src/layers/soft.js +2 -2
  124. package/src/layers/svg.js +2 -3
  125. package/src/layers/table.js +3 -3
  126. package/src/layers/tear.d.ts +1 -1
  127. package/src/layers/tear.js +4 -4
  128. package/src/layers/texture.js +3 -3
  129. package/src/layers/util.js +15 -2
  130. package/src/layers.js +10 -26
  131. package/src/{effects/paint.js → paint/index.js} +5 -5
  132. package/src/{effects/paint-presets.d.ts → paint/presets.d.ts} +1 -1
  133. package/src/{effects/paint-presets.js → paint/presets.js} +1 -1
  134. package/src/{effects → paint}/tile.d.ts +1 -1
  135. package/src/{effects → paint}/tile.js +4 -4
  136. package/src/palette.js +1 -1
  137. package/src/platform/files.d.ts +6 -0
  138. package/src/platform/files.js +41 -0
  139. package/src/platform/harfbuzz.js +1 -1
  140. package/src/platform/index.d.ts +3 -3
  141. package/src/platform/index.js +6 -4
  142. package/src/platform/load.js +1 -2
  143. package/src/print.js +9 -7
  144. package/src/recipes.js +1 -1
  145. package/src/render/backdrop.js +2 -2
  146. package/src/render/grain.js +1 -1
  147. package/src/render/group.js +3 -3
  148. package/src/render/key.js +1 -2
  149. package/src/{effects → render}/transform.d.ts +2 -1
  150. package/src/{effects → render}/transform.js +17 -5
  151. package/src/render/use.d.ts +1 -1
  152. package/src/render/use.js +2 -2
  153. package/src/render/wrap.js +5 -60
  154. package/src/render.js +55 -18
  155. package/src/text.js +1 -1
  156. package/src/type/auto-color.js +1 -1
  157. package/src/type/glyphs.js +2 -2
  158. package/src/type/line.js +1 -1
  159. package/src/type/live.js +1 -1
  160. package/src/type/path.js +2 -2
  161. package/src/type/pixel.d.ts +0 -2
  162. package/src/type/pixel.js +3 -33
  163. package/src/type/spans.js +2 -2
  164. package/src/type/typeset.js +19 -8
  165. package/src/version.js +1 -1
  166. package/src/color.js +0 -246
  167. package/src/effects/ascii.d.ts +0 -7
  168. package/src/effects/ascii.js +0 -93
  169. package/src/effects/buffer.d.ts +0 -60
  170. package/src/effects/buffer.js +0 -472
  171. package/src/effects/detail.d.ts +0 -12
  172. package/src/effects/detail.js +0 -124
  173. package/src/effects/digital.d.ts +0 -14
  174. package/src/effects/digital.js +0 -216
  175. package/src/effects/distort.d.ts +0 -20
  176. package/src/effects/distort.js +0 -314
  177. package/src/effects/dither.d.ts +0 -8
  178. package/src/effects/dither.js +0 -147
  179. package/src/effects/drop-shadow.d.ts +0 -4
  180. package/src/effects/drop-shadow.js +0 -45
  181. package/src/effects/extrude.d.ts +0 -5
  182. package/src/effects/extrude.js +0 -55
  183. package/src/effects/film.d.ts +0 -11
  184. package/src/effects/film.js +0 -204
  185. package/src/effects/glow.d.ts +0 -8
  186. package/src/effects/glow.js +0 -56
  187. package/src/effects/grade.d.ts +0 -30
  188. package/src/effects/grade.js +0 -274
  189. package/src/effects/halftone.d.ts +0 -8
  190. package/src/effects/halftone.js +0 -95
  191. package/src/effects/index.d.ts +0 -125
  192. package/src/effects/index.js +0 -277
  193. package/src/effects/ink.d.ts +0 -12
  194. package/src/effects/ink.js +0 -70
  195. package/src/effects/lens.d.ts +0 -14
  196. package/src/effects/lens.js +0 -277
  197. package/src/effects/light.d.ts +0 -10
  198. package/src/effects/light.js +0 -59
  199. package/src/effects/looks.d.ts +0 -9
  200. package/src/effects/looks.js +0 -74
  201. package/src/effects/mask.d.ts +0 -52
  202. package/src/effects/mask.js +0 -314
  203. package/src/effects/motion.d.ts +0 -6
  204. package/src/effects/motion.js +0 -60
  205. package/src/effects/newsprint.d.ts +0 -6
  206. package/src/effects/newsprint.js +0 -89
  207. package/src/effects/optics.d.ts +0 -10
  208. package/src/effects/optics.js +0 -213
  209. package/src/effects/options.d.ts +0 -6
  210. package/src/effects/options.js +0 -106
  211. package/src/effects/pixels.d.ts +0 -24
  212. package/src/effects/pixels.js +0 -138
  213. package/src/effects/polar.d.ts +0 -10
  214. package/src/effects/polar.js +0 -265
  215. package/src/effects/region.d.ts +0 -8
  216. package/src/effects/region.js +0 -136
  217. package/src/effects/round-border.d.ts +0 -5
  218. package/src/effects/round-border.js +0 -62
  219. package/src/effects/screen.d.ts +0 -14
  220. package/src/effects/screen.js +0 -212
  221. package/src/effects/sort.d.ts +0 -8
  222. package/src/effects/sort.js +0 -125
  223. package/src/effects/symmetry.d.ts +0 -6
  224. package/src/effects/symmetry.js +0 -74
  225. package/src/effects/tone.d.ts +0 -16
  226. package/src/effects/tone.js +0 -117
  227. package/src/effects/util.d.ts +0 -16
  228. package/src/effects/util.js +0 -85
  229. package/src/platform/bytes.d.ts +0 -22
  230. package/src/platform/bytes.js +0 -103
  231. package/src/platform/compress.d.ts +0 -12
  232. package/src/platform/compress.js +0 -81
  233. package/src/platform/node.d.ts +0 -26
  234. package/src/platform/node.js +0 -86
  235. package/src/png.js +0 -126
  236. package/src/raster/index.d.ts +0 -24
  237. package/src/raster/index.js +0 -171
  238. package/src/render/content.d.ts +0 -5
  239. package/src/render/content.js +0 -58
  240. package/src/render/tiles.d.ts +0 -6
  241. package/src/render/tiles.js +0 -77
  242. package/src/rng.js +0 -95
  243. package/src/svg.js +0 -69
  244. /package/src/{effects/paint.d.ts → paint/index.d.ts} +0 -0
@@ -0,0 +1,1056 @@
1
+ {
2
+ "$schema": "../../schema/recipe.schema.json",
3
+ "name": "odd-tile-dense",
4
+ "description": "The odd tile, dense and quiet: a 6 × 5 field of small marks with no rules and no colour change; one (param `odd`, 0–29) is turned 45° and set a little smaller, which shows even on a round mark. The artist and title under it. Slots: {name} (artist), {title} (release), {mark}, the palette (bg, text), `odd`. Fonts: Inter Tight (register them as TTF/WOFF; WOFF2 can't be outlined).",
5
+ "params": {
6
+ "odd": 14
7
+ },
8
+ "requires": [
9
+ "mark"
10
+ ],
11
+ "layers": [
12
+ {
13
+ "id": "page",
14
+ "type": "solid",
15
+ "color": "@bg"
16
+ },
17
+ {
18
+ "id": "cover",
19
+ "type": "group",
20
+ "viewBox": [
21
+ 0,
22
+ 0,
23
+ 1000,
24
+ 1000
25
+ ],
26
+ "fit": "cover",
27
+ "layers": [
28
+ {
29
+ "id": "odd0",
30
+ "type": "icon",
31
+ "markup": "{mark}",
32
+ "x": 50.33333333333333,
33
+ "y": 44.33333333333333,
34
+ "size": 66,
35
+ "color": "@text",
36
+ "transform": {
37
+ "rotate": 45,
38
+ "origin": [
39
+ 83.33333333333333,
40
+ 77.33333333333333
41
+ ]
42
+ },
43
+ "when": {
44
+ "odd": 0
45
+ }
46
+ },
47
+ {
48
+ "id": "m0",
49
+ "type": "icon",
50
+ "markup": "{mark}",
51
+ "x": 37.33333333333333,
52
+ "y": 31.33333333333333,
53
+ "size": 92,
54
+ "color": "@text",
55
+ "when": {
56
+ "not": {
57
+ "odd": 0
58
+ }
59
+ }
60
+ },
61
+ {
62
+ "id": "odd1",
63
+ "type": "icon",
64
+ "markup": "{mark}",
65
+ "x": 217,
66
+ "y": 44.33333333333333,
67
+ "size": 66,
68
+ "color": "@text",
69
+ "transform": {
70
+ "rotate": 45,
71
+ "origin": [
72
+ 250,
73
+ 77.33333333333333
74
+ ]
75
+ },
76
+ "when": {
77
+ "odd": 1
78
+ }
79
+ },
80
+ {
81
+ "id": "m1",
82
+ "type": "icon",
83
+ "markup": "{mark}",
84
+ "x": 204,
85
+ "y": 31.33333333333333,
86
+ "size": 92,
87
+ "color": "@text",
88
+ "when": {
89
+ "not": {
90
+ "odd": 1
91
+ }
92
+ }
93
+ },
94
+ {
95
+ "id": "odd2",
96
+ "type": "icon",
97
+ "markup": "{mark}",
98
+ "x": 383.66666666666663,
99
+ "y": 44.33333333333333,
100
+ "size": 66,
101
+ "color": "@text",
102
+ "transform": {
103
+ "rotate": 45,
104
+ "origin": [
105
+ 416.66666666666663,
106
+ 77.33333333333333
107
+ ]
108
+ },
109
+ "when": {
110
+ "odd": 2
111
+ }
112
+ },
113
+ {
114
+ "id": "m2",
115
+ "type": "icon",
116
+ "markup": "{mark}",
117
+ "x": 370.66666666666663,
118
+ "y": 31.33333333333333,
119
+ "size": 92,
120
+ "color": "@text",
121
+ "when": {
122
+ "not": {
123
+ "odd": 2
124
+ }
125
+ }
126
+ },
127
+ {
128
+ "id": "odd3",
129
+ "type": "icon",
130
+ "markup": "{mark}",
131
+ "x": 550.3333333333334,
132
+ "y": 44.33333333333333,
133
+ "size": 66,
134
+ "color": "@text",
135
+ "transform": {
136
+ "rotate": 45,
137
+ "origin": [
138
+ 583.3333333333334,
139
+ 77.33333333333333
140
+ ]
141
+ },
142
+ "when": {
143
+ "odd": 3
144
+ }
145
+ },
146
+ {
147
+ "id": "m3",
148
+ "type": "icon",
149
+ "markup": "{mark}",
150
+ "x": 537.3333333333334,
151
+ "y": 31.33333333333333,
152
+ "size": 92,
153
+ "color": "@text",
154
+ "when": {
155
+ "not": {
156
+ "odd": 3
157
+ }
158
+ }
159
+ },
160
+ {
161
+ "id": "odd4",
162
+ "type": "icon",
163
+ "markup": "{mark}",
164
+ "x": 717,
165
+ "y": 44.33333333333333,
166
+ "size": 66,
167
+ "color": "@text",
168
+ "transform": {
169
+ "rotate": 45,
170
+ "origin": [
171
+ 750,
172
+ 77.33333333333333
173
+ ]
174
+ },
175
+ "when": {
176
+ "odd": 4
177
+ }
178
+ },
179
+ {
180
+ "id": "m4",
181
+ "type": "icon",
182
+ "markup": "{mark}",
183
+ "x": 704,
184
+ "y": 31.33333333333333,
185
+ "size": 92,
186
+ "color": "@text",
187
+ "when": {
188
+ "not": {
189
+ "odd": 4
190
+ }
191
+ }
192
+ },
193
+ {
194
+ "id": "odd5",
195
+ "type": "icon",
196
+ "markup": "{mark}",
197
+ "x": 883.6666666666666,
198
+ "y": 44.33333333333333,
199
+ "size": 66,
200
+ "color": "@text",
201
+ "transform": {
202
+ "rotate": 45,
203
+ "origin": [
204
+ 916.6666666666666,
205
+ 77.33333333333333
206
+ ]
207
+ },
208
+ "when": {
209
+ "odd": 5
210
+ }
211
+ },
212
+ {
213
+ "id": "m5",
214
+ "type": "icon",
215
+ "markup": "{mark}",
216
+ "x": 870.6666666666666,
217
+ "y": 31.33333333333333,
218
+ "size": 92,
219
+ "color": "@text",
220
+ "when": {
221
+ "not": {
222
+ "odd": 5
223
+ }
224
+ }
225
+ },
226
+ {
227
+ "id": "odd6",
228
+ "type": "icon",
229
+ "markup": "{mark}",
230
+ "x": 50.33333333333333,
231
+ "y": 211,
232
+ "size": 66,
233
+ "color": "@text",
234
+ "transform": {
235
+ "rotate": 45,
236
+ "origin": [
237
+ 83.33333333333333,
238
+ 244
239
+ ]
240
+ },
241
+ "when": {
242
+ "odd": 6
243
+ }
244
+ },
245
+ {
246
+ "id": "m6",
247
+ "type": "icon",
248
+ "markup": "{mark}",
249
+ "x": 37.33333333333333,
250
+ "y": 198,
251
+ "size": 92,
252
+ "color": "@text",
253
+ "when": {
254
+ "not": {
255
+ "odd": 6
256
+ }
257
+ }
258
+ },
259
+ {
260
+ "id": "odd7",
261
+ "type": "icon",
262
+ "markup": "{mark}",
263
+ "x": 217,
264
+ "y": 211,
265
+ "size": 66,
266
+ "color": "@text",
267
+ "transform": {
268
+ "rotate": 45,
269
+ "origin": [
270
+ 250,
271
+ 244
272
+ ]
273
+ },
274
+ "when": {
275
+ "odd": 7
276
+ }
277
+ },
278
+ {
279
+ "id": "m7",
280
+ "type": "icon",
281
+ "markup": "{mark}",
282
+ "x": 204,
283
+ "y": 198,
284
+ "size": 92,
285
+ "color": "@text",
286
+ "when": {
287
+ "not": {
288
+ "odd": 7
289
+ }
290
+ }
291
+ },
292
+ {
293
+ "id": "odd8",
294
+ "type": "icon",
295
+ "markup": "{mark}",
296
+ "x": 383.66666666666663,
297
+ "y": 211,
298
+ "size": 66,
299
+ "color": "@text",
300
+ "transform": {
301
+ "rotate": 45,
302
+ "origin": [
303
+ 416.66666666666663,
304
+ 244
305
+ ]
306
+ },
307
+ "when": {
308
+ "odd": 8
309
+ }
310
+ },
311
+ {
312
+ "id": "m8",
313
+ "type": "icon",
314
+ "markup": "{mark}",
315
+ "x": 370.66666666666663,
316
+ "y": 198,
317
+ "size": 92,
318
+ "color": "@text",
319
+ "when": {
320
+ "not": {
321
+ "odd": 8
322
+ }
323
+ }
324
+ },
325
+ {
326
+ "id": "odd9",
327
+ "type": "icon",
328
+ "markup": "{mark}",
329
+ "x": 550.3333333333334,
330
+ "y": 211,
331
+ "size": 66,
332
+ "color": "@text",
333
+ "transform": {
334
+ "rotate": 45,
335
+ "origin": [
336
+ 583.3333333333334,
337
+ 244
338
+ ]
339
+ },
340
+ "when": {
341
+ "odd": 9
342
+ }
343
+ },
344
+ {
345
+ "id": "m9",
346
+ "type": "icon",
347
+ "markup": "{mark}",
348
+ "x": 537.3333333333334,
349
+ "y": 198,
350
+ "size": 92,
351
+ "color": "@text",
352
+ "when": {
353
+ "not": {
354
+ "odd": 9
355
+ }
356
+ }
357
+ },
358
+ {
359
+ "id": "odd10",
360
+ "type": "icon",
361
+ "markup": "{mark}",
362
+ "x": 717,
363
+ "y": 211,
364
+ "size": 66,
365
+ "color": "@text",
366
+ "transform": {
367
+ "rotate": 45,
368
+ "origin": [
369
+ 750,
370
+ 244
371
+ ]
372
+ },
373
+ "when": {
374
+ "odd": 10
375
+ }
376
+ },
377
+ {
378
+ "id": "m10",
379
+ "type": "icon",
380
+ "markup": "{mark}",
381
+ "x": 704,
382
+ "y": 198,
383
+ "size": 92,
384
+ "color": "@text",
385
+ "when": {
386
+ "not": {
387
+ "odd": 10
388
+ }
389
+ }
390
+ },
391
+ {
392
+ "id": "odd11",
393
+ "type": "icon",
394
+ "markup": "{mark}",
395
+ "x": 883.6666666666666,
396
+ "y": 211,
397
+ "size": 66,
398
+ "color": "@text",
399
+ "transform": {
400
+ "rotate": 45,
401
+ "origin": [
402
+ 916.6666666666666,
403
+ 244
404
+ ]
405
+ },
406
+ "when": {
407
+ "odd": 11
408
+ }
409
+ },
410
+ {
411
+ "id": "m11",
412
+ "type": "icon",
413
+ "markup": "{mark}",
414
+ "x": 870.6666666666666,
415
+ "y": 198,
416
+ "size": 92,
417
+ "color": "@text",
418
+ "when": {
419
+ "not": {
420
+ "odd": 11
421
+ }
422
+ }
423
+ },
424
+ {
425
+ "id": "odd12",
426
+ "type": "icon",
427
+ "markup": "{mark}",
428
+ "x": 50.33333333333333,
429
+ "y": 377.66666666666663,
430
+ "size": 66,
431
+ "color": "@text",
432
+ "transform": {
433
+ "rotate": 45,
434
+ "origin": [
435
+ 83.33333333333333,
436
+ 410.66666666666663
437
+ ]
438
+ },
439
+ "when": {
440
+ "odd": 12
441
+ }
442
+ },
443
+ {
444
+ "id": "m12",
445
+ "type": "icon",
446
+ "markup": "{mark}",
447
+ "x": 37.33333333333333,
448
+ "y": 364.66666666666663,
449
+ "size": 92,
450
+ "color": "@text",
451
+ "when": {
452
+ "not": {
453
+ "odd": 12
454
+ }
455
+ }
456
+ },
457
+ {
458
+ "id": "odd13",
459
+ "type": "icon",
460
+ "markup": "{mark}",
461
+ "x": 217,
462
+ "y": 377.66666666666663,
463
+ "size": 66,
464
+ "color": "@text",
465
+ "transform": {
466
+ "rotate": 45,
467
+ "origin": [
468
+ 250,
469
+ 410.66666666666663
470
+ ]
471
+ },
472
+ "when": {
473
+ "odd": 13
474
+ }
475
+ },
476
+ {
477
+ "id": "m13",
478
+ "type": "icon",
479
+ "markup": "{mark}",
480
+ "x": 204,
481
+ "y": 364.66666666666663,
482
+ "size": 92,
483
+ "color": "@text",
484
+ "when": {
485
+ "not": {
486
+ "odd": 13
487
+ }
488
+ }
489
+ },
490
+ {
491
+ "id": "odd14",
492
+ "type": "icon",
493
+ "markup": "{mark}",
494
+ "x": 383.66666666666663,
495
+ "y": 377.66666666666663,
496
+ "size": 66,
497
+ "color": "@text",
498
+ "transform": {
499
+ "rotate": 45,
500
+ "origin": [
501
+ 416.66666666666663,
502
+ 410.66666666666663
503
+ ]
504
+ },
505
+ "when": {
506
+ "odd": 14
507
+ }
508
+ },
509
+ {
510
+ "id": "m14",
511
+ "type": "icon",
512
+ "markup": "{mark}",
513
+ "x": 370.66666666666663,
514
+ "y": 364.66666666666663,
515
+ "size": 92,
516
+ "color": "@text",
517
+ "when": {
518
+ "not": {
519
+ "odd": 14
520
+ }
521
+ }
522
+ },
523
+ {
524
+ "id": "odd15",
525
+ "type": "icon",
526
+ "markup": "{mark}",
527
+ "x": 550.3333333333334,
528
+ "y": 377.66666666666663,
529
+ "size": 66,
530
+ "color": "@text",
531
+ "transform": {
532
+ "rotate": 45,
533
+ "origin": [
534
+ 583.3333333333334,
535
+ 410.66666666666663
536
+ ]
537
+ },
538
+ "when": {
539
+ "odd": 15
540
+ }
541
+ },
542
+ {
543
+ "id": "m15",
544
+ "type": "icon",
545
+ "markup": "{mark}",
546
+ "x": 537.3333333333334,
547
+ "y": 364.66666666666663,
548
+ "size": 92,
549
+ "color": "@text",
550
+ "when": {
551
+ "not": {
552
+ "odd": 15
553
+ }
554
+ }
555
+ },
556
+ {
557
+ "id": "odd16",
558
+ "type": "icon",
559
+ "markup": "{mark}",
560
+ "x": 717,
561
+ "y": 377.66666666666663,
562
+ "size": 66,
563
+ "color": "@text",
564
+ "transform": {
565
+ "rotate": 45,
566
+ "origin": [
567
+ 750,
568
+ 410.66666666666663
569
+ ]
570
+ },
571
+ "when": {
572
+ "odd": 16
573
+ }
574
+ },
575
+ {
576
+ "id": "m16",
577
+ "type": "icon",
578
+ "markup": "{mark}",
579
+ "x": 704,
580
+ "y": 364.66666666666663,
581
+ "size": 92,
582
+ "color": "@text",
583
+ "when": {
584
+ "not": {
585
+ "odd": 16
586
+ }
587
+ }
588
+ },
589
+ {
590
+ "id": "odd17",
591
+ "type": "icon",
592
+ "markup": "{mark}",
593
+ "x": 883.6666666666666,
594
+ "y": 377.66666666666663,
595
+ "size": 66,
596
+ "color": "@text",
597
+ "transform": {
598
+ "rotate": 45,
599
+ "origin": [
600
+ 916.6666666666666,
601
+ 410.66666666666663
602
+ ]
603
+ },
604
+ "when": {
605
+ "odd": 17
606
+ }
607
+ },
608
+ {
609
+ "id": "m17",
610
+ "type": "icon",
611
+ "markup": "{mark}",
612
+ "x": 870.6666666666666,
613
+ "y": 364.66666666666663,
614
+ "size": 92,
615
+ "color": "@text",
616
+ "when": {
617
+ "not": {
618
+ "odd": 17
619
+ }
620
+ }
621
+ },
622
+ {
623
+ "id": "odd18",
624
+ "type": "icon",
625
+ "markup": "{mark}",
626
+ "x": 50.33333333333333,
627
+ "y": 544.3333333333334,
628
+ "size": 66,
629
+ "color": "@text",
630
+ "transform": {
631
+ "rotate": 45,
632
+ "origin": [
633
+ 83.33333333333333,
634
+ 577.3333333333334
635
+ ]
636
+ },
637
+ "when": {
638
+ "odd": 18
639
+ }
640
+ },
641
+ {
642
+ "id": "m18",
643
+ "type": "icon",
644
+ "markup": "{mark}",
645
+ "x": 37.33333333333333,
646
+ "y": 531.3333333333334,
647
+ "size": 92,
648
+ "color": "@text",
649
+ "when": {
650
+ "not": {
651
+ "odd": 18
652
+ }
653
+ }
654
+ },
655
+ {
656
+ "id": "odd19",
657
+ "type": "icon",
658
+ "markup": "{mark}",
659
+ "x": 217,
660
+ "y": 544.3333333333334,
661
+ "size": 66,
662
+ "color": "@text",
663
+ "transform": {
664
+ "rotate": 45,
665
+ "origin": [
666
+ 250,
667
+ 577.3333333333334
668
+ ]
669
+ },
670
+ "when": {
671
+ "odd": 19
672
+ }
673
+ },
674
+ {
675
+ "id": "m19",
676
+ "type": "icon",
677
+ "markup": "{mark}",
678
+ "x": 204,
679
+ "y": 531.3333333333334,
680
+ "size": 92,
681
+ "color": "@text",
682
+ "when": {
683
+ "not": {
684
+ "odd": 19
685
+ }
686
+ }
687
+ },
688
+ {
689
+ "id": "odd20",
690
+ "type": "icon",
691
+ "markup": "{mark}",
692
+ "x": 383.66666666666663,
693
+ "y": 544.3333333333334,
694
+ "size": 66,
695
+ "color": "@text",
696
+ "transform": {
697
+ "rotate": 45,
698
+ "origin": [
699
+ 416.66666666666663,
700
+ 577.3333333333334
701
+ ]
702
+ },
703
+ "when": {
704
+ "odd": 20
705
+ }
706
+ },
707
+ {
708
+ "id": "m20",
709
+ "type": "icon",
710
+ "markup": "{mark}",
711
+ "x": 370.66666666666663,
712
+ "y": 531.3333333333334,
713
+ "size": 92,
714
+ "color": "@text",
715
+ "when": {
716
+ "not": {
717
+ "odd": 20
718
+ }
719
+ }
720
+ },
721
+ {
722
+ "id": "odd21",
723
+ "type": "icon",
724
+ "markup": "{mark}",
725
+ "x": 550.3333333333334,
726
+ "y": 544.3333333333334,
727
+ "size": 66,
728
+ "color": "@text",
729
+ "transform": {
730
+ "rotate": 45,
731
+ "origin": [
732
+ 583.3333333333334,
733
+ 577.3333333333334
734
+ ]
735
+ },
736
+ "when": {
737
+ "odd": 21
738
+ }
739
+ },
740
+ {
741
+ "id": "m21",
742
+ "type": "icon",
743
+ "markup": "{mark}",
744
+ "x": 537.3333333333334,
745
+ "y": 531.3333333333334,
746
+ "size": 92,
747
+ "color": "@text",
748
+ "when": {
749
+ "not": {
750
+ "odd": 21
751
+ }
752
+ }
753
+ },
754
+ {
755
+ "id": "odd22",
756
+ "type": "icon",
757
+ "markup": "{mark}",
758
+ "x": 717,
759
+ "y": 544.3333333333334,
760
+ "size": 66,
761
+ "color": "@text",
762
+ "transform": {
763
+ "rotate": 45,
764
+ "origin": [
765
+ 750,
766
+ 577.3333333333334
767
+ ]
768
+ },
769
+ "when": {
770
+ "odd": 22
771
+ }
772
+ },
773
+ {
774
+ "id": "m22",
775
+ "type": "icon",
776
+ "markup": "{mark}",
777
+ "x": 704,
778
+ "y": 531.3333333333334,
779
+ "size": 92,
780
+ "color": "@text",
781
+ "when": {
782
+ "not": {
783
+ "odd": 22
784
+ }
785
+ }
786
+ },
787
+ {
788
+ "id": "odd23",
789
+ "type": "icon",
790
+ "markup": "{mark}",
791
+ "x": 883.6666666666666,
792
+ "y": 544.3333333333334,
793
+ "size": 66,
794
+ "color": "@text",
795
+ "transform": {
796
+ "rotate": 45,
797
+ "origin": [
798
+ 916.6666666666666,
799
+ 577.3333333333334
800
+ ]
801
+ },
802
+ "when": {
803
+ "odd": 23
804
+ }
805
+ },
806
+ {
807
+ "id": "m23",
808
+ "type": "icon",
809
+ "markup": "{mark}",
810
+ "x": 870.6666666666666,
811
+ "y": 531.3333333333334,
812
+ "size": 92,
813
+ "color": "@text",
814
+ "when": {
815
+ "not": {
816
+ "odd": 23
817
+ }
818
+ }
819
+ },
820
+ {
821
+ "id": "odd24",
822
+ "type": "icon",
823
+ "markup": "{mark}",
824
+ "x": 50.33333333333333,
825
+ "y": 711,
826
+ "size": 66,
827
+ "color": "@text",
828
+ "transform": {
829
+ "rotate": 45,
830
+ "origin": [
831
+ 83.33333333333333,
832
+ 744
833
+ ]
834
+ },
835
+ "when": {
836
+ "odd": 24
837
+ }
838
+ },
839
+ {
840
+ "id": "m24",
841
+ "type": "icon",
842
+ "markup": "{mark}",
843
+ "x": 37.33333333333333,
844
+ "y": 698,
845
+ "size": 92,
846
+ "color": "@text",
847
+ "when": {
848
+ "not": {
849
+ "odd": 24
850
+ }
851
+ }
852
+ },
853
+ {
854
+ "id": "odd25",
855
+ "type": "icon",
856
+ "markup": "{mark}",
857
+ "x": 217,
858
+ "y": 711,
859
+ "size": 66,
860
+ "color": "@text",
861
+ "transform": {
862
+ "rotate": 45,
863
+ "origin": [
864
+ 250,
865
+ 744
866
+ ]
867
+ },
868
+ "when": {
869
+ "odd": 25
870
+ }
871
+ },
872
+ {
873
+ "id": "m25",
874
+ "type": "icon",
875
+ "markup": "{mark}",
876
+ "x": 204,
877
+ "y": 698,
878
+ "size": 92,
879
+ "color": "@text",
880
+ "when": {
881
+ "not": {
882
+ "odd": 25
883
+ }
884
+ }
885
+ },
886
+ {
887
+ "id": "odd26",
888
+ "type": "icon",
889
+ "markup": "{mark}",
890
+ "x": 383.66666666666663,
891
+ "y": 711,
892
+ "size": 66,
893
+ "color": "@text",
894
+ "transform": {
895
+ "rotate": 45,
896
+ "origin": [
897
+ 416.66666666666663,
898
+ 744
899
+ ]
900
+ },
901
+ "when": {
902
+ "odd": 26
903
+ }
904
+ },
905
+ {
906
+ "id": "m26",
907
+ "type": "icon",
908
+ "markup": "{mark}",
909
+ "x": 370.66666666666663,
910
+ "y": 698,
911
+ "size": 92,
912
+ "color": "@text",
913
+ "when": {
914
+ "not": {
915
+ "odd": 26
916
+ }
917
+ }
918
+ },
919
+ {
920
+ "id": "odd27",
921
+ "type": "icon",
922
+ "markup": "{mark}",
923
+ "x": 550.3333333333334,
924
+ "y": 711,
925
+ "size": 66,
926
+ "color": "@text",
927
+ "transform": {
928
+ "rotate": 45,
929
+ "origin": [
930
+ 583.3333333333334,
931
+ 744
932
+ ]
933
+ },
934
+ "when": {
935
+ "odd": 27
936
+ }
937
+ },
938
+ {
939
+ "id": "m27",
940
+ "type": "icon",
941
+ "markup": "{mark}",
942
+ "x": 537.3333333333334,
943
+ "y": 698,
944
+ "size": 92,
945
+ "color": "@text",
946
+ "when": {
947
+ "not": {
948
+ "odd": 27
949
+ }
950
+ }
951
+ },
952
+ {
953
+ "id": "odd28",
954
+ "type": "icon",
955
+ "markup": "{mark}",
956
+ "x": 717,
957
+ "y": 711,
958
+ "size": 66,
959
+ "color": "@text",
960
+ "transform": {
961
+ "rotate": 45,
962
+ "origin": [
963
+ 750,
964
+ 744
965
+ ]
966
+ },
967
+ "when": {
968
+ "odd": 28
969
+ }
970
+ },
971
+ {
972
+ "id": "m28",
973
+ "type": "icon",
974
+ "markup": "{mark}",
975
+ "x": 704,
976
+ "y": 698,
977
+ "size": 92,
978
+ "color": "@text",
979
+ "when": {
980
+ "not": {
981
+ "odd": 28
982
+ }
983
+ }
984
+ },
985
+ {
986
+ "id": "odd29",
987
+ "type": "icon",
988
+ "markup": "{mark}",
989
+ "x": 883.6666666666666,
990
+ "y": 711,
991
+ "size": 66,
992
+ "color": "@text",
993
+ "transform": {
994
+ "rotate": 45,
995
+ "origin": [
996
+ 916.6666666666666,
997
+ 744
998
+ ]
999
+ },
1000
+ "when": {
1001
+ "odd": 29
1002
+ }
1003
+ },
1004
+ {
1005
+ "id": "m29",
1006
+ "type": "icon",
1007
+ "markup": "{mark}",
1008
+ "x": 870.6666666666666,
1009
+ "y": 698,
1010
+ "size": 92,
1011
+ "color": "@text",
1012
+ "when": {
1013
+ "not": {
1014
+ "odd": 29
1015
+ }
1016
+ }
1017
+ },
1018
+ {
1019
+ "id": "name",
1020
+ "type": "text",
1021
+ "content": "{name}",
1022
+ "font": "Inter Tight",
1023
+ "weight": 700,
1024
+ "size": 86,
1025
+ "letterSpacing": -0.015,
1026
+ "x": 44,
1027
+ "y": 890,
1028
+ "maxWidth": 912,
1029
+ "maxLines": 1,
1030
+ "fit": "shrink",
1031
+ "color": "@text"
1032
+ },
1033
+ {
1034
+ "id": "title",
1035
+ "type": "text",
1036
+ "content": "{title}",
1037
+ "font": "Inter Tight",
1038
+ "weight": 400,
1039
+ "size": 86,
1040
+ "letterSpacing": -0.01,
1041
+ "x": 44,
1042
+ "y": 970,
1043
+ "maxWidth": 912,
1044
+ "maxLines": 1,
1045
+ "fit": "shrink",
1046
+ "color": "@text"
1047
+ }
1048
+ ]
1049
+ },
1050
+ {
1051
+ "id": "grain",
1052
+ "type": "grain",
1053
+ "amount": 0.035
1054
+ }
1055
+ ]
1056
+ }