[object Object]

← back to Crazy News Channel

cartoon shorts: transparent SATIRE badge (no white box), kicker below badge, caption tucked under image (TK-12191)

89ae98f1ba558029149efab7acb4fb768696b771 · 2026-09-24 15:48:27 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Files touched

Diff

commit 89ae98f1ba558029149efab7acb4fb768696b771
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 24 15:48:27 2026 -0700

    cartoon shorts: transparent SATIRE badge (no white box), kicker below badge, caption tucked under image (TK-12191)
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---
 scripts/cartoon-shorts/make-cartoon-shorts.mjs | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/scripts/cartoon-shorts/make-cartoon-shorts.mjs b/scripts/cartoon-shorts/make-cartoon-shorts.mjs
index bd7c627..b244be1 100644
--- a/scripts/cartoon-shorts/make-cartoon-shorts.mjs
+++ b/scripts/cartoon-shorts/make-cartoon-shorts.mjs
@@ -246,7 +246,7 @@ function stampSatireBadge(png) {
     '(', '-size', '360x140', 'xc:none',
       '-fill', HEX_RED, '-draw', 'roundrectangle 0,0,359,139,18,18',
       '-fill', 'white', '-font', FONT, '-pointsize', '58', '-gravity', 'center', '-annotate', '0', 'SATIRE',
-      '-rotate', '-8',
+      '-background', 'none', '-rotate', '-8',
     ')',
     '-gravity', 'NorthEast', '-geometry', '+40+70', '-composite', png]);
 }
@@ -277,7 +277,7 @@ function buildOpeningCard(dir, { title }) {
     '(', '-size', '700x260', 'xc:none',
       '-fill', HEX_RED, '-stroke', 'white', '-strokewidth', '6', '-draw', 'roundrectangle 0,0,699,259,26,26',
       '-fill', 'white', '-stroke', 'none', '-font', FONT, '-pointsize', '110', '-gravity', 'center', '-annotate', '0', 'SATIRE',
-      '-rotate', '-6',
+      '-background', 'none', '-rotate', '-6',
     ')',
     '-gravity', 'North', '-geometry', '+0+330', '-composite', png]);
   run(MAGICK, [png, '-font', FONT, '-fill', HEX_INK, '-pointsize', '42', '-gravity', 'North',
@@ -298,19 +298,24 @@ function buildPanelCard(dir, { name, kicker, imgPath, caption }) {
   baseCanvas(png);
   wordmark(png);
   run(MAGICK, [png, '-font', FONT, '-fill', HEX_RED, '-pointsize', '46', '-gravity', 'North',
-    '-annotate', '+0+230', kicker, png]);
+    '-annotate', '+0+300', kicker, png]);  // below the top-right SATIRE badge (ends ~y260)
 
   // frame the screenshot on a white card so it reads clearly against the dark background
   const framed = path.join(dir, `framed-${name}.png`);
   run(MAGICK, [imgPath, '-resize', '960x960>', '-bordercolor', 'white', '-border', '24', framed]);
-  run(MAGICK, [png, framed, '-gravity', 'North', '-geometry', '+0+330', '-composite', png]);
+  run(MAGICK, [png, framed, '-gravity', 'North', '-geometry', '+0+390', '-composite', png]);
+  // caption sits just under the framed image instead of a fixed y, so a wide/short
+  // strip (plot twist) doesn't leave a big empty gap
+  let framedH = 960;
+  try { framedH = parseInt(execFileSync(MAGICK, ['identify', '-format', '%h', framed]).toString(), 10) || 960; } catch {}
+  const capY = Math.min(390 + framedH + 70, 1480);
 
   if (caption) {
     const cFile = writeRaw(dir, `c-${name}.txt`, caption);
     const size = fitCaption(MAGICK, FONT, cFile, '940x260');
     run(MAGICK, [png, '(', '-background', 'none', '-fill', HEX_INK, '-font', FONT, '-pointsize', String(size),
       '-size', '940x260', '-gravity', 'center', `caption:@${cFile}`, ')',
-      '-gravity', 'North', '-geometry', '+0+1480', '-composite', png]);
+      '-gravity', 'North', '-geometry', `+0+${capY}`, '-composite', png]);
   }
   footer(png);
   stampSatireBadge(png);

← ce98d61 Add make-cartoon-shorts.mjs: turn each P24 cartoon into a ve  ·  back to Crazy News Channel  ·  daily cartoon batch: post new cartoons as public Satire Shor 9abf345 →