@arraypress/covers 1.1.0 → 1.4.0

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 (259) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +18 -809
  3. package/package.json +3 -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-poster.json +91 -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/logofolio.json +60 -0
  34. package/recipes/flyers/lumio-stack-motion.json +648 -0
  35. package/recipes/flyers/lumio-stack.json +438 -0
  36. package/recipes/flyers/magazine-cover.json +168 -0
  37. package/recipes/flyers/magazine-extended.json +269 -0
  38. package/recipes/flyers/magazine-knockout.json +40 -0
  39. package/recipes/flyers/northfold-varsity.json +618 -0
  40. package/recipes/flyers/open-studio.json +69 -0
  41. package/recipes/flyers/orrin-merch.json +715 -0
  42. package/recipes/flyers/oxyde.json +113 -0
  43. package/recipes/flyers/pixel-mosaic.json +58 -0
  44. package/recipes/flyers/quiet-fields.json +610 -0
  45. package/recipes/flyers/scrapbook-halcyon.json +948 -0
  46. package/recipes/flyers/solenne-ticket.json +730 -0
  47. package/recipes/flyers/solvane-motion.json +576 -0
  48. package/recipes/flyers/solvane.json +98 -0
  49. package/recipes/flyers/subduct.json +99 -0
  50. package/recipes/flyers/sunvale-lineup.json +584 -0
  51. package/recipes/flyers/tidewell.json +91 -0
  52. package/recipes/flyers/tour-kairo.json +535 -0
  53. package/recipes/flyers/velora-stickers.json +885 -0
  54. package/recipes/flyers/wheatpaste-black.json +313 -0
  55. package/recipes/flyers/wheatpaste-mark.json +198 -0
  56. package/recipes/flyers/wheatpaste-torn.json +114 -0
  57. package/recipes/flyers/wheatpaste-wall.json +984 -0
  58. package/recipes/flyers/wheatpaste-words.json +233 -0
  59. package/recipes/release/aura.json +137 -0
  60. package/recipes/release/chrome.json +433 -0
  61. package/recipes/release/collage.json +372 -0
  62. package/recipes/release/duotone.json +113 -0
  63. package/recipes/release/film-still.json +102 -0
  64. package/recipes/release/headline.json +70 -0
  65. package/recipes/release/instant.json +170 -0
  66. package/recipes/release/label.json +364 -0
  67. package/recipes/release/liquid-glass.json +301 -0
  68. package/recipes/release/odd-tile-dark.json +688 -0
  69. package/recipes/release/odd-tile-dense.json +1056 -0
  70. package/recipes/release/odd-tile-shift.json +541 -0
  71. package/recipes/release/odd-tile-split.json +571 -0
  72. package/recipes/release/odd-tile.json +633 -0
  73. package/recipes/release/off-edge.json +96 -0
  74. package/recipes/release/plinth.json +794 -0
  75. package/recipes/release/riso.json +108 -0
  76. package/recipes/release/series/fluid-label.json +561 -0
  77. package/recipes/release/series/fluid-pixel.json +334 -0
  78. package/recipes/release/series/hairline.json +305 -0
  79. package/recipes/release/series/halo.json +282 -0
  80. package/recipes/release/series/mark-crop.json +135 -0
  81. package/recipes/release/series/mark-window.json +150 -0
  82. package/recipes/release/series/photo-label.json +475 -0
  83. package/recipes/release/series/smear-field.json +345 -0
  84. package/recipes/release/series/smear.json +202 -0
  85. package/recipes/release/series/spin.json +172 -0
  86. package/recipes/release/series/split-ghost.json +230 -0
  87. package/recipes/release/series/zoom.json +168 -0
  88. package/recipes/release/small-print.json +114 -0
  89. package/recipes/release/stack.json +156 -0
  90. package/recipes/release/swiss.json +117 -0
  91. package/schema/recipe.schema.json +638 -69
  92. package/src/animate/index.d.ts +9 -19
  93. package/src/animate/index.js +6 -111
  94. package/src/animate/keyframes.d.ts +21 -0
  95. package/src/animate/keyframes.js +119 -0
  96. package/src/animate/marquee.d.ts +30 -0
  97. package/src/animate/marquee.js +93 -0
  98. package/src/animate/morph.d.ts +8 -0
  99. package/src/animate/morph.js +99 -0
  100. package/src/animate/motion.d.ts +59 -0
  101. package/src/animate/motion.js +63 -0
  102. package/src/animate/sheet.d.ts +19 -0
  103. package/src/animate/sheet.js +61 -0
  104. package/src/animate/timing.d.ts +28 -0
  105. package/src/animate/timing.js +146 -0
  106. package/src/animate/tracks.d.ts +18 -0
  107. package/src/animate/tracks.js +139 -0
  108. package/src/diagram.js +4 -3
  109. package/src/extract.js +2 -2
  110. package/src/fonts.js +1 -2
  111. package/src/geometry.js +4 -34
  112. package/src/grid.js +1 -1
  113. package/src/handmade.js +9 -7
  114. package/src/icons.js +1 -2
  115. package/src/index.d.ts +47 -54
  116. package/src/index.js +5 -5
  117. package/src/inter-data.js +1 -1
  118. package/src/json-recipe.js +28 -7
  119. package/src/layer-options.js +26 -4
  120. package/src/layers/barcode.js +3 -3
  121. package/src/layers/geometry.js +5 -5
  122. package/src/layers/index.d.ts +6 -0
  123. package/src/layers/index.js +3 -0
  124. package/src/layers/mark-geometry.d.ts +15 -0
  125. package/src/layers/mark-geometry.js +46 -0
  126. package/src/layers/marks.d.ts +25 -0
  127. package/src/layers/marks.js +102 -0
  128. package/src/layers/mosaic.d.ts +32 -0
  129. package/src/layers/mosaic.js +155 -0
  130. package/src/layers/perforation.js +3 -3
  131. package/src/layers/repeat.js +2 -2
  132. package/src/layers/shape.d.ts +2 -2
  133. package/src/layers/shape.js +5 -5
  134. package/src/layers/soft.js +2 -2
  135. package/src/layers/svg.js +2 -3
  136. package/src/layers/table.js +3 -3
  137. package/src/layers/tear.d.ts +1 -1
  138. package/src/layers/tear.js +4 -4
  139. package/src/layers/texture.js +3 -3
  140. package/src/layers/util.js +15 -2
  141. package/src/layers.js +17 -32
  142. package/src/{effects/paint.js → paint/index.js} +5 -5
  143. package/src/{effects/paint-presets.d.ts → paint/presets.d.ts} +1 -1
  144. package/src/{effects/paint-presets.js → paint/presets.js} +1 -1
  145. package/src/{effects → paint}/tile.d.ts +1 -1
  146. package/src/{effects → paint}/tile.js +4 -4
  147. package/src/palette.js +1 -1
  148. package/src/platform/files.d.ts +6 -0
  149. package/src/platform/files.js +41 -0
  150. package/src/platform/harfbuzz.js +1 -1
  151. package/src/platform/index.d.ts +3 -3
  152. package/src/platform/index.js +6 -4
  153. package/src/platform/load.js +1 -2
  154. package/src/print.js +9 -7
  155. package/src/recipes.js +1 -1
  156. package/src/render/backdrop.js +2 -2
  157. package/src/render/grain.js +1 -1
  158. package/src/render/group.js +3 -3
  159. package/src/render/key.js +1 -2
  160. package/src/{effects → render}/transform.d.ts +2 -1
  161. package/src/{effects → render}/transform.js +17 -5
  162. package/src/render/use.d.ts +1 -1
  163. package/src/render/use.js +2 -2
  164. package/src/render/wrap.js +5 -60
  165. package/src/render.js +55 -18
  166. package/src/text.js +1 -1
  167. package/src/type/auto-color.js +1 -1
  168. package/src/type/fallback.js +1 -1
  169. package/src/type/glyphs.js +2 -2
  170. package/src/type/line.js +1 -1
  171. package/src/type/live.js +1 -1
  172. package/src/type/path.js +2 -2
  173. package/src/type/pixel.d.ts +0 -2
  174. package/src/type/pixel.js +3 -33
  175. package/src/type/spans.d.ts +5 -1
  176. package/src/type/spans.js +28 -5
  177. package/src/type/symbols.d.ts +1 -1
  178. package/src/type/symbols.js +20 -2
  179. package/src/type/typeset.js +25 -10
  180. package/src/version.js +1 -1
  181. package/src/color.js +0 -246
  182. package/src/effects/ascii.d.ts +0 -7
  183. package/src/effects/ascii.js +0 -93
  184. package/src/effects/buffer.d.ts +0 -60
  185. package/src/effects/buffer.js +0 -472
  186. package/src/effects/detail.d.ts +0 -12
  187. package/src/effects/detail.js +0 -124
  188. package/src/effects/digital.d.ts +0 -14
  189. package/src/effects/digital.js +0 -216
  190. package/src/effects/distort.d.ts +0 -20
  191. package/src/effects/distort.js +0 -314
  192. package/src/effects/dither.d.ts +0 -8
  193. package/src/effects/dither.js +0 -147
  194. package/src/effects/drop-shadow.d.ts +0 -4
  195. package/src/effects/drop-shadow.js +0 -45
  196. package/src/effects/extrude.d.ts +0 -5
  197. package/src/effects/extrude.js +0 -55
  198. package/src/effects/film.d.ts +0 -11
  199. package/src/effects/film.js +0 -204
  200. package/src/effects/glow.d.ts +0 -8
  201. package/src/effects/glow.js +0 -56
  202. package/src/effects/grade.d.ts +0 -30
  203. package/src/effects/grade.js +0 -274
  204. package/src/effects/halftone.d.ts +0 -8
  205. package/src/effects/halftone.js +0 -95
  206. package/src/effects/index.d.ts +0 -125
  207. package/src/effects/index.js +0 -277
  208. package/src/effects/ink.d.ts +0 -12
  209. package/src/effects/ink.js +0 -70
  210. package/src/effects/lens.d.ts +0 -14
  211. package/src/effects/lens.js +0 -277
  212. package/src/effects/light.d.ts +0 -10
  213. package/src/effects/light.js +0 -59
  214. package/src/effects/looks.d.ts +0 -9
  215. package/src/effects/looks.js +0 -74
  216. package/src/effects/mask.d.ts +0 -52
  217. package/src/effects/mask.js +0 -314
  218. package/src/effects/motion.d.ts +0 -6
  219. package/src/effects/motion.js +0 -60
  220. package/src/effects/newsprint.d.ts +0 -6
  221. package/src/effects/newsprint.js +0 -89
  222. package/src/effects/optics.d.ts +0 -10
  223. package/src/effects/optics.js +0 -213
  224. package/src/effects/options.d.ts +0 -6
  225. package/src/effects/options.js +0 -106
  226. package/src/effects/pixels.d.ts +0 -24
  227. package/src/effects/pixels.js +0 -138
  228. package/src/effects/polar.d.ts +0 -10
  229. package/src/effects/polar.js +0 -265
  230. package/src/effects/region.d.ts +0 -8
  231. package/src/effects/region.js +0 -136
  232. package/src/effects/round-border.d.ts +0 -5
  233. package/src/effects/round-border.js +0 -62
  234. package/src/effects/screen.d.ts +0 -14
  235. package/src/effects/screen.js +0 -212
  236. package/src/effects/sort.d.ts +0 -8
  237. package/src/effects/sort.js +0 -125
  238. package/src/effects/symmetry.d.ts +0 -6
  239. package/src/effects/symmetry.js +0 -74
  240. package/src/effects/tone.d.ts +0 -16
  241. package/src/effects/tone.js +0 -117
  242. package/src/effects/util.d.ts +0 -16
  243. package/src/effects/util.js +0 -85
  244. package/src/platform/bytes.d.ts +0 -22
  245. package/src/platform/bytes.js +0 -103
  246. package/src/platform/compress.d.ts +0 -12
  247. package/src/platform/compress.js +0 -81
  248. package/src/platform/node.d.ts +0 -26
  249. package/src/platform/node.js +0 -86
  250. package/src/png.js +0 -126
  251. package/src/raster/index.d.ts +0 -24
  252. package/src/raster/index.js +0 -171
  253. package/src/render/content.d.ts +0 -5
  254. package/src/render/content.js +0 -58
  255. package/src/render/tiles.d.ts +0 -6
  256. package/src/render/tiles.js +0 -77
  257. package/src/rng.js +0 -95
  258. package/src/svg.js +0 -69
  259. /package/src/{effects/paint.d.ts → paint/index.d.ts} +0 -0
@@ -0,0 +1,874 @@
1
+ {
2
+ "$schema": "../../schema/recipe.schema.json",
3
+ "name": "fennick-patches",
4
+ "description": "Varsity, patches on denim: a chenille letter (felt in two layers, stitched), an embroidered crest in satin thread with a gold border, a felt pennant and a stitched label, on twill with a seam. Re-expressed from the Logomarks scenes lab (FlyerCards2, 'Varsity · patches'). Twill and satin are SVG patterns through the svg layer (no pattern paint), and the stitch on the letter is solid (text strokes take no dash). The release cover is the crest, big, with the pennant carrying the title (the chenille initial would read as a stray word).",
5
+ "params": {
6
+ "letter": "F",
7
+ "name": "FENNICK",
8
+ "est": "EST. 2026",
9
+ "pennant": "GO FENNICK",
10
+ "label": [
11
+ "CLASS OF 26",
12
+ "FENNICK ATHLETIC CLUB"
13
+ ],
14
+ "artist": "Fennick",
15
+ "release": "Class of 26",
16
+ "navy": "#1c2747",
17
+ "red": "#a3242c",
18
+ "cream": "#efe6d2",
19
+ "thread": "#f7efdc",
20
+ "seam": "#1d3157",
21
+ "gold": "#d99b45"
22
+ },
23
+ "layers": [
24
+ {
25
+ "id": "base",
26
+ "type": "solid",
27
+ "color": "#2c4877"
28
+ },
29
+ {
30
+ "id": "poster",
31
+ "type": "group",
32
+ "viewBox": [
33
+ 0,
34
+ 0,
35
+ 400,
36
+ 500
37
+ ],
38
+ "fit": "contain",
39
+ "when": {
40
+ "not": {
41
+ "format": "release"
42
+ }
43
+ },
44
+ "layers": [
45
+ {
46
+ "id": "threads",
47
+ "type": "svg",
48
+ "markup": "",
49
+ "defs": "<pattern id=\"fk-satin\" width=\"2.4\" height=\"2.4\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(42)\"><rect width=\"2.4\" height=\"2.4\" fill=\"#f4e7c8\"/><rect width=\"0.8\" height=\"2.4\" fill=\"#d9c69c\"/></pattern><pattern id=\"fk-satin-gold\" width=\"2.4\" height=\"2.4\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(-38)\"><rect width=\"2.4\" height=\"2.4\" fill=\"#e7b54a\"/><rect width=\"0.8\" height=\"2.4\" fill=\"#b8862a\"/></pattern><pattern id=\"fk-twill\" width=\"3\" height=\"3\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(-62)\"><rect width=\"3\" height=\"3\" fill=\"#2c4877\"/><rect width=\"1.3\" height=\"3\" fill=\"#4767a0\"/></pattern><filter id=\"fk-fade\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.012 0.02\" numOctaves=\"3\" seed=\"6\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.85 0 0 0 0 0.9 0 0 0 0 1 0.9 0 0 0 -0.35\"/></filter>"
50
+ },
51
+ {
52
+ "id": "twill",
53
+ "type": "shape",
54
+ "kind": "rect",
55
+ "x": 0,
56
+ "y": 0,
57
+ "width": 400,
58
+ "height": 500,
59
+ "fill": "url(#fk-twill)"
60
+ },
61
+ {
62
+ "id": "fade",
63
+ "type": "svg",
64
+ "opacity": 0.28,
65
+ "markup": "<rect width=\"400\" height=\"500\" filter=\"url(#fk-fade)\"/>"
66
+ },
67
+ {
68
+ "id": "grain",
69
+ "type": "svg",
70
+ "opacity": 0.6,
71
+ "blend": "soft-light",
72
+ "defs": "<filter id=\"{{id}}g\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.85\" numOctaves=\"2\" seed=\"5\" stitchTiles=\"stitch\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0.9 0.9 0.9 0 -0.9\"/></filter>",
73
+ "markup": "<rect width=\"400\" height=\"500\" filter=\"url(#{{id}}g)\"/>"
74
+ },
75
+ {
76
+ "id": "seam",
77
+ "type": "shape",
78
+ "kind": "path",
79
+ "d": "M372 0V500",
80
+ "fill": "none",
81
+ "stroke": "{seam}",
82
+ "strokeWidth": 5
83
+ },
84
+ {
85
+ "id": "seamThread",
86
+ "type": "shape",
87
+ "kind": "path",
88
+ "d": "M366 0V500M378 0V500",
89
+ "fill": "none",
90
+ "stroke": "{gold}",
91
+ "strokeWidth": 1.1,
92
+ "dash": [
93
+ 3,
94
+ 2
95
+ ]
96
+ },
97
+ {
98
+ "id": "chenille",
99
+ "type": "group",
100
+ "transform": "rotate(-6 120 175.2)",
101
+ "layers": [
102
+ {
103
+ "id": "felt",
104
+ "type": "group",
105
+ "effects": [
106
+ {
107
+ "kind": "filter",
108
+ "pad": 0.06,
109
+ "markup": "<feTurbulence color-interpolation-filters=\"linearRGB\" type=\"fractalNoise\" baseFrequency=\"1.4\" numOctaves=\"2\" seed=\"3\" result=\"n\"/><feDisplacementMap color-interpolation-filters=\"linearRGB\" in=\"SourceGraphic\" in2=\"n\" scale=\"2.6\" xChannelSelector=\"R\" yChannelSelector=\"G\" result=\"fuzz\"/><feTurbulence color-interpolation-filters=\"linearRGB\" type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"3\" seed=\"8\" result=\"n2\"/><feDiffuseLighting color-interpolation-filters=\"linearRGB\" in=\"n2\" surfaceScale=\"1.4\" lighting-color=\"#fff\" result=\"lit\"><feDistantLight azimuth=\"235\" elevation=\"58\"/></feDiffuseLighting><feComposite color-interpolation-filters=\"linearRGB\" in=\"fuzz\" in2=\"lit\" operator=\"arithmetic\" k1=\"1.18\" result=\"tex\"/><feComposite color-interpolation-filters=\"linearRGB\" in=\"tex\" in2=\"fuzz\" operator=\"in\" result=\"felt\"/><feGaussianBlur in=\"felt\" stdDeviation=\"1.3\"/><feOffset dx=\"0.6\" dy=\"1.6\" result=\"sb\"/><feFlood flood-color=\"#000\" flood-opacity=\"0.5\"/><feComposite in2=\"sb\" operator=\"in\" result=\"sh\"/><feMerge><feMergeNode in=\"sh\"/><feMergeNode in=\"felt\"/></feMerge>"
110
+ }
111
+ ],
112
+ "layers": [
113
+ {
114
+ "id": "backing",
115
+ "type": "text",
116
+ "content": "{letter}",
117
+ "font": "Big Shoulders Display",
118
+ "weight": 900,
119
+ "size": 290,
120
+ "letterSpacing": 0,
121
+ "x": 120,
122
+ "y": 268,
123
+ "align": "center",
124
+ "color": "{cream}",
125
+ "strokes": [
126
+ {
127
+ "color": "{cream}",
128
+ "width": 22.04
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ "id": "letter",
134
+ "type": "text",
135
+ "content": "{letter}",
136
+ "font": "Big Shoulders Display",
137
+ "weight": 900,
138
+ "size": 290,
139
+ "letterSpacing": 0,
140
+ "x": 120,
141
+ "y": 268,
142
+ "align": "center",
143
+ "color": "{red}"
144
+ }
145
+ ]
146
+ },
147
+ {
148
+ "id": "stitch",
149
+ "type": "text",
150
+ "content": "{letter}",
151
+ "font": "Big Shoulders Display",
152
+ "weight": 900,
153
+ "size": 290,
154
+ "letterSpacing": 0,
155
+ "x": 120,
156
+ "y": 268,
157
+ "align": "center",
158
+ "fill": "none",
159
+ "stroke": "{thread}",
160
+ "strokeWidth": 1.305,
161
+ "opacity": 0.75,
162
+ "transform": "translate(120 175.2) scale(0.95) translate(-120 -175.2)"
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "id": "crest",
168
+ "type": "group",
169
+ "effects": [
170
+ {
171
+ "kind": "filter",
172
+ "pad": 0.12,
173
+ "markup": "<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"0.8\" result=\"b1\"/><feOffset in=\"b1\" dx=\"0.4\" dy=\"1\" result=\"o1\"/><feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"8\" result=\"b2\"/><feOffset in=\"b2\" dx=\"4\" dy=\"11\" result=\"o2\"/><feComponentTransfer in=\"o2\" result=\"o2a\"><feFuncA type=\"linear\" slope=\"0.5\"/></feComponentTransfer><feComponentTransfer in=\"o1\" result=\"o1a\"><feFuncA type=\"linear\" slope=\"0.55\"/></feComponentTransfer><feMerge><feMergeNode in=\"o2a\"/><feMergeNode in=\"o1a\"/><feMergeNode in=\"SourceGraphic\"/></feMerge>"
174
+ }
175
+ ],
176
+ "layers": [
177
+ {
178
+ "id": "crestBody",
179
+ "type": "group",
180
+ "transform": "rotate(8 290 142)",
181
+ "layers": [
182
+ {
183
+ "id": "ground",
184
+ "type": "shape",
185
+ "kind": "circle",
186
+ "cx": 290,
187
+ "cy": 142,
188
+ "r": 76,
189
+ "fill": "{navy}"
190
+ },
191
+ {
192
+ "id": "border",
193
+ "type": "shape",
194
+ "kind": "circle",
195
+ "cx": 290,
196
+ "cy": 142,
197
+ "r": 72,
198
+ "fill": "none",
199
+ "stroke": "url(#fk-satin-gold)",
200
+ "strokeWidth": 8
201
+ },
202
+ {
203
+ "id": "edge",
204
+ "type": "shape",
205
+ "kind": "circle",
206
+ "cx": 290,
207
+ "cy": 142,
208
+ "r": 77,
209
+ "fill": "none",
210
+ "stroke": "#b8862a",
211
+ "strokeWidth": 0.8
212
+ },
213
+ {
214
+ "id": "disc",
215
+ "type": "shape",
216
+ "kind": "circle",
217
+ "cx": 290,
218
+ "cy": 142,
219
+ "r": 40,
220
+ "fill": "{red}"
221
+ },
222
+ {
223
+ "id": "crestMark",
224
+ "type": "shape",
225
+ "kind": "rect",
226
+ "x": 210,
227
+ "y": 62,
228
+ "width": 160,
229
+ "height": 160,
230
+ "fill": "url(#fk-satin)",
231
+ "clip": [
232
+ {
233
+ "type": "icon",
234
+ "markup": "{mark}",
235
+ "x": 260,
236
+ "y": 112,
237
+ "size": 60,
238
+ "when": "mark"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "id": "crestName",
244
+ "type": "text",
245
+ "content": "{name}",
246
+ "font": "Big Shoulders Display",
247
+ "weight": 900,
248
+ "size": 19,
249
+ "letterSpacing": 0.158,
250
+ "fill": "url(#fk-satin)",
251
+ "path": {
252
+ "kind": "arc",
253
+ "cx": 290,
254
+ "cy": 142,
255
+ "r": 54,
256
+ "start": -90,
257
+ "end": 90
258
+ }
259
+ },
260
+ {
261
+ "id": "crestEst",
262
+ "type": "text",
263
+ "content": "{est}",
264
+ "font": "Big Shoulders Display",
265
+ "weight": 800,
266
+ "size": 13,
267
+ "letterSpacing": 0.23,
268
+ "fill": "url(#fk-satin)",
269
+ "path": {
270
+ "kind": "arc",
271
+ "cx": 290,
272
+ "cy": 142,
273
+ "r": 64,
274
+ "start": 270,
275
+ "end": 90,
276
+ "direction": "ccw"
277
+ }
278
+ },
279
+ {
280
+ "id": "stars",
281
+ "type": "shape",
282
+ "fill": "#e7b54a",
283
+ "items": [
284
+ {
285
+ "kind": "polygon",
286
+ "points": [
287
+ [
288
+ 232,
289
+ 141
290
+ ],
291
+ [
292
+ 233.3,
293
+ 144.2
294
+ ],
295
+ [
296
+ 236.8,
297
+ 144.5
298
+ ],
299
+ [
300
+ 234.1,
301
+ 146.7
302
+ ],
303
+ [
304
+ 234.9,
305
+ 150
306
+ ],
307
+ [
308
+ 232,
309
+ 148.2
310
+ ],
311
+ [
312
+ 229.1,
313
+ 150
314
+ ],
315
+ [
316
+ 229.9,
317
+ 146.7
318
+ ],
319
+ [
320
+ 227.2,
321
+ 144.5
322
+ ],
323
+ [
324
+ 230.7,
325
+ 144.2
326
+ ]
327
+ ]
328
+ },
329
+ {
330
+ "kind": "polygon",
331
+ "points": [
332
+ [
333
+ 348,
334
+ 141
335
+ ],
336
+ [
337
+ 349.3,
338
+ 144.2
339
+ ],
340
+ [
341
+ 352.8,
342
+ 144.5
343
+ ],
344
+ [
345
+ 350.1,
346
+ 146.7
347
+ ],
348
+ [
349
+ 350.9,
350
+ 150
351
+ ],
352
+ [
353
+ 348,
354
+ 148.2
355
+ ],
356
+ [
357
+ 345.1,
358
+ 150
359
+ ],
360
+ [
361
+ 345.9,
362
+ 146.7
363
+ ],
364
+ [
365
+ 343.2,
366
+ 144.5
367
+ ],
368
+ [
369
+ 346.7,
370
+ 144.2
371
+ ]
372
+ ]
373
+ }
374
+ ]
375
+ }
376
+ ]
377
+ }
378
+ ]
379
+ },
380
+ {
381
+ "id": "pennant",
382
+ "type": "group",
383
+ "transform": "rotate(-9 170 380)",
384
+ "layers": [
385
+ {
386
+ "id": "pennantFelt",
387
+ "type": "group",
388
+ "effects": [
389
+ {
390
+ "kind": "filter",
391
+ "pad": 0.06,
392
+ "markup": "<feTurbulence color-interpolation-filters=\"linearRGB\" type=\"fractalNoise\" baseFrequency=\"1.4\" numOctaves=\"2\" seed=\"3\" result=\"n\"/><feDisplacementMap color-interpolation-filters=\"linearRGB\" in=\"SourceGraphic\" in2=\"n\" scale=\"2.6\" xChannelSelector=\"R\" yChannelSelector=\"G\" result=\"fuzz\"/><feTurbulence color-interpolation-filters=\"linearRGB\" type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"3\" seed=\"8\" result=\"n2\"/><feDiffuseLighting color-interpolation-filters=\"linearRGB\" in=\"n2\" surfaceScale=\"1.4\" lighting-color=\"#fff\" result=\"lit\"><feDistantLight azimuth=\"235\" elevation=\"58\"/></feDiffuseLighting><feComposite color-interpolation-filters=\"linearRGB\" in=\"fuzz\" in2=\"lit\" operator=\"arithmetic\" k1=\"1.18\" result=\"tex\"/><feComposite color-interpolation-filters=\"linearRGB\" in=\"tex\" in2=\"fuzz\" operator=\"in\" result=\"felt\"/><feGaussianBlur in=\"felt\" stdDeviation=\"1.3\"/><feOffset dx=\"0.6\" dy=\"1.6\" result=\"sb\"/><feFlood flood-color=\"#000\" flood-opacity=\"0.5\"/><feComposite in2=\"sb\" operator=\"in\" result=\"sh\"/><feMerge><feMergeNode in=\"sh\"/><feMergeNode in=\"felt\"/></feMerge>"
393
+ }
394
+ ],
395
+ "layers": [
396
+ {
397
+ "id": "pennantEdge",
398
+ "type": "shape",
399
+ "kind": "path",
400
+ "d": "M30 330L330 372L30 420Z",
401
+ "fill": "{cream}"
402
+ },
403
+ {
404
+ "id": "pennantField",
405
+ "type": "shape",
406
+ "kind": "path",
407
+ "d": "M38 338L306 372L38 412Z",
408
+ "fill": "{navy}"
409
+ },
410
+ {
411
+ "id": "pennantTab",
412
+ "type": "shape",
413
+ "kind": "rect",
414
+ "x": 22,
415
+ "y": 326,
416
+ "width": 18,
417
+ "height": 98,
418
+ "fill": "{red}"
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ "id": "pennantText",
424
+ "type": "text",
425
+ "content": "{pennant}",
426
+ "font": "Big Shoulders Display",
427
+ "weight": 900,
428
+ "size": 31,
429
+ "letterSpacing": 0,
430
+ "x": 56,
431
+ "y": 385.95,
432
+ "width": 160,
433
+ "color": "{cream}"
434
+ },
435
+ {
436
+ "id": "pennantStitch",
437
+ "type": "shape",
438
+ "kind": "path",
439
+ "d": "M38 342L296 373L38 408",
440
+ "fill": "none",
441
+ "stroke": "{cream}",
442
+ "strokeWidth": 1,
443
+ "dash": [
444
+ 2.4,
445
+ 1.4
446
+ ],
447
+ "opacity": 0.7
448
+ }
449
+ ]
450
+ },
451
+ {
452
+ "id": "label",
453
+ "type": "group",
454
+ "effects": [
455
+ {
456
+ "kind": "filter",
457
+ "pad": 0.12,
458
+ "markup": "<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"0.8\" result=\"b1\"/><feOffset in=\"b1\" dx=\"0.4\" dy=\"1\" result=\"o1\"/><feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"8\" result=\"b2\"/><feOffset in=\"b2\" dx=\"4\" dy=\"11\" result=\"o2\"/><feComponentTransfer in=\"o2\" result=\"o2a\"><feFuncA type=\"linear\" slope=\"0.5\"/></feComponentTransfer><feComponentTransfer in=\"o1\" result=\"o1a\"><feFuncA type=\"linear\" slope=\"0.55\"/></feComponentTransfer><feMerge><feMergeNode in=\"o2a\"/><feMergeNode in=\"o1a\"/><feMergeNode in=\"SourceGraphic\"/></feMerge>"
459
+ }
460
+ ],
461
+ "layers": [
462
+ {
463
+ "id": "labelBody",
464
+ "type": "group",
465
+ "transform": "rotate(4 270 455)",
466
+ "layers": [
467
+ {
468
+ "id": "tape",
469
+ "type": "shape",
470
+ "kind": "rect",
471
+ "x": 196,
472
+ "y": 428,
473
+ "width": 160,
474
+ "height": 50,
475
+ "radius": 3,
476
+ "fill": "{cream}"
477
+ },
478
+ {
479
+ "id": "tapeStitch",
480
+ "type": "shape",
481
+ "kind": "rect",
482
+ "x": 201,
483
+ "y": 433,
484
+ "width": 150,
485
+ "height": 40,
486
+ "radius": 2,
487
+ "fill": "none",
488
+ "stroke": "{red}",
489
+ "strokeWidth": 1,
490
+ "dash": [
491
+ 2.6,
492
+ 1.4
493
+ ]
494
+ },
495
+ {
496
+ "id": "labelMark",
497
+ "type": "icon",
498
+ "markup": "{mark}",
499
+ "x": 206,
500
+ "y": 438,
501
+ "size": 30,
502
+ "color": "{red}",
503
+ "when": "mark"
504
+ },
505
+ {
506
+ "id": "labelName",
507
+ "type": "text",
508
+ "content": "{label.0}",
509
+ "font": "Big Shoulders Display",
510
+ "weight": 900,
511
+ "size": 20,
512
+ "letterSpacing": 0.05,
513
+ "x": 240,
514
+ "y": 456,
515
+ "color": "{navy}"
516
+ },
517
+ {
518
+ "id": "labelSub",
519
+ "type": "text",
520
+ "content": "{label.1}",
521
+ "font": "Space Mono",
522
+ "weight": 700,
523
+ "size": 6,
524
+ "letterSpacing": 0.1,
525
+ "x": 240,
526
+ "y": 467,
527
+ "color": "{red}"
528
+ }
529
+ ]
530
+ }
531
+ ]
532
+ }
533
+ ]
534
+ },
535
+ {
536
+ "id": "cover",
537
+ "type": "group",
538
+ "viewBox": [
539
+ 0,
540
+ 0,
541
+ 400,
542
+ 400
543
+ ],
544
+ "fit": "contain",
545
+ "when": {
546
+ "format": "release"
547
+ },
548
+ "layers": [
549
+ {
550
+ "id": "threads",
551
+ "type": "svg",
552
+ "markup": "",
553
+ "defs": "<pattern id=\"fk-satin\" width=\"2.4\" height=\"2.4\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(42)\"><rect width=\"2.4\" height=\"2.4\" fill=\"#f4e7c8\"/><rect width=\"0.8\" height=\"2.4\" fill=\"#d9c69c\"/></pattern><pattern id=\"fk-satin-gold\" width=\"2.4\" height=\"2.4\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(-38)\"><rect width=\"2.4\" height=\"2.4\" fill=\"#e7b54a\"/><rect width=\"0.8\" height=\"2.4\" fill=\"#b8862a\"/></pattern><pattern id=\"fk-twill\" width=\"3\" height=\"3\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(-62)\"><rect width=\"3\" height=\"3\" fill=\"#2c4877\"/><rect width=\"1.3\" height=\"3\" fill=\"#4767a0\"/></pattern><filter id=\"fk-fade\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.012 0.02\" numOctaves=\"3\" seed=\"6\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.85 0 0 0 0 0.9 0 0 0 0 1 0.9 0 0 0 -0.35\"/></filter>"
554
+ },
555
+ {
556
+ "id": "twill",
557
+ "type": "shape",
558
+ "kind": "rect",
559
+ "x": 0,
560
+ "y": 0,
561
+ "width": 400,
562
+ "height": 400,
563
+ "fill": "url(#fk-twill)"
564
+ },
565
+ {
566
+ "id": "fade",
567
+ "type": "svg",
568
+ "opacity": 0.28,
569
+ "markup": "<rect width=\"400\" height=\"400\" filter=\"url(#fk-fade)\"/>"
570
+ },
571
+ {
572
+ "id": "grain",
573
+ "type": "svg",
574
+ "opacity": 0.6,
575
+ "blend": "soft-light",
576
+ "defs": "<filter id=\"{{id}}g\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.85\" numOctaves=\"2\" seed=\"5\" stitchTiles=\"stitch\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0.9 0.9 0.9 0 -0.9\"/></filter>",
577
+ "markup": "<rect width=\"400\" height=\"400\" filter=\"url(#{{id}}g)\"/>"
578
+ },
579
+ {
580
+ "id": "seam",
581
+ "type": "shape",
582
+ "kind": "path",
583
+ "d": "M380 0V400",
584
+ "fill": "none",
585
+ "stroke": "{seam}",
586
+ "strokeWidth": 5
587
+ },
588
+ {
589
+ "id": "seamThread",
590
+ "type": "shape",
591
+ "kind": "path",
592
+ "d": "M374 0V400M386 0V400",
593
+ "fill": "none",
594
+ "stroke": "{gold}",
595
+ "strokeWidth": 1.1,
596
+ "dash": [
597
+ 3,
598
+ 2
599
+ ]
600
+ },
601
+ {
602
+ "id": "crest",
603
+ "type": "group",
604
+ "effects": [
605
+ {
606
+ "kind": "filter",
607
+ "pad": 0.12,
608
+ "markup": "<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"0.8\" result=\"b1\"/><feOffset in=\"b1\" dx=\"0.4\" dy=\"1\" result=\"o1\"/><feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"8\" result=\"b2\"/><feOffset in=\"b2\" dx=\"4\" dy=\"11\" result=\"o2\"/><feComponentTransfer in=\"o2\" result=\"o2a\"><feFuncA type=\"linear\" slope=\"0.5\"/></feComponentTransfer><feComponentTransfer in=\"o1\" result=\"o1a\"><feFuncA type=\"linear\" slope=\"0.55\"/></feComponentTransfer><feMerge><feMergeNode in=\"o2a\"/><feMergeNode in=\"o1a\"/><feMergeNode in=\"SourceGraphic\"/></feMerge>"
609
+ }
610
+ ],
611
+ "layers": [
612
+ {
613
+ "id": "crestBody",
614
+ "type": "group",
615
+ "transform": "rotate(8 200 166)",
616
+ "layers": [
617
+ {
618
+ "id": "ground",
619
+ "type": "shape",
620
+ "kind": "circle",
621
+ "cx": 200,
622
+ "cy": 166,
623
+ "r": 132.24,
624
+ "fill": "{navy}"
625
+ },
626
+ {
627
+ "id": "border",
628
+ "type": "shape",
629
+ "kind": "circle",
630
+ "cx": 200,
631
+ "cy": 166,
632
+ "r": 125.28,
633
+ "fill": "none",
634
+ "stroke": "url(#fk-satin-gold)",
635
+ "strokeWidth": 13.92
636
+ },
637
+ {
638
+ "id": "edge",
639
+ "type": "shape",
640
+ "kind": "circle",
641
+ "cx": 200,
642
+ "cy": 166,
643
+ "r": 133.98,
644
+ "fill": "none",
645
+ "stroke": "#b8862a",
646
+ "strokeWidth": 1.3920000000000001
647
+ },
648
+ {
649
+ "id": "disc",
650
+ "type": "shape",
651
+ "kind": "circle",
652
+ "cx": 200,
653
+ "cy": 166,
654
+ "r": 69.6,
655
+ "fill": "{red}"
656
+ },
657
+ {
658
+ "id": "crestMark",
659
+ "type": "shape",
660
+ "kind": "rect",
661
+ "x": 60.80000000000001,
662
+ "y": 26.80000000000001,
663
+ "width": 278.4,
664
+ "height": 278.4,
665
+ "fill": "url(#fk-satin)",
666
+ "clip": [
667
+ {
668
+ "type": "icon",
669
+ "markup": "{mark}",
670
+ "x": 147.8,
671
+ "y": 113.8,
672
+ "size": 104.4,
673
+ "when": "mark"
674
+ }
675
+ ]
676
+ },
677
+ {
678
+ "id": "crestName",
679
+ "type": "text",
680
+ "content": {
681
+ "upper": "{artist}"
682
+ },
683
+ "font": "Big Shoulders Display",
684
+ "weight": 900,
685
+ "size": 33.06,
686
+ "letterSpacing": 0.158,
687
+ "fill": "url(#fk-satin)",
688
+ "path": {
689
+ "kind": "arc",
690
+ "cx": 200,
691
+ "cy": 166,
692
+ "r": 93.96,
693
+ "start": -90,
694
+ "end": 90
695
+ }
696
+ },
697
+ {
698
+ "id": "stars",
699
+ "type": "shape",
700
+ "fill": "#e7b54a",
701
+ "items": [
702
+ {
703
+ "kind": "polygon",
704
+ "points": [
705
+ [
706
+ 99.1,
707
+ 164.3
708
+ ],
709
+ [
710
+ 101.3,
711
+ 169.9
712
+ ],
713
+ [
714
+ 107.4,
715
+ 170.3
716
+ ],
717
+ [
718
+ 102.7,
719
+ 174.1
720
+ ],
721
+ [
722
+ 104.2,
723
+ 180
724
+ ],
725
+ [
726
+ 99.1,
727
+ 176.8
728
+ ],
729
+ [
730
+ 94,
731
+ 180
732
+ ],
733
+ [
734
+ 95.4,
735
+ 174.1
736
+ ],
737
+ [
738
+ 90.8,
739
+ 170.3
740
+ ],
741
+ [
742
+ 96.8,
743
+ 169.9
744
+ ]
745
+ ]
746
+ },
747
+ {
748
+ "kind": "polygon",
749
+ "points": [
750
+ [
751
+ 300.9,
752
+ 164.3
753
+ ],
754
+ [
755
+ 303.2,
756
+ 169.9
757
+ ],
758
+ [
759
+ 309.2,
760
+ 170.3
761
+ ],
762
+ [
763
+ 304.6,
764
+ 174.1
765
+ ],
766
+ [
767
+ 306,
768
+ 180
769
+ ],
770
+ [
771
+ 300.9,
772
+ 176.8
773
+ ],
774
+ [
775
+ 295.8,
776
+ 180
777
+ ],
778
+ [
779
+ 297.3,
780
+ 174.1
781
+ ],
782
+ [
783
+ 292.6,
784
+ 170.3
785
+ ],
786
+ [
787
+ 298.7,
788
+ 169.9
789
+ ]
790
+ ]
791
+ }
792
+ ]
793
+ }
794
+ ]
795
+ }
796
+ ]
797
+ },
798
+ {
799
+ "id": "pennant",
800
+ "type": "group",
801
+ "transform": "translate(12 -74) scale(1.06) rotate(-5 170 380)",
802
+ "layers": [
803
+ {
804
+ "id": "pennantFelt",
805
+ "type": "group",
806
+ "effects": [
807
+ {
808
+ "kind": "filter",
809
+ "pad": 0.06,
810
+ "markup": "<feTurbulence color-interpolation-filters=\"linearRGB\" type=\"fractalNoise\" baseFrequency=\"1.4\" numOctaves=\"2\" seed=\"3\" result=\"n\"/><feDisplacementMap color-interpolation-filters=\"linearRGB\" in=\"SourceGraphic\" in2=\"n\" scale=\"2.6\" xChannelSelector=\"R\" yChannelSelector=\"G\" result=\"fuzz\"/><feTurbulence color-interpolation-filters=\"linearRGB\" type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"3\" seed=\"8\" result=\"n2\"/><feDiffuseLighting color-interpolation-filters=\"linearRGB\" in=\"n2\" surfaceScale=\"1.4\" lighting-color=\"#fff\" result=\"lit\"><feDistantLight azimuth=\"235\" elevation=\"58\"/></feDiffuseLighting><feComposite color-interpolation-filters=\"linearRGB\" in=\"fuzz\" in2=\"lit\" operator=\"arithmetic\" k1=\"1.18\" result=\"tex\"/><feComposite color-interpolation-filters=\"linearRGB\" in=\"tex\" in2=\"fuzz\" operator=\"in\" result=\"felt\"/><feGaussianBlur in=\"felt\" stdDeviation=\"1.3\"/><feOffset dx=\"0.6\" dy=\"1.6\" result=\"sb\"/><feFlood flood-color=\"#000\" flood-opacity=\"0.5\"/><feComposite in2=\"sb\" operator=\"in\" result=\"sh\"/><feMerge><feMergeNode in=\"sh\"/><feMergeNode in=\"felt\"/></feMerge>"
811
+ }
812
+ ],
813
+ "layers": [
814
+ {
815
+ "id": "pennantEdge",
816
+ "type": "shape",
817
+ "kind": "path",
818
+ "d": "M30 330L330 372L30 420Z",
819
+ "fill": "{cream}"
820
+ },
821
+ {
822
+ "id": "pennantField",
823
+ "type": "shape",
824
+ "kind": "path",
825
+ "d": "M38 338L306 372L38 412Z",
826
+ "fill": "{navy}"
827
+ },
828
+ {
829
+ "id": "pennantTab",
830
+ "type": "shape",
831
+ "kind": "rect",
832
+ "x": 22,
833
+ "y": 326,
834
+ "width": 18,
835
+ "height": 98,
836
+ "fill": "{red}"
837
+ }
838
+ ]
839
+ },
840
+ {
841
+ "id": "pennantText",
842
+ "type": "text",
843
+ "content": {
844
+ "upper": "{release}"
845
+ },
846
+ "font": "Big Shoulders Display",
847
+ "weight": 900,
848
+ "size": 36,
849
+ "letterSpacing": 0,
850
+ "x": 56,
851
+ "y": 388.2,
852
+ "width": 180,
853
+ "color": "{cream}"
854
+ },
855
+ {
856
+ "id": "pennantStitch",
857
+ "type": "shape",
858
+ "kind": "path",
859
+ "d": "M38 342L296 373L38 408",
860
+ "fill": "none",
861
+ "stroke": "{cream}",
862
+ "strokeWidth": 1,
863
+ "dash": [
864
+ 2.4,
865
+ 1.4
866
+ ],
867
+ "opacity": 0.7
868
+ }
869
+ ]
870
+ }
871
+ ]
872
+ }
873
+ ]
874
+ }