@@ -308,6 +308,24 @@ await screenshotUrl({
308308These examples cover the workflows ClickClick is meant to make scriptable: live website screenshots,
309309custom HTML cards, template modifications, and config-driven image sets.
310310
311+ ### Example Set Workflow
312+
313+ Use manifest-driven example sets for multi-post inspiration work. The manifest keeps template paths,
314+ variant JSON, output paths, and README labels in one place, so rendering and documentation stay in
315+ sync.
316+
317+ ``` bash
318+ npm run examples:scaffold -- campaign-social coral indigo lime
319+ npm run examples:render -- examples/use-cases/orbit-social.manifest.json
320+ npm run examples:readme -- examples/use-cases/orbit-social.manifest.json
321+ npm run examples:contact-sheet -- examples/use-cases/orbit-social.manifest.json examples/use-cases/orbit-social-contact-sheet.png
322+ ```
323+
324+ When adapting external references, replace source-specific names, logos, slogans, URLs, and direct
325+ media. Use fictional copy and pass any needed assets through modification JSON or documented options.
326+ Palettes may be shifted when that keeps the composition recognizable without copying the source
327+ branding.
328+
311329### Capture a Live Website
312330
313331Use URL screenshots when you need a reproducible image of a product page, docs page, landing page,
@@ -526,6 +544,189 @@ Result:
526544
527545![ Agriculture perspective pattern post result] ( ./examples/use-cases/agriculture-social-perspective.png )
528546
547+ ### Render Orbit Marketing Social Posts
548+
549+ Use a reusable template when a campaign has a fixed visual system but each square post swaps color,
550+ copy, and geometric accents. This set adapts a six-post marketing grid into source-neutral examples
551+ with fictional names, original slogans, and a shifted palette.
552+
553+ #### Coral Signal Post
554+
555+ CLI:
556+
557+ ``` bash
558+ npm run dev -- template examples/use-cases/orbit-social-post.html \
559+ --css examples/use-cases/orbit-social-post.css \
560+ --modify-file examples/use-cases/orbit-social-coral.json \
561+ --out examples/use-cases/orbit-social-coral.png \
562+ --width 1080 \
563+ --height 1080
564+ ```
565+
566+ Library:
567+
568+ ``` ts
569+ import { readFile } from " node:fs/promises" ;
570+ import { renderTemplate } from " @maurogoncalo/clickclick" ;
571+
572+ await renderTemplate ({
573+ htmlPath: " examples/use-cases/orbit-social-post.html" ,
574+ cssPath: " examples/use-cases/orbit-social-post.css" ,
575+ modifications: JSON .parse (await readFile (" examples/use-cases/orbit-social-coral.json" , " utf8" )),
576+ viewport: { width: 1080 , height: 1080 },
577+ output: { path: " examples/use-cases/orbit-social-coral.png" },
578+ });
579+ ```
580+
581+ Result:
582+
583+ ![ Orbit coral social post result] ( ./examples/use-cases/orbit-social-coral.png )
584+
585+ #### Indigo Ideas Post
586+
587+ CLI:
588+
589+ ``` bash
590+ npm run dev -- template examples/use-cases/orbit-social-post.html \
591+ --css examples/use-cases/orbit-social-post.css \
592+ --modify-file examples/use-cases/orbit-social-indigo.json \
593+ --out examples/use-cases/orbit-social-indigo.png \
594+ --width 1080 \
595+ --height 1080
596+ ```
597+
598+ Library:
599+
600+ ``` ts
601+ await renderTemplate ({
602+ htmlPath: " examples/use-cases/orbit-social-post.html" ,
603+ cssPath: " examples/use-cases/orbit-social-post.css" ,
604+ modifications: JSON .parse (await readFile (" examples/use-cases/orbit-social-indigo.json" , " utf8" )),
605+ viewport: { width: 1080 , height: 1080 },
606+ output: { path: " examples/use-cases/orbit-social-indigo.png" },
607+ });
608+ ```
609+
610+ Result:
611+
612+ ![ Orbit indigo social post result] ( ./examples/use-cases/orbit-social-indigo.png )
613+
614+ #### Lime Story Post
615+
616+ CLI:
617+
618+ ``` bash
619+ npm run dev -- template examples/use-cases/orbit-social-post.html \
620+ --css examples/use-cases/orbit-social-post.css \
621+ --modify-file examples/use-cases/orbit-social-lime.json \
622+ --out examples/use-cases/orbit-social-lime.png \
623+ --width 1080 \
624+ --height 1080
625+ ```
626+
627+ Library:
628+
629+ ``` ts
630+ await renderTemplate ({
631+ htmlPath: " examples/use-cases/orbit-social-post.html" ,
632+ cssPath: " examples/use-cases/orbit-social-post.css" ,
633+ modifications: JSON .parse (await readFile (" examples/use-cases/orbit-social-lime.json" , " utf8" )),
634+ viewport: { width: 1080 , height: 1080 },
635+ output: { path: " examples/use-cases/orbit-social-lime.png" },
636+ });
637+ ```
638+
639+ Result:
640+
641+ ![ Orbit lime social post result] ( ./examples/use-cases/orbit-social-lime.png )
642+
643+ #### Mint Signal Post
644+
645+ CLI:
646+
647+ ``` bash
648+ npm run dev -- template examples/use-cases/orbit-social-post.html \
649+ --css examples/use-cases/orbit-social-post.css \
650+ --modify-file examples/use-cases/orbit-social-mint.json \
651+ --out examples/use-cases/orbit-social-mint.png \
652+ --width 1080 \
653+ --height 1080
654+ ```
655+
656+ Library:
657+
658+ ``` ts
659+ await renderTemplate ({
660+ htmlPath: " examples/use-cases/orbit-social-post.html" ,
661+ cssPath: " examples/use-cases/orbit-social-post.css" ,
662+ modifications: JSON .parse (await readFile (" examples/use-cases/orbit-social-mint.json" , " utf8" )),
663+ viewport: { width: 1080 , height: 1080 },
664+ output: { path: " examples/use-cases/orbit-social-mint.png" },
665+ });
666+ ```
667+
668+ Result:
669+
670+ ![ Orbit mint social post result] ( ./examples/use-cases/orbit-social-mint.png )
671+
672+ #### Stone Story Post
673+
674+ CLI:
675+
676+ ``` bash
677+ npm run dev -- template examples/use-cases/orbit-social-post.html \
678+ --css examples/use-cases/orbit-social-post.css \
679+ --modify-file examples/use-cases/orbit-social-stone.json \
680+ --out examples/use-cases/orbit-social-stone.png \
681+ --width 1080 \
682+ --height 1080
683+ ```
684+
685+ Library:
686+
687+ ``` ts
688+ await renderTemplate ({
689+ htmlPath: " examples/use-cases/orbit-social-post.html" ,
690+ cssPath: " examples/use-cases/orbit-social-post.css" ,
691+ modifications: JSON .parse (await readFile (" examples/use-cases/orbit-social-stone.json" , " utf8" )),
692+ viewport: { width: 1080 , height: 1080 },
693+ output: { path: " examples/use-cases/orbit-social-stone.png" },
694+ });
695+ ```
696+
697+ Result:
698+
699+ ![ Orbit stone social post result] ( ./examples/use-cases/orbit-social-stone.png )
700+
701+ #### Ink Ideas Post
702+
703+ CLI:
704+
705+ ``` bash
706+ npm run dev -- template examples/use-cases/orbit-social-post.html \
707+ --css examples/use-cases/orbit-social-post.css \
708+ --modify-file examples/use-cases/orbit-social-ink.json \
709+ --out examples/use-cases/orbit-social-ink.png \
710+ --width 1080 \
711+ --height 1080
712+ ```
713+
714+ Library:
715+
716+ ``` ts
717+ await renderTemplate ({
718+ htmlPath: " examples/use-cases/orbit-social-post.html" ,
719+ cssPath: " examples/use-cases/orbit-social-post.css" ,
720+ modifications: JSON .parse (await readFile (" examples/use-cases/orbit-social-ink.json" , " utf8" )),
721+ viewport: { width: 1080 , height: 1080 },
722+ output: { path: " examples/use-cases/orbit-social-ink.png" },
723+ });
724+ ```
725+
726+ Result:
727+
728+ ![ Orbit ink social post result] ( ./examples/use-cases/orbit-social-ink.png )
729+
529730### Render Custom HTML with Fit Text
530731
531732Use custom HTML/CSS when presets are too constrained, but keep ` data-clickclick-fit ` on important
0 commit comments