@popcraft/kit 0.23.0 → 0.23.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/dist/chunks/{agent-BJBUTTSC.js → agent-4LLNDPKT.js} +1 -1
- package/dist/chunks/{builtin-CLB5OHKL.js → builtin-MPHCX2R5.js} +3 -3
- package/dist/chunks/{check-template-6XTDIBYY.js → check-template-SHZR37PA.js} +2 -2
- package/dist/chunks/{chunk-CTNYOI7K.js → chunk-2657F23X.js} +7 -7
- package/dist/chunks/{chunk-ELVQX6RI.js → chunk-3NGYOEXU.js} +1 -1
- package/dist/chunks/{chunk-RDAMU4OP.js → chunk-3ZAY3GT4.js} +36 -36
- package/dist/chunks/{chunk-SGMCUBDF.js → chunk-4QGD7QA4.js} +3 -1
- package/dist/chunks/{chunk-TKIMYBHW.js → chunk-6DCAGZ2E.js} +2 -2
- package/dist/chunks/{chunk-JWJCNSIJ.js → chunk-AOLURN4M.js} +4 -4
- package/dist/chunks/{chunk-DOYHR7LZ.js → chunk-B7WKCDVC.js} +2 -2
- package/dist/chunks/{chunk-45GKMBBU.js → chunk-BRFDRFQS.js} +2 -2
- package/dist/chunks/{chunk-U6FFZ5W2.js → chunk-CTLYNR44.js} +1 -1
- package/dist/chunks/{chunk-V55HSSYV.js → chunk-GCCKB3Z6.js} +14 -14
- package/dist/chunks/{chunk-M57KDGIH.js → chunk-GLPSWLOP.js} +1 -1
- package/dist/chunks/{chunk-SJHSD7GG.js → chunk-IMRJGGQP.js} +5 -5
- package/dist/chunks/{chunk-4JCGRWOD.js → chunk-IUS7V3NP.js} +1 -1
- package/dist/chunks/{chunk-VWNEKTT3.js → chunk-MRDE4OOE.js} +11 -11
- package/dist/chunks/{chunk-KHK5XLEO.js → chunk-NPRSEJCQ.js} +5 -5
- package/dist/chunks/{chunk-I323DRE7.js → chunk-OCOP2CEE.js} +5 -5
- package/dist/chunks/{chunk-NCALTIBW.js → chunk-ONACJFBL.js} +1 -1
- package/dist/chunks/{chunk-TBGBDPYT.js → chunk-OZV6WRBA.js} +1 -1
- package/dist/chunks/{chunk-PXATZ4UZ.js → chunk-QO6RCB54.js} +1 -1
- package/dist/chunks/{chunk-7XSGWFUU.js → chunk-R2OWUZAJ.js} +2 -2
- package/dist/chunks/{chunk-WI3UXGOB.js → chunk-RW7YO2KM.js} +4 -4
- package/dist/chunks/{chunk-LHCHUICU.js → chunk-SGCSBWBQ.js} +2 -2
- package/dist/chunks/{chunk-AZU5NJX4.js → chunk-SNAYCSJQ.js} +1 -1
- package/dist/chunks/{chunk-2HAVVRLV.js → chunk-SUEY4TWT.js} +1 -1
- package/dist/chunks/{chunk-KLFWJGV2.js → chunk-X4AMYXH5.js} +5 -5
- package/dist/chunks/{chunk-Y5J5V5U3.js → chunk-X5CV5NH3.js} +3 -3
- package/dist/chunks/{chunk-PPBHH7GH.js → chunk-Y2BZGNEC.js} +3 -3
- package/dist/chunks/{client-W74T4QJ2.js → client-KWUTPSTP.js} +2 -2
- package/dist/chunks/{client-7IOICWAQ.js → client-MBWEDONV.js} +1 -1
- package/dist/chunks/{client-6XBHKOQI.js → client-W6EWOEIJ.js} +2 -2
- package/dist/chunks/{client-actions-F5KAYWC6.js → client-actions-YXQGAUP6.js} +4 -4
- package/dist/chunks/{dangerous-SNCBW4IE.js → dangerous-O276OX7E.js} +3 -3
- package/dist/chunks/{editor-seams-GJIWTUEC.js → editor-seams-KWSXIJ6M.js} +9 -9
- package/dist/chunks/{editor-store-RJRX5NDT.js → editor-store-FWNCBZKH.js} +1 -1
- package/dist/chunks/{export-watermark-BWN23IRO.js → export-watermark-TNGKIW4U.js} +5 -5
- package/dist/chunks/{eyedropper-AL5LU2LC.js → eyedropper-WJ6CVJ2X.js} +1 -1
- package/dist/chunks/{generate-media-GQ2LGW2K.js → generate-media-3GLD745C.js} +2 -2
- package/dist/chunks/{host-QNEIW6XI.js → host-JR2OTWH6.js} +6 -6
- package/dist/chunks/{integrations-2MDKW4EY.js → integrations-PCEXPAMC.js} +1 -1
- package/dist/chunks/{libraries-HU55RMSB.js → libraries-ED7QA73Y.js} +5 -5
- package/dist/chunks/{live-FYSVG45I.js → live-SGMH3365.js} +1 -1
- package/dist/chunks/{media-tool-HX2AQWQN.js → media-tool-DL2Q5FVV.js} +1 -1
- package/dist/chunks/{new-file-7W7HWEBN.js → new-file-NKCOHO3I.js} +3 -3
- package/dist/chunks/{plugin-5XHYBTFQ.js → plugin-LF6PU2TS.js} +2 -2
- package/dist/chunks/{plugin-import-XVCJJZWW.js → plugin-import-JLZKU45F.js} +13 -13
- package/dist/chunks/{presence-KAKB2N46.js → presence-H2IHOP5C.js} +2 -2
- package/dist/chunks/{project-D3I2HSHS.js → project-GV6N7IZG.js} +1 -1
- package/dist/chunks/{publish-site-YN2YTC7C.js → publish-site-W4XW2UTB.js} +6 -6
- package/dist/chunks/{publish-store-GJYYCXKG.js → publish-store-CT5GERZC.js} +4 -4
- package/dist/chunks/{raster-actions-A4DJV5G2.js → raster-actions-UVOUSRCS.js} +1 -1
- package/dist/chunks/{runner-B6P6F7Y6.js → runner-YT2NM6N7.js} +16 -16
- package/dist/chunks/{store-TGA3GXXW.js → store-QMRWXCRN.js} +5 -5
- package/dist/chunks/{sync-BUK3N4AG.js → sync-6MJJNBNR.js} +5 -5
- package/dist/chunks/{tabs-K4HQLFPL.js → tabs-KCHJ6S2X.js} +8 -8
- package/dist/chunks/{team-U36WZSRZ.js → team-D7TA6MS4.js} +1 -1
- package/dist/chunks/{tools-FOMWBG4O.js → tools-ADDMIT53.js} +2 -2
- package/dist/chunks/{ui-commands-GEKGZ7LJ.js → ui-commands-GBWFC4GM.js} +11 -11
- package/dist/chunks/{versions-YD26QFKO.js → versions-V6QKHBEC.js} +5 -5
- package/dist/index.js +1 -1
- package/dist/templates/count.js +1 -1
- package/dist/templates/index.js +9 -9
- package/dist/templates/index.json +1 -1
- package/dist/templates/motion/landing-hero/index.js +4 -4
- package/dist/templates/motion/launch-trailer/document.js +9 -9
- package/dist/templates/motion/launch-trailer/index.js +4 -4
- package/dist/templates/motion/launch-trailer/scenes.js +3 -3
- package/dist/templates/motion/template-wall.js +2 -2
- package/dist/templates/print/studio-portfolio-booklet.js +1 -1
- package/dist/templates/themes/index.js +3 -3
- package/dist/templates/themes/studio.js +2 -2
- package/package.json +1 -1
- package/src/templates/print/studio-portfolio-booklet.ts +24 -19
|
@@ -6,16 +6,16 @@ const __filename = __popcraftPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
landing_hero_default
|
|
9
|
-
} from "../../../chunks/chunk-
|
|
9
|
+
} from "../../../chunks/chunk-BRFDRFQS.js";
|
|
10
10
|
import "../../../chunks/chunk-LG5OT27J.js";
|
|
11
11
|
import "../../../chunks/chunk-HTHZOIBZ.js";
|
|
12
|
-
import "../../../chunks/chunk-
|
|
13
|
-
import "../../../chunks/chunk-
|
|
12
|
+
import "../../../chunks/chunk-QO6RCB54.js";
|
|
13
|
+
import "../../../chunks/chunk-IUS7V3NP.js";
|
|
14
14
|
import "../../../chunks/chunk-ATOOIPCD.js";
|
|
15
15
|
import "../../../chunks/chunk-O64SZX6W.js";
|
|
16
16
|
import "../../../chunks/chunk-UN4I2K2R.js";
|
|
17
17
|
import "../../../chunks/chunk-3F2YOSTJ.js";
|
|
18
|
-
import "../../../chunks/chunk-
|
|
18
|
+
import "../../../chunks/chunk-3NGYOEXU.js";
|
|
19
19
|
import "../../../chunks/chunk-OKJCPQJ4.js";
|
|
20
20
|
import "../../../chunks/chunk-YKIY7TUZ.js";
|
|
21
21
|
import "../../../chunks/chunk-RVRHEAZO.js";
|
|
@@ -4,7 +4,7 @@ import { dirname as __popcraftDirname } from 'node:path';
|
|
|
4
4
|
const require = __popcraftRequire(import.meta.url);
|
|
5
5
|
const __filename = __popcraftPath(import.meta.url);
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
|
-
import "../../../chunks/chunk-
|
|
7
|
+
import "../../../chunks/chunk-OCOP2CEE.js";
|
|
8
8
|
import "../../../chunks/chunk-XXT35K3V.js";
|
|
9
9
|
import "../../../chunks/chunk-PI2UQW7F.js";
|
|
10
10
|
import "../../../chunks/chunk-SHL2T7M7.js";
|
|
@@ -55,7 +55,7 @@ import "../../../chunks/chunk-SNCMDPM5.js";
|
|
|
55
55
|
import "../../../chunks/chunk-ZJ5BIPYM.js";
|
|
56
56
|
import "../../../chunks/chunk-WRXPBPPI.js";
|
|
57
57
|
import "../../../chunks/chunk-FFZJ5Z5K.js";
|
|
58
|
-
import "../../../chunks/chunk-
|
|
58
|
+
import "../../../chunks/chunk-OZV6WRBA.js";
|
|
59
59
|
import "../../../chunks/chunk-JW7EKYYZ.js";
|
|
60
60
|
import "../../../chunks/chunk-PGECL4PV.js";
|
|
61
61
|
import "../../../chunks/chunk-ETFUAR5H.js";
|
|
@@ -75,7 +75,7 @@ import "../../../chunks/chunk-N7ED4KMC.js";
|
|
|
75
75
|
import "../../../chunks/chunk-CHNPI2JN.js";
|
|
76
76
|
import "../../../chunks/chunk-DCGTPNQV.js";
|
|
77
77
|
import "../../../chunks/chunk-UB6GXXVO.js";
|
|
78
|
-
import "../../../chunks/chunk-
|
|
78
|
+
import "../../../chunks/chunk-CTLYNR44.js";
|
|
79
79
|
import "../../../chunks/chunk-SNYK4EXS.js";
|
|
80
80
|
import "../../../chunks/chunk-T4W4BTNH.js";
|
|
81
81
|
import "../../../chunks/chunk-K5GRZATW.js";
|
|
@@ -304,7 +304,7 @@ import "../../../chunks/chunk-WSYUDEIR.js";
|
|
|
304
304
|
import "../../../chunks/chunk-QGP6HYDV.js";
|
|
305
305
|
import "../../../chunks/chunk-EAUXOBUJ.js";
|
|
306
306
|
import "../../../chunks/chunk-5KHV2ZK5.js";
|
|
307
|
-
import "../../../chunks/chunk-
|
|
307
|
+
import "../../../chunks/chunk-GCCKB3Z6.js";
|
|
308
308
|
import "../../../chunks/chunk-YCLJROGO.js";
|
|
309
309
|
import "../../../chunks/chunk-Y5X227LJ.js";
|
|
310
310
|
import "../../../chunks/chunk-AE3AIRLP.js";
|
|
@@ -534,14 +534,14 @@ import "../../../chunks/chunk-ZQ2GE6FK.js";
|
|
|
534
534
|
import "../../../chunks/chunk-FYRBITJT.js";
|
|
535
535
|
import "../../../chunks/chunk-OW3FMTY5.js";
|
|
536
536
|
import "../../../chunks/chunk-CMQDGGWL.js";
|
|
537
|
-
import "../../../chunks/chunk-
|
|
537
|
+
import "../../../chunks/chunk-BRFDRFQS.js";
|
|
538
538
|
import "../../../chunks/chunk-LG5OT27J.js";
|
|
539
539
|
import "../../../chunks/chunk-HTHZOIBZ.js";
|
|
540
540
|
import {
|
|
541
541
|
launch_trailer_default
|
|
542
|
-
} from "../../../chunks/chunk-
|
|
543
|
-
import "../../../chunks/chunk-
|
|
544
|
-
import "../../../chunks/chunk-
|
|
542
|
+
} from "../../../chunks/chunk-SNAYCSJQ.js";
|
|
543
|
+
import "../../../chunks/chunk-QO6RCB54.js";
|
|
544
|
+
import "../../../chunks/chunk-IUS7V3NP.js";
|
|
545
545
|
import "../../../chunks/chunk-ATOOIPCD.js";
|
|
546
546
|
import "../../../chunks/chunk-O64SZX6W.js";
|
|
547
547
|
import "../../../chunks/chunk-UN4I2K2R.js";
|
|
@@ -787,7 +787,7 @@ import "../../../chunks/chunk-7SZQNGXC.js";
|
|
|
787
787
|
import "../../../chunks/chunk-Y5TFPTPV.js";
|
|
788
788
|
import "../../../chunks/chunk-3TPWL2I4.js";
|
|
789
789
|
import "../../../chunks/chunk-W67GMG55.js";
|
|
790
|
-
import "../../../chunks/chunk-
|
|
790
|
+
import "../../../chunks/chunk-3NGYOEXU.js";
|
|
791
791
|
import "../../../chunks/chunk-OKJCPQJ4.js";
|
|
792
792
|
import "../../../chunks/chunk-YKIY7TUZ.js";
|
|
793
793
|
import "../../../chunks/chunk-G3SMPCBJ.js";
|
|
@@ -6,14 +6,14 @@ const __filename = __popcraftPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
launch_trailer_default
|
|
9
|
-
} from "../../../chunks/chunk-
|
|
10
|
-
import "../../../chunks/chunk-
|
|
11
|
-
import "../../../chunks/chunk-
|
|
9
|
+
} from "../../../chunks/chunk-SNAYCSJQ.js";
|
|
10
|
+
import "../../../chunks/chunk-QO6RCB54.js";
|
|
11
|
+
import "../../../chunks/chunk-IUS7V3NP.js";
|
|
12
12
|
import "../../../chunks/chunk-ATOOIPCD.js";
|
|
13
13
|
import "../../../chunks/chunk-O64SZX6W.js";
|
|
14
14
|
import "../../../chunks/chunk-UN4I2K2R.js";
|
|
15
15
|
import "../../../chunks/chunk-3F2YOSTJ.js";
|
|
16
|
-
import "../../../chunks/chunk-
|
|
16
|
+
import "../../../chunks/chunk-3NGYOEXU.js";
|
|
17
17
|
import "../../../chunks/chunk-OKJCPQJ4.js";
|
|
18
18
|
import "../../../chunks/chunk-YKIY7TUZ.js";
|
|
19
19
|
import "../../../chunks/chunk-RVRHEAZO.js";
|
|
@@ -19,12 +19,12 @@ import {
|
|
|
19
19
|
reach,
|
|
20
20
|
shadow,
|
|
21
21
|
travel
|
|
22
|
-
} from "../../../chunks/chunk-
|
|
23
|
-
import "../../../chunks/chunk-
|
|
22
|
+
} from "../../../chunks/chunk-QO6RCB54.js";
|
|
23
|
+
import "../../../chunks/chunk-IUS7V3NP.js";
|
|
24
24
|
import "../../../chunks/chunk-ATOOIPCD.js";
|
|
25
25
|
import "../../../chunks/chunk-O64SZX6W.js";
|
|
26
26
|
import "../../../chunks/chunk-3F2YOSTJ.js";
|
|
27
|
-
import "../../../chunks/chunk-
|
|
27
|
+
import "../../../chunks/chunk-3NGYOEXU.js";
|
|
28
28
|
import "../../../chunks/chunk-OKJCPQJ4.js";
|
|
29
29
|
import "../../../chunks/chunk-YKIY7TUZ.js";
|
|
30
30
|
import "../../../chunks/chunk-RVRHEAZO.js";
|
|
@@ -9,9 +9,9 @@ import {
|
|
|
9
9
|
PICTURES,
|
|
10
10
|
buildTemplateWall,
|
|
11
11
|
template_wall_default
|
|
12
|
-
} from "../../chunks/chunk-
|
|
12
|
+
} from "../../chunks/chunk-IUS7V3NP.js";
|
|
13
13
|
import "../../chunks/chunk-ATOOIPCD.js";
|
|
14
|
-
import "../../chunks/chunk-
|
|
14
|
+
import "../../chunks/chunk-3NGYOEXU.js";
|
|
15
15
|
import "../../chunks/chunk-OKJCPQJ4.js";
|
|
16
16
|
import "../../chunks/chunk-YKIY7TUZ.js";
|
|
17
17
|
import "../../chunks/chunk-RVRHEAZO.js";
|
|
@@ -6,7 +6,7 @@ const __filename = __popcraftPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
studio_portfolio_booklet_default
|
|
9
|
-
} from "../../chunks/chunk-
|
|
9
|
+
} from "../../chunks/chunk-GCCKB3Z6.js";
|
|
10
10
|
import "../../chunks/chunk-YCLJROGO.js";
|
|
11
11
|
import "../../chunks/chunk-T2NNHYZI.js";
|
|
12
12
|
import "../../chunks/chunk-Z2X2HGTO.js";
|
|
@@ -6,7 +6,7 @@ const __filename = __popcraftPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
THEME_PACKS
|
|
9
|
-
} from "../../chunks/chunk-
|
|
9
|
+
} from "../../chunks/chunk-OZV6WRBA.js";
|
|
10
10
|
import "../../chunks/chunk-JW7EKYYZ.js";
|
|
11
11
|
import "../../chunks/chunk-PGECL4PV.js";
|
|
12
12
|
import "../../chunks/chunk-ETFUAR5H.js";
|
|
@@ -26,7 +26,7 @@ import "../../chunks/chunk-N7ED4KMC.js";
|
|
|
26
26
|
import "../../chunks/chunk-CHNPI2JN.js";
|
|
27
27
|
import "../../chunks/chunk-DCGTPNQV.js";
|
|
28
28
|
import "../../chunks/chunk-UB6GXXVO.js";
|
|
29
|
-
import "../../chunks/chunk-
|
|
29
|
+
import "../../chunks/chunk-CTLYNR44.js";
|
|
30
30
|
import "../../chunks/chunk-SNYK4EXS.js";
|
|
31
31
|
import "../../chunks/chunk-T4W4BTNH.js";
|
|
32
32
|
import "../../chunks/chunk-K5GRZATW.js";
|
|
@@ -201,7 +201,7 @@ import "../../chunks/chunk-WSYUDEIR.js";
|
|
|
201
201
|
import "../../chunks/chunk-QGP6HYDV.js";
|
|
202
202
|
import "../../chunks/chunk-EAUXOBUJ.js";
|
|
203
203
|
import "../../chunks/chunk-5KHV2ZK5.js";
|
|
204
|
-
import "../../chunks/chunk-
|
|
204
|
+
import "../../chunks/chunk-GCCKB3Z6.js";
|
|
205
205
|
import "../../chunks/chunk-YCLJROGO.js";
|
|
206
206
|
import "../../chunks/chunk-VXM7TRS4.js";
|
|
207
207
|
import "../../chunks/chunk-T7YYOTRX.js";
|
|
@@ -6,7 +6,7 @@ const __filename = __popcraftPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
studio_default
|
|
9
|
-
} from "../../chunks/chunk-
|
|
9
|
+
} from "../../chunks/chunk-CTLYNR44.js";
|
|
10
10
|
import "../../chunks/chunk-SNYK4EXS.js";
|
|
11
11
|
import "../../chunks/chunk-T4W4BTNH.js";
|
|
12
12
|
import "../../chunks/chunk-K5GRZATW.js";
|
|
@@ -15,7 +15,7 @@ import "../../chunks/chunk-ZVBJYM4K.js";
|
|
|
15
15
|
import "../../chunks/chunk-7KR6EV2B.js";
|
|
16
16
|
import "../../chunks/chunk-EAUXOBUJ.js";
|
|
17
17
|
import "../../chunks/chunk-5KHV2ZK5.js";
|
|
18
|
-
import "../../chunks/chunk-
|
|
18
|
+
import "../../chunks/chunk-GCCKB3Z6.js";
|
|
19
19
|
import "../../chunks/chunk-YCLJROGO.js";
|
|
20
20
|
import "../../chunks/chunk-T2NNHYZI.js";
|
|
21
21
|
import "../../chunks/chunk-V5QP26VI.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@popcraft/kit",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.1",
|
|
4
4
|
"description": "The PopCraft design kit: everything PopCraft's own templates are made with — the Kit, every helper, style system and theme kit, every official template source to read and remix, the build and every check the official templates pass — plus the design-script runner and .popcraft output.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://popcraft.app/docs/api/design-reference",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// A photographer's printed portfolio: the twelve-page A5 leave-behind left on an art buyer's desk after a meeting.
|
|
2
|
-
// A cover,
|
|
3
|
-
//
|
|
2
|
+
// A cover, four projects as spreads (a picture across the left page, the story and a second picture on the right),
|
|
3
|
+
// a page about her and who she works for facing the contact page, and a back cover. The cover stands alone on the
|
|
4
|
+
// right, so pages 2–3 are the first spread: each project starts on an even, left-hand page. Twelve pages, a multiple of four, so
|
|
4
5
|
// File › Export › PDF › "Booklet — folded and stapled" imposes it onto three sheets of A4 to fold and staple.
|
|
5
6
|
// Every picture that meets the trim runs on into the 3 mm bleed (the pages do not clip), and every word stays well
|
|
6
7
|
// inside it. The pictures are photographs made for these templates; each is an image layer to replace.
|
|
@@ -34,7 +35,7 @@ export default defineTemplate({
|
|
|
34
35
|
id: 'print-studio-portfolio-booklet',
|
|
35
36
|
meta: {
|
|
36
37
|
name: 'Photography portfolio booklet',
|
|
37
|
-
description: 'A twelve-page A5 portfolio to leave behind after a meeting: a cover,
|
|
38
|
+
description: 'A twelve-page A5 portfolio to leave behind after a meeting: a cover, four projects as spreads with a full-bleed picture and the story beside it, an about page with clients facing the contact page, and a back cover. Pictures run into the 3 mm bleed, and the page count imposes as a folded and stapled booklet. For photographers, illustrators and designers',
|
|
38
39
|
category: 'brochure', tags: ['portfolio', 'booklet', 'zine', 'photography', 'photographer', 'leave-behind', 'a5', 'saddle stitch', 'print', 'creative', 'designer'],
|
|
39
40
|
platforms: ['print'], formats: ['document'], useCases: ['portfolio', 'brand-intro'],
|
|
40
41
|
created: '2026-10-10', updated: '2026-10-10',
|
|
@@ -83,9 +84,13 @@ export default defineTemplate({
|
|
|
83
84
|
return img
|
|
84
85
|
}
|
|
85
86
|
const column = (p: string, gap: number, name: string) => k.stack(p, { gap, name })
|
|
86
|
-
// The page number: one component, an instance on every numbered page, pushed to the foot of the page.
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
// The page number: one component, an instance on every numbered page, pushed to the foot of the page. It sits
|
|
88
|
+
// on the outer edge, as in any bound book: a variant for the left of an even, left-hand page and one for the
|
|
89
|
+
// right of an odd, right-hand page.
|
|
90
|
+
k.variantSet('Folio', 'Side', ['Left', 'Right'], { width: W - M * 2, direction: 'HORIZONTAL', props: { Number: '02' } }, (side, id) => {
|
|
91
|
+
k.propText(id, 'Number', { style: 'Label 10', color: 'onPaper', width: 'FILL', align: side === 'Left' ? 'LEFT' : 'RIGHT' })
|
|
92
|
+
})
|
|
93
|
+
const folio = (p: string, n: number) => k.instance(p, n % 2 ? 'Folio/Right' : 'Folio/Left', { Number: String(n).padStart(2, '0') }, { width: 'FILL', name: 'Folio' })
|
|
89
94
|
const spacer = (p: string) => { const s = k.stack(p, { name: 'Space' }); k.patch(s, { layoutSizingVertical: 'FILL' } as Partial<FrameNode>); return s }
|
|
90
95
|
|
|
91
96
|
// 1 · The cover: the name set like a monograph's, one picture under it, the years at the foot.
|
|
@@ -96,19 +101,8 @@ export default defineTemplate({
|
|
|
96
101
|
picture(cover, 'photo-06', 290, 'Cover picture')
|
|
97
102
|
k.text(cover, 'Selected work, 2023 – 2026', { style: 'Lead 20', color: 'text', width: 'FILL', name: 'Subtitle' })
|
|
98
103
|
|
|
99
|
-
// 2 ·
|
|
100
|
-
|
|
101
|
-
picture(about, 'photo-04', 220, 'About picture')
|
|
102
|
-
k.text(about, 'ABOUT', { style: 'Label 10', color: 'text', width: 'FILL', name: 'Kicker' })
|
|
103
|
-
k.text(about, 'I photograph work: the people who do it, the places it happens, and the hours nobody else sees.', { style: 'Lead 20', color: 'text', width: 'FILL', name: 'Statement' })
|
|
104
|
-
k.text(about, 'I am a documentary and editorial photographer based in Lisbon, working on long projects across Europe, Africa and Asia and on commissions for magazines and brands that want pictures with a story under them. I shoot on location, by available light, and I stay long enough to be forgotten.', { style: 'Body 12.5', color: 'text', width: 'FILL', name: 'About' })
|
|
105
|
-
k.text(about, 'SELECTED CLIENTS', { style: 'Label 10', color: 'onPaper', width: 'FILL', name: 'Clients title' })
|
|
106
|
-
k.text(about, 'Monocle · Kinfolk · Público · Atlas Review · The Gentlewoman · Aesop · Fundação Gulbenkian · Patagonia', { style: 'Body 12.5', color: 'text', width: 'FILL', name: 'Clients' })
|
|
107
|
-
spacer(about)
|
|
108
|
-
folio(about, 2)
|
|
109
|
-
|
|
110
|
-
// 3–10 · A spread for each project: the picture across the left page, the story and a second picture on the right.
|
|
111
|
-
let n = 3
|
|
104
|
+
// 2–9 · A spread for each project: the picture across the left page, the story and a second picture on the right.
|
|
105
|
+
let n = 2
|
|
112
106
|
for (const p of PROJECTS) {
|
|
113
107
|
const left = page(`${p.title} — picture`)
|
|
114
108
|
bleedPicture(left, p.lead, 'Lead picture')
|
|
@@ -128,6 +122,17 @@ export default defineTemplate({
|
|
|
128
122
|
n += 2
|
|
129
123
|
}
|
|
130
124
|
|
|
125
|
+
// 10 · About: who she is and who she works for, under a small picture, facing the contact page.
|
|
126
|
+
const about = page('About', { gap: 16 })
|
|
127
|
+
picture(about, 'photo-04', 220, 'About picture')
|
|
128
|
+
k.text(about, 'ABOUT', { style: 'Label 10', color: 'text', width: 'FILL', name: 'Kicker' })
|
|
129
|
+
k.text(about, 'I photograph work: the people who do it, the places it happens, and the hours nobody else sees.', { style: 'Lead 20', color: 'text', width: 'FILL', name: 'Statement' })
|
|
130
|
+
k.text(about, 'I am a documentary and editorial photographer based in Lisbon, working on long projects across Europe, Africa and Asia and on commissions for magazines and brands that want pictures with a story under them. I shoot on location, by available light, and I stay long enough to be forgotten.', { style: 'Body 12.5', color: 'text', width: 'FILL', name: 'About' })
|
|
131
|
+
k.text(about, 'SELECTED CLIENTS', { style: 'Label 10', color: 'onPaper', width: 'FILL', name: 'Clients title' })
|
|
132
|
+
k.text(about, 'Monocle · Kinfolk · Público · Atlas Review · The Gentlewoman · Aesop · Fundação Gulbenkian · Patagonia', { style: 'Body 12.5', color: 'text', width: 'FILL', name: 'Clients' })
|
|
133
|
+
spacer(about)
|
|
134
|
+
folio(about, 10)
|
|
135
|
+
|
|
131
136
|
// 11 · Contact.
|
|
132
137
|
const contact = page('Contact', { gap: 18 })
|
|
133
138
|
spacer(contact)
|