@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.
- package/CHANGELOG.md +118 -0
- package/README.md +18 -524
- package/package.json +34 -5
- package/recipes/brand.json +1143 -0
- package/recipes/flyers/afterglow-motion.json +540 -0
- package/recipes/flyers/afterglow.json +70 -0
- package/recipes/flyers/arcfield-mirror-motion.json +397 -0
- package/recipes/flyers/arcfield-mirror.json +364 -0
- package/recipes/flyers/bauhaus-oktav.json +319 -0
- package/recipes/flyers/bauhaus-ritmo.json +735 -0
- package/recipes/flyers/bauhaus-volta.json +394 -0
- package/recipes/flyers/bloomfall.json +99 -0
- package/recipes/flyers/drag-solenne-motion.json +444 -0
- package/recipes/flyers/drag-solenne.json +426 -0
- package/recipes/flyers/fennick-patches.json +874 -0
- package/recipes/flyers/ferro-pass.json +398 -0
- package/recipes/flyers/ferrova.json +812 -0
- package/recipes/flyers/grid-rest-rhythm.json +125 -0
- package/recipes/flyers/groovy-honeycomb.json +816 -0
- package/recipes/flyers/groovy-marigold.json +479 -0
- package/recipes/flyers/groovy-peachfuzz.json +974 -0
- package/recipes/flyers/halden-orbit-motion.json +381 -0
- package/recipes/flyers/halden-orbit.json +356 -0
- package/recipes/flyers/halvard.json +120 -0
- package/recipes/flyers/kairo-weekender.json +696 -0
- package/recipes/flyers/linger-motion.json +518 -0
- package/recipes/flyers/linger.json +67 -0
- package/recipes/flyers/little-orchard.json +105 -0
- package/recipes/flyers/lofi-hexmoth.json +912 -0
- package/recipes/flyers/lofi-lowbit-motion.json +888 -0
- package/recipes/flyers/lofi-lowbit.json +880 -0
- package/recipes/flyers/lofi-nullpoint.json +3013 -0
- package/recipes/flyers/lumio-stack-motion.json +648 -0
- package/recipes/flyers/lumio-stack.json +438 -0
- package/recipes/flyers/magazine-cover.json +168 -0
- package/recipes/flyers/magazine-extended.json +269 -0
- package/recipes/flyers/magazine-knockout.json +40 -0
- package/recipes/flyers/northfold-varsity.json +618 -0
- package/recipes/flyers/open-studio.json +69 -0
- package/recipes/flyers/orrin-merch.json +715 -0
- package/recipes/flyers/oxyde.json +113 -0
- package/recipes/flyers/quiet-fields.json +610 -0
- package/recipes/flyers/scrapbook-halcyon.json +948 -0
- package/recipes/flyers/solenne-ticket.json +730 -0
- package/recipes/flyers/solvane-motion.json +576 -0
- package/recipes/flyers/solvane.json +98 -0
- package/recipes/flyers/subduct.json +99 -0
- package/recipes/flyers/sunvale-lineup.json +584 -0
- package/recipes/flyers/tidewell.json +91 -0
- package/recipes/flyers/tour-kairo.json +535 -0
- package/recipes/flyers/velora-stickers.json +885 -0
- package/recipes/flyers/wheatpaste-black.json +313 -0
- package/recipes/flyers/wheatpaste-mark.json +198 -0
- package/recipes/flyers/wheatpaste-torn.json +114 -0
- package/recipes/flyers/wheatpaste-wall.json +984 -0
- package/recipes/flyers/wheatpaste-words.json +233 -0
- package/recipes/release/aura.json +137 -0
- package/recipes/release/chrome.json +433 -0
- package/recipes/release/collage.json +372 -0
- package/recipes/release/duotone.json +113 -0
- package/recipes/release/film-still.json +102 -0
- package/recipes/release/headline.json +70 -0
- package/recipes/release/instant.json +170 -0
- package/recipes/release/label.json +364 -0
- package/recipes/release/liquid-glass.json +301 -0
- package/recipes/release/odd-tile-dark.json +688 -0
- package/recipes/release/odd-tile-dense.json +1056 -0
- package/recipes/release/odd-tile-shift.json +541 -0
- package/recipes/release/odd-tile-split.json +571 -0
- package/recipes/release/odd-tile.json +633 -0
- package/recipes/release/off-edge.json +96 -0
- package/recipes/release/plinth.json +794 -0
- package/recipes/release/riso.json +108 -0
- package/recipes/release/series/fluid-label.json +561 -0
- package/recipes/release/series/fluid-pixel.json +334 -0
- package/recipes/release/series/hairline.json +305 -0
- package/recipes/release/series/halo.json +282 -0
- package/recipes/release/series/mark-crop.json +135 -0
- package/recipes/release/series/mark-window.json +150 -0
- package/recipes/release/series/photo-label.json +475 -0
- package/recipes/release/series/smear-field.json +345 -0
- package/recipes/release/series/smear.json +202 -0
- package/recipes/release/series/spin.json +172 -0
- package/recipes/release/series/split-ghost.json +230 -0
- package/recipes/release/series/zoom.json +168 -0
- package/recipes/release/small-print.json +114 -0
- package/recipes/release/stack.json +156 -0
- package/recipes/release/swiss.json +117 -0
- package/schema/recipe.schema.json +7624 -827
- package/src/animate/index.d.ts +9 -0
- package/src/animate/index.js +11 -0
- package/src/animate/keyframes.d.ts +21 -0
- package/src/animate/keyframes.js +119 -0
- package/src/animate/marquee.d.ts +30 -0
- package/src/animate/marquee.js +93 -0
- package/src/animate/morph.d.ts +8 -0
- package/src/animate/morph.js +99 -0
- package/src/animate/motion.d.ts +59 -0
- package/src/animate/motion.js +63 -0
- package/src/animate/sheet.d.ts +19 -0
- package/src/animate/sheet.js +61 -0
- package/src/animate/timing.d.ts +28 -0
- package/src/animate/timing.js +146 -0
- package/src/animate/tracks.d.ts +18 -0
- package/src/animate/tracks.js +139 -0
- package/src/builtins.js +4 -0
- package/src/diagram.js +4 -3
- package/src/extract.js +6 -5
- package/src/fonts.d.ts +55 -0
- package/src/fonts.js +245 -53
- package/src/formats/cut.d.ts +10 -0
- package/src/formats/cut.js +77 -0
- package/src/formats/index.d.ts +6 -0
- package/src/formats/index.js +9 -0
- package/src/formats/presets.d.ts +41 -0
- package/src/formats/presets.js +89 -0
- package/src/formats/print.d.ts +25 -0
- package/src/formats/print.js +117 -0
- package/src/formats/zones.d.ts +10 -0
- package/src/formats/zones.js +64 -0
- package/src/geometry.js +5 -35
- package/src/grid.js +1 -1
- package/src/handmade.js +9 -7
- package/src/icons.js +42 -9
- package/src/index.d.ts +232 -55
- package/src/index.js +14 -6
- package/src/inter-data.js +27 -0
- package/src/json-recipe.js +201 -27
- package/src/kit/index.d.ts +20 -0
- package/src/kit/index.js +58 -0
- package/src/layer-options.js +43 -4
- package/src/layers/barcode.d.ts +19 -0
- package/src/layers/barcode.js +63 -0
- package/src/layers/code128.d.ts +4 -0
- package/src/layers/code128.js +28 -0
- package/src/layers/expr.d.ts +6 -0
- package/src/layers/expr.js +121 -0
- package/src/layers/geometry.d.ts +6 -0
- package/src/layers/geometry.js +238 -0
- package/src/layers/index.d.ts +18 -0
- package/src/layers/index.js +15 -0
- package/src/layers/perforation.d.ts +14 -0
- package/src/layers/perforation.js +47 -0
- package/src/layers/repeat.d.ts +29 -0
- package/src/layers/repeat.js +90 -0
- package/src/layers/shape.d.ts +46 -0
- package/src/layers/shape.js +115 -0
- package/src/layers/soft.d.ts +5 -0
- package/src/layers/soft.js +43 -0
- package/src/layers/svg.d.ts +23 -0
- package/src/layers/svg.js +108 -0
- package/src/layers/table.d.ts +25 -0
- package/src/layers/table.js +80 -0
- package/src/layers/tear.d.ts +21 -0
- package/src/layers/tear.js +74 -0
- package/src/layers/texture.d.ts +17 -0
- package/src/layers/texture.js +106 -0
- package/src/layers/util.d.ts +8 -0
- package/src/layers/util.js +61 -0
- package/src/layers.js +129 -61
- package/src/lint/image-size.d.ts +4 -0
- package/src/lint/image-size.js +34 -0
- package/src/lint/index.d.ts +16 -0
- package/src/lint/index.js +127 -0
- package/src/lint/rules.d.ts +5 -0
- package/src/lint/rules.js +19 -0
- package/src/node.d.ts +2 -0
- package/src/node.js +20 -0
- package/src/paint/index.d.ts +49 -0
- package/src/paint/index.js +66 -0
- package/src/paint/presets.d.ts +10 -0
- package/src/paint/presets.js +47 -0
- package/src/paint/tile.d.ts +7 -0
- package/src/paint/tile.js +55 -0
- package/src/palette.js +1 -1
- package/src/platform/files.d.ts +6 -0
- package/src/platform/files.js +41 -0
- package/src/platform/harfbuzz.d.ts +9 -0
- package/src/platform/harfbuzz.js +80 -0
- package/src/platform/index.d.ts +8 -0
- package/src/platform/index.js +15 -0
- package/src/platform/load.d.ts +6 -0
- package/src/platform/load.js +71 -0
- package/src/platform/no-harfbuzz.d.ts +2 -0
- package/src/platform/no-harfbuzz.js +11 -0
- package/src/platform/settings.d.ts +28 -0
- package/src/platform/settings.js +51 -0
- package/src/print.js +16 -13
- package/src/recipes.js +5 -4
- package/src/render/backdrop.d.ts +6 -0
- package/src/render/backdrop.js +55 -0
- package/src/render/context.d.ts +82 -0
- package/src/render/grain.d.ts +7 -0
- package/src/render/grain.js +113 -0
- package/src/render/group.d.ts +23 -0
- package/src/render/group.js +67 -0
- package/src/render/key.d.ts +5 -0
- package/src/render/key.js +90 -0
- package/src/render/report.d.ts +5 -0
- package/src/render/report.js +19 -0
- package/src/render/transform.d.ts +36 -0
- package/src/render/transform.js +139 -0
- package/src/render/use.d.ts +27 -0
- package/src/render/use.js +73 -0
- package/src/render/wrap.d.ts +14 -0
- package/src/render/wrap.js +144 -0
- package/src/render.js +343 -215
- package/src/text.d.ts +29 -0
- package/src/text.js +23 -16
- package/src/type/auto-color.d.ts +9 -0
- package/src/type/auto-color.js +44 -0
- package/src/type/fallback.d.ts +11 -0
- package/src/type/fallback.js +92 -0
- package/src/type/glyphs.d.ts +24 -0
- package/src/type/glyphs.js +87 -0
- package/src/type/index.d.ts +5 -0
- package/src/type/index.js +10 -0
- package/src/type/kern.d.ts +4 -0
- package/src/type/kern.js +144 -0
- package/src/type/layout-ref.d.ts +10 -0
- package/src/type/layout-ref.js +74 -0
- package/src/type/line.d.ts +11 -0
- package/src/type/line.js +105 -0
- package/src/type/live.d.ts +6 -0
- package/src/type/live.js +39 -0
- package/src/type/name.d.ts +4 -0
- package/src/type/name.js +32 -0
- package/src/type/path.d.ts +18 -0
- package/src/type/path.js +89 -0
- package/src/type/pixel.d.ts +7 -0
- package/src/type/pixel.js +85 -0
- package/src/type/sfnt.d.ts +20 -0
- package/src/type/sfnt.js +258 -0
- package/src/type/spans.d.ts +33 -0
- package/src/type/spans.js +138 -0
- package/src/type/symbols.d.ts +7 -0
- package/src/type/symbols.js +89 -0
- package/src/type/typeset.d.ts +10 -0
- package/src/type/typeset.js +363 -0
- package/src/type/woff2.d.ts +6 -0
- package/src/type/woff2.js +301 -0
- package/src/version.js +4 -0
- package/src/color.js +0 -246
- package/src/png.js +0 -77
- package/src/rng.js +0 -95
- package/src/svg.js +0 -69
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../../schema/recipe.schema.json",
|
|
3
|
+
"name": "split-ghost",
|
|
4
|
+
"description": "Series (v2): one photo, seen two ways. The photo fills the cover as a duotone in the accent (deep to pale), and a large circle window shows the same photo in its true colour, in register, like a lens held over it, ringed in paper; the catalogue number runs up the left edge in a light weight, in paper; a paper band at the foot carries the artist and title on the left and the mark and the label's name on the right. The photo is defined once and drawn twice (defs/use). Slots: {photo}, {artist}, {title}, {catalog}, {label}, {mark}, the palette (bg = paper, accent = the duotone and the mark, text = type). Fonts: Manrope. {lensX}/{lensY} place the window over the subject.",
|
|
5
|
+
"requires": [
|
|
6
|
+
"photo",
|
|
7
|
+
"mark"
|
|
8
|
+
],
|
|
9
|
+
"params": {
|
|
10
|
+
"artist": "Artist",
|
|
11
|
+
"catalog": "",
|
|
12
|
+
"small": 30,
|
|
13
|
+
"lensX": 600,
|
|
14
|
+
"lensY": 400
|
|
15
|
+
},
|
|
16
|
+
"vars": {
|
|
17
|
+
"light": {
|
|
18
|
+
"mix": [
|
|
19
|
+
"@accent",
|
|
20
|
+
"@bg",
|
|
21
|
+
0.78
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"deep": {
|
|
25
|
+
"mix": [
|
|
26
|
+
"@accent",
|
|
27
|
+
"#000000",
|
|
28
|
+
0.5
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"layers": [
|
|
33
|
+
{
|
|
34
|
+
"id": "paper",
|
|
35
|
+
"type": "solid",
|
|
36
|
+
"color": "@bg"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "cover",
|
|
40
|
+
"type": "group",
|
|
41
|
+
"viewBox": [
|
|
42
|
+
0,
|
|
43
|
+
0,
|
|
44
|
+
1000,
|
|
45
|
+
1000
|
|
46
|
+
],
|
|
47
|
+
"fit": "cover",
|
|
48
|
+
"layers": [
|
|
49
|
+
{
|
|
50
|
+
"id": "shots",
|
|
51
|
+
"type": "defs",
|
|
52
|
+
"layers": [
|
|
53
|
+
{
|
|
54
|
+
"id": "shot",
|
|
55
|
+
"type": "image",
|
|
56
|
+
"src": "{photo}",
|
|
57
|
+
"x": 0,
|
|
58
|
+
"y": 0,
|
|
59
|
+
"width": 1000,
|
|
60
|
+
"height": 1000,
|
|
61
|
+
"fit": "cover",
|
|
62
|
+
"focus": "attention"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "ghost",
|
|
68
|
+
"type": "group",
|
|
69
|
+
"effects": [
|
|
70
|
+
{
|
|
71
|
+
"kind": "duotone",
|
|
72
|
+
"colors": [
|
|
73
|
+
"$deep",
|
|
74
|
+
"$light"
|
|
75
|
+
],
|
|
76
|
+
"contrast": 1.1
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"layers": [
|
|
80
|
+
{
|
|
81
|
+
"id": "ghostUse",
|
|
82
|
+
"type": "use",
|
|
83
|
+
"ref": "shot"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "lens",
|
|
89
|
+
"type": "group",
|
|
90
|
+
"clip": [
|
|
91
|
+
{
|
|
92
|
+
"id": "lensShape",
|
|
93
|
+
"type": "shape",
|
|
94
|
+
"kind": "circle",
|
|
95
|
+
"cx": "{lensX}",
|
|
96
|
+
"cy": "{lensY}",
|
|
97
|
+
"r": 290,
|
|
98
|
+
"fill": "#000000"
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"layers": [
|
|
102
|
+
{
|
|
103
|
+
"id": "lensUse",
|
|
104
|
+
"type": "use",
|
|
105
|
+
"ref": "shot"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "lensRing",
|
|
111
|
+
"type": "shape",
|
|
112
|
+
"kind": "circle",
|
|
113
|
+
"cx": "{lensX}",
|
|
114
|
+
"cy": "{lensY}",
|
|
115
|
+
"r": 290,
|
|
116
|
+
"fill": "none",
|
|
117
|
+
"stroke": "@bg",
|
|
118
|
+
"strokeWidth": 7
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "band",
|
|
122
|
+
"type": "shape",
|
|
123
|
+
"kind": "rect",
|
|
124
|
+
"x": 0,
|
|
125
|
+
"y": 852,
|
|
126
|
+
"width": 1000,
|
|
127
|
+
"height": 148,
|
|
128
|
+
"fill": "@bg"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "number",
|
|
132
|
+
"type": "text",
|
|
133
|
+
"when": "catalog",
|
|
134
|
+
"content": "{catalog}",
|
|
135
|
+
"font": "Manrope",
|
|
136
|
+
"weight": 300,
|
|
137
|
+
"size": 190,
|
|
138
|
+
"letterSpacing": -0.03,
|
|
139
|
+
"x": -800,
|
|
140
|
+
"y": 196,
|
|
141
|
+
"maxWidth": 700,
|
|
142
|
+
"fit": "shrink",
|
|
143
|
+
"maxLines": 1,
|
|
144
|
+
"color": "@bg",
|
|
145
|
+
"transform": {
|
|
146
|
+
"rotate": -90,
|
|
147
|
+
"origin": [
|
|
148
|
+
0,
|
|
149
|
+
0
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "tick",
|
|
155
|
+
"type": "shape",
|
|
156
|
+
"kind": "line",
|
|
157
|
+
"x1": 58,
|
|
158
|
+
"y1": 40,
|
|
159
|
+
"x2": 58,
|
|
160
|
+
"y2": 100,
|
|
161
|
+
"stroke": "@bg",
|
|
162
|
+
"strokeWidth": 2
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "artist",
|
|
166
|
+
"type": "text",
|
|
167
|
+
"content": "{artist}",
|
|
168
|
+
"font": "Manrope",
|
|
169
|
+
"weight": 700,
|
|
170
|
+
"size": "{small}",
|
|
171
|
+
"letterSpacing": -0.01,
|
|
172
|
+
"x": 56,
|
|
173
|
+
"y": 910,
|
|
174
|
+
"maxWidth": 560,
|
|
175
|
+
"maxLines": 1,
|
|
176
|
+
"fit": "shrink",
|
|
177
|
+
"color": "@text"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"id": "title",
|
|
181
|
+
"type": "text",
|
|
182
|
+
"content": "{title}",
|
|
183
|
+
"font": "Manrope",
|
|
184
|
+
"weight": 400,
|
|
185
|
+
"size": {
|
|
186
|
+
"mul": [
|
|
187
|
+
"{small}",
|
|
188
|
+
0.8
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
"x": 56,
|
|
192
|
+
"y": 950,
|
|
193
|
+
"maxWidth": 560,
|
|
194
|
+
"maxLines": 1,
|
|
195
|
+
"fit": "shrink",
|
|
196
|
+
"color": "@text"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"id": "markIcon",
|
|
200
|
+
"type": "icon",
|
|
201
|
+
"markup": "{mark}",
|
|
202
|
+
"x": 904,
|
|
203
|
+
"y": 884,
|
|
204
|
+
"size": 40,
|
|
205
|
+
"color": "@accent"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "labelName",
|
|
209
|
+
"type": "text",
|
|
210
|
+
"content": {
|
|
211
|
+
"upper": "{label}"
|
|
212
|
+
},
|
|
213
|
+
"font": "Manrope",
|
|
214
|
+
"weight": 700,
|
|
215
|
+
"size": 14,
|
|
216
|
+
"letterSpacing": 0.24,
|
|
217
|
+
"x": 880,
|
|
218
|
+
"y": 912,
|
|
219
|
+
"align": "right",
|
|
220
|
+
"color": "@text"
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"id": "grain",
|
|
226
|
+
"type": "grain",
|
|
227
|
+
"amount": 0.035
|
|
228
|
+
}
|
|
229
|
+
]
|
|
230
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../../schema/recipe.schema.json",
|
|
3
|
+
"name": "zoom",
|
|
4
|
+
"description": "Series (v2): a zoom tunnel. The photo is zoom-blurred with covers' zoom effect toward a point right of centre; the catalogue number is huge in a hairline outline, cropped off the right edge, with an extrusion stepping back into the blur; the label, the artist and the title sit in a small block top-left under a short rule. Slots: {photo}, {catalog}, {label}, {artist}, {title}, the palette (bg = the vignette, accent = the extrusion, text = type). Params: zoom (0\u20130.95). Fonts: Unbounded, Geist.",
|
|
5
|
+
"requires": [
|
|
6
|
+
"photo"
|
|
7
|
+
],
|
|
8
|
+
"params": {
|
|
9
|
+
"artist": "Artist",
|
|
10
|
+
"catalog": "",
|
|
11
|
+
"small": 28,
|
|
12
|
+
"zoom": 0.5
|
|
13
|
+
},
|
|
14
|
+
"layers": [
|
|
15
|
+
{
|
|
16
|
+
"id": "base",
|
|
17
|
+
"type": "solid",
|
|
18
|
+
"color": "@bg"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "cover",
|
|
22
|
+
"type": "group",
|
|
23
|
+
"viewBox": [
|
|
24
|
+
0,
|
|
25
|
+
0,
|
|
26
|
+
1000,
|
|
27
|
+
1000
|
|
28
|
+
],
|
|
29
|
+
"fit": "cover",
|
|
30
|
+
"layers": [
|
|
31
|
+
{
|
|
32
|
+
"id": "zoomed",
|
|
33
|
+
"type": "image",
|
|
34
|
+
"src": "{photo}",
|
|
35
|
+
"x": 0,
|
|
36
|
+
"y": 0,
|
|
37
|
+
"width": 1000,
|
|
38
|
+
"height": 1000,
|
|
39
|
+
"fit": "cover",
|
|
40
|
+
"effects": [
|
|
41
|
+
{
|
|
42
|
+
"kind": "zoom",
|
|
43
|
+
"amount": "{zoom}",
|
|
44
|
+
"center": [
|
|
45
|
+
0.68,
|
|
46
|
+
0.54
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"kind": "saturate",
|
|
51
|
+
"amount": 1.2
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"id": "vignette",
|
|
57
|
+
"type": "shape",
|
|
58
|
+
"kind": "rect",
|
|
59
|
+
"x": 0,
|
|
60
|
+
"y": 0,
|
|
61
|
+
"width": 1000,
|
|
62
|
+
"height": 1000,
|
|
63
|
+
"fill": {
|
|
64
|
+
"type": "radial",
|
|
65
|
+
"colors": [
|
|
66
|
+
"@bg",
|
|
67
|
+
"@bg"
|
|
68
|
+
],
|
|
69
|
+
"opacities": [
|
|
70
|
+
0,
|
|
71
|
+
0.75
|
|
72
|
+
],
|
|
73
|
+
"stops": [
|
|
74
|
+
0.35,
|
|
75
|
+
1
|
|
76
|
+
],
|
|
77
|
+
"cx": 0.68,
|
|
78
|
+
"cy": 0.54,
|
|
79
|
+
"r": 0.75
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "number",
|
|
84
|
+
"type": "text",
|
|
85
|
+
"when": "catalog",
|
|
86
|
+
"content": "{catalog}",
|
|
87
|
+
"font": "Unbounded",
|
|
88
|
+
"weight": 700,
|
|
89
|
+
"size": 560,
|
|
90
|
+
"letterSpacing": -0.04,
|
|
91
|
+
"x": 1070,
|
|
92
|
+
"y": 760,
|
|
93
|
+
"align": "right",
|
|
94
|
+
"maxWidth": 1000,
|
|
95
|
+
"fit": "shrink",
|
|
96
|
+
"fill": "none",
|
|
97
|
+
"stroke": "@text",
|
|
98
|
+
"strokeWidth": 2.2,
|
|
99
|
+
"extrude": {
|
|
100
|
+
"depth": 40,
|
|
101
|
+
"angle": 200,
|
|
102
|
+
"color": "@accent",
|
|
103
|
+
"to": "@bg",
|
|
104
|
+
"steps": 12
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "label",
|
|
109
|
+
"type": "text",
|
|
110
|
+
"content": {
|
|
111
|
+
"upper": "{label}"
|
|
112
|
+
},
|
|
113
|
+
"font": "Unbounded",
|
|
114
|
+
"weight": 600,
|
|
115
|
+
"size": 20,
|
|
116
|
+
"letterSpacing": 0.2,
|
|
117
|
+
"x": 56,
|
|
118
|
+
"y": 78,
|
|
119
|
+
"color": "@text"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "rule",
|
|
123
|
+
"type": "shape",
|
|
124
|
+
"kind": "line",
|
|
125
|
+
"x1": 58,
|
|
126
|
+
"y1": 104,
|
|
127
|
+
"x2": 330,
|
|
128
|
+
"y2": 104,
|
|
129
|
+
"stroke": "@text",
|
|
130
|
+
"strokeWidth": 1.3
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "artist",
|
|
134
|
+
"type": "text",
|
|
135
|
+
"content": "{artist}",
|
|
136
|
+
"font": "Geist",
|
|
137
|
+
"weight": 600,
|
|
138
|
+
"size": "{small}",
|
|
139
|
+
"x": 56,
|
|
140
|
+
"y": 150,
|
|
141
|
+
"maxWidth": 380,
|
|
142
|
+
"fit": "shrink",
|
|
143
|
+
"maxLines": 1,
|
|
144
|
+
"color": "@text"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "title",
|
|
148
|
+
"type": "text",
|
|
149
|
+
"content": "{title}",
|
|
150
|
+
"font": "Geist",
|
|
151
|
+
"weight": 400,
|
|
152
|
+
"size": "{small}",
|
|
153
|
+
"x": 56,
|
|
154
|
+
"y": 186,
|
|
155
|
+
"maxWidth": 380,
|
|
156
|
+
"fit": "shrink",
|
|
157
|
+
"maxLines": 1,
|
|
158
|
+
"color": "@text"
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "grain",
|
|
164
|
+
"type": "grain",
|
|
165
|
+
"amount": 0.07
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schema/recipe.schema.json",
|
|
3
|
+
"name": "small-print",
|
|
4
|
+
"description": "Photo, full bleed, nothing else but the artist and title set small in white in the bottom-left corner, over a faint scrim and a soft shadow so they read on any photo. Slots: {name} (artist), {title} (release), {photo}, `focus` (the crop: center, left, right, attention). Fonts: Inter Tight (register them as TTF/WOFF; WOFF2 can't be outlined).",
|
|
5
|
+
"requires": [
|
|
6
|
+
"photo"
|
|
7
|
+
],
|
|
8
|
+
"params": {
|
|
9
|
+
"focus": "center",
|
|
10
|
+
"ink": "#ffffff"
|
|
11
|
+
},
|
|
12
|
+
"layers": [
|
|
13
|
+
{
|
|
14
|
+
"id": "photo",
|
|
15
|
+
"type": "image",
|
|
16
|
+
"src": "{photo}",
|
|
17
|
+
"fit": "cover",
|
|
18
|
+
"focus": "{focus}"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "scrim",
|
|
22
|
+
"type": "linear",
|
|
23
|
+
"angle": 180,
|
|
24
|
+
"colors": [
|
|
25
|
+
"#000000",
|
|
26
|
+
"#000000"
|
|
27
|
+
],
|
|
28
|
+
"opacities": [
|
|
29
|
+
0,
|
|
30
|
+
0.38
|
|
31
|
+
],
|
|
32
|
+
"opacity": 1,
|
|
33
|
+
"mask": [
|
|
34
|
+
{
|
|
35
|
+
"type": "linear",
|
|
36
|
+
"angle": 180,
|
|
37
|
+
"colors": [
|
|
38
|
+
"#000000",
|
|
39
|
+
"#000000",
|
|
40
|
+
"#ffffff"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "cover",
|
|
47
|
+
"type": "group",
|
|
48
|
+
"viewBox": [
|
|
49
|
+
0,
|
|
50
|
+
0,
|
|
51
|
+
1000,
|
|
52
|
+
1000
|
|
53
|
+
],
|
|
54
|
+
"fit": "cover",
|
|
55
|
+
"layers": [
|
|
56
|
+
{
|
|
57
|
+
"id": "name",
|
|
58
|
+
"type": "text",
|
|
59
|
+
"content": "{name}",
|
|
60
|
+
"font": "Inter Tight",
|
|
61
|
+
"weight": 600,
|
|
62
|
+
"size": 86,
|
|
63
|
+
"letterSpacing": -0.025,
|
|
64
|
+
"x": 48,
|
|
65
|
+
"y": 862,
|
|
66
|
+
"maxWidth": 904,
|
|
67
|
+
"maxLines": 1,
|
|
68
|
+
"fit": "shrink",
|
|
69
|
+
"color": "{ink}",
|
|
70
|
+
"effects": [
|
|
71
|
+
{
|
|
72
|
+
"kind": "shadow",
|
|
73
|
+
"x": 0,
|
|
74
|
+
"y": 2,
|
|
75
|
+
"blur": 10,
|
|
76
|
+
"color": "#000000",
|
|
77
|
+
"opacity": 0.35
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "title",
|
|
83
|
+
"type": "text",
|
|
84
|
+
"content": "{title}",
|
|
85
|
+
"font": "Inter Tight",
|
|
86
|
+
"weight": 400,
|
|
87
|
+
"size": 86,
|
|
88
|
+
"letterSpacing": -0.025,
|
|
89
|
+
"x": 48,
|
|
90
|
+
"y": 952,
|
|
91
|
+
"maxWidth": 904,
|
|
92
|
+
"maxLines": 1,
|
|
93
|
+
"fit": "shrink",
|
|
94
|
+
"color": "{ink}",
|
|
95
|
+
"effects": [
|
|
96
|
+
{
|
|
97
|
+
"kind": "shadow",
|
|
98
|
+
"x": 0,
|
|
99
|
+
"y": 2,
|
|
100
|
+
"blur": 10,
|
|
101
|
+
"color": "#000000",
|
|
102
|
+
"opacity": 0.35
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "grain",
|
|
110
|
+
"type": "grain",
|
|
111
|
+
"amount": 0.06
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schema/recipe.schema.json",
|
|
3
|
+
"name": "stack",
|
|
4
|
+
"description": "Brutalist type: the artist three times, condensed, stretched tall and stacked edge to edge (the middle one in outline), and the title in a solid bar across the foot. Slots: {name} (artist), {title} (release), the palette (bg, text, accent). Fonts: Big Shoulders Display, Space Mono Bold (register them as TTF/WOFF; WOFF2 can't be outlined).",
|
|
5
|
+
"vars": {
|
|
6
|
+
"est": {
|
|
7
|
+
"div": [
|
|
8
|
+
940,
|
|
9
|
+
{
|
|
10
|
+
"mul": [
|
|
11
|
+
{
|
|
12
|
+
"length": "{name}"
|
|
13
|
+
},
|
|
14
|
+
0.43
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"sy": {
|
|
20
|
+
"min": [
|
|
21
|
+
5,
|
|
22
|
+
{
|
|
23
|
+
"max": [
|
|
24
|
+
1,
|
|
25
|
+
{
|
|
26
|
+
"div": [
|
|
27
|
+
226,
|
|
28
|
+
{
|
|
29
|
+
"mul": [
|
|
30
|
+
"$est",
|
|
31
|
+
0.8
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"layers": [
|
|
42
|
+
{
|
|
43
|
+
"id": "page",
|
|
44
|
+
"type": "solid",
|
|
45
|
+
"color": "@bg"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "cover",
|
|
49
|
+
"type": "group",
|
|
50
|
+
"viewBox": [
|
|
51
|
+
0,
|
|
52
|
+
0,
|
|
53
|
+
1000,
|
|
54
|
+
1000
|
|
55
|
+
],
|
|
56
|
+
"fit": "cover",
|
|
57
|
+
"layers": [
|
|
58
|
+
{
|
|
59
|
+
"id": "one",
|
|
60
|
+
"type": "text",
|
|
61
|
+
"content": {
|
|
62
|
+
"upper": "{name}"
|
|
63
|
+
},
|
|
64
|
+
"font": "Big Shoulders Display",
|
|
65
|
+
"weight": 900,
|
|
66
|
+
"size": "$est",
|
|
67
|
+
"letterSpacing": 0.035,
|
|
68
|
+
"x": 30,
|
|
69
|
+
"y": 262,
|
|
70
|
+
"width": 940,
|
|
71
|
+
"fit": "width",
|
|
72
|
+
"stretch": [
|
|
73
|
+
1,
|
|
74
|
+
"$sy"
|
|
75
|
+
],
|
|
76
|
+
"color": "@text"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "two",
|
|
80
|
+
"type": "text",
|
|
81
|
+
"content": {
|
|
82
|
+
"upper": "{name}"
|
|
83
|
+
},
|
|
84
|
+
"font": "Big Shoulders Display",
|
|
85
|
+
"weight": 900,
|
|
86
|
+
"size": "$est",
|
|
87
|
+
"letterSpacing": 0.035,
|
|
88
|
+
"x": 30,
|
|
89
|
+
"y": 512,
|
|
90
|
+
"width": 940,
|
|
91
|
+
"fit": "width",
|
|
92
|
+
"stretch": [
|
|
93
|
+
1,
|
|
94
|
+
"$sy"
|
|
95
|
+
],
|
|
96
|
+
"fill": "none",
|
|
97
|
+
"stroke": "@text",
|
|
98
|
+
"strokeWidth": 3
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "three",
|
|
102
|
+
"type": "text",
|
|
103
|
+
"content": {
|
|
104
|
+
"upper": "{name}"
|
|
105
|
+
},
|
|
106
|
+
"font": "Big Shoulders Display",
|
|
107
|
+
"weight": 900,
|
|
108
|
+
"size": "$est",
|
|
109
|
+
"letterSpacing": 0.035,
|
|
110
|
+
"x": 30,
|
|
111
|
+
"y": 762,
|
|
112
|
+
"width": 940,
|
|
113
|
+
"fit": "width",
|
|
114
|
+
"stretch": [
|
|
115
|
+
1,
|
|
116
|
+
"$sy"
|
|
117
|
+
],
|
|
118
|
+
"color": "@accent"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "bar",
|
|
122
|
+
"type": "shape",
|
|
123
|
+
"kind": "rect",
|
|
124
|
+
"x": 0,
|
|
125
|
+
"y": 800,
|
|
126
|
+
"width": 1000,
|
|
127
|
+
"height": 200,
|
|
128
|
+
"fill": "@text"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "title",
|
|
132
|
+
"type": "text",
|
|
133
|
+
"content": {
|
|
134
|
+
"upper": "{title}"
|
|
135
|
+
},
|
|
136
|
+
"font": "Space Mono",
|
|
137
|
+
"weight": 700,
|
|
138
|
+
"size": 92,
|
|
139
|
+
"letterSpacing": -0.04,
|
|
140
|
+
"x": 30,
|
|
141
|
+
"y": 932,
|
|
142
|
+
"maxWidth": 940,
|
|
143
|
+
"maxLines": 1,
|
|
144
|
+
"fit": "shrink",
|
|
145
|
+
"color": "@bg"
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "grain",
|
|
151
|
+
"type": "grain",
|
|
152
|
+
"amount": 0.06,
|
|
153
|
+
"blend": "multiply"
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
}
|